From 993b959f43400bfcf3e1bdc7ec94778ac66bee84 Mon Sep 17 00:00:00 2001 From: akutuva21 Date: Thu, 12 Mar 2026 14:18:46 -0400 Subject: [PATCH 1/2] Migrating models over from BNG Playground for a common location --- .github/workflows/validate.yml | 30 + AddingModels.md | 9 +- .../biology/aktsignaling/README.md | 22 + .../biology/aktsignaling/akt-signaling.bngl | 100 + .../biology/aktsignaling/metadata.yaml | 24 + .../biology/allostericactivation/README.md | 22 + .../allosteric-activation.bngl | 69 + .../allostericactivation/metadata.yaml | 24 + .../biology/ampksignaling/README.md | 22 + .../biology/ampksignaling/ampk-signaling.bngl | 101 + .../biology/ampksignaling/metadata.yaml | 24 + .../biology/apoptosiscascade/README.md | 22 + .../apoptosiscascade/apoptosis-cascade.bngl | 111 + .../biology/apoptosiscascade/metadata.yaml | 24 + .../biology/autoactivationloop/README.md | 22 + .../auto-activation-loop.bngl | 103 + .../biology/autoactivationloop/metadata.yaml | 24 + .../biology/autophagyregulation/README.md | 22 + .../autophagy-regulation.bngl | 102 + .../biology/autophagyregulation/metadata.yaml | 24 + .../biology/bcrsignaling/README.md | 22 + .../biology/bcrsignaling/bcr-signaling.bngl | 112 + .../biology/bcrsignaling/metadata.yaml | 24 + .../biology/betaadrenergicresponse/README.md | 22 + .../beta-adrenergic-response.bngl | 109 + .../betaadrenergicresponse/metadata.yaml | 24 + .../biology/bistabletoggleswitch/README.md | 22 + .../bistable-toggle-switch.bngl | 110 + .../bistabletoggleswitch/metadata.yaml | 24 + .../bloodcoagulationthrombin/README.md | 22 + .../blood-coagulation-thrombin.bngl | 102 + .../bloodcoagulationthrombin/metadata.yaml | 24 + .../biology/bmpsignaling/README.md | 22 + .../biology/bmpsignaling/bmp-signaling.bngl | 106 + .../biology/bmpsignaling/metadata.yaml | 24 + .../biology/brusselatoroscillator/README.md | 22 + .../brusselator-oscillator.bngl | 95 + .../brusselatoroscillator/metadata.yaml | 24 + .../biology/calcineurinnfatpathway/README.md | 22 + .../calcineurin-nfat-pathway.bngl | 107 + .../calcineurinnfatpathway/metadata.yaml | 24 + .../biology/calciumspikesignaling/README.md | 22 + .../calcium-spike-signaling.bngl | 130 + .../calciumspikesignaling/metadata.yaml | 24 + .../biology/caspaseactivationloop/README.md | 22 + .../caspase-activation-loop.bngl | 92 + .../caspaseactivationloop/metadata.yaml | 24 + .../biology/cd40signaling/README.md | 22 + .../biology/cd40signaling/cd40-signaling.bngl | 99 + .../biology/cd40signaling/metadata.yaml | 24 + .../biology/cellcyclecheckpoint/README.md | 22 + .../cell-cycle-checkpoint.bngl | 118 + .../biology/cellcyclecheckpoint/metadata.yaml | 24 + .../checkpointkinasesignaling/README.md | 22 + .../checkpoint-kinase-signaling.bngl | 109 + .../checkpointkinasesignaling/metadata.yaml | 24 + .../chemotaxissignaltransduction/README.md | 22 + .../chemotaxis-signal-transduction.bngl | 105 + .../metadata.yaml | 24 + .../biology/circadianoscillator/README.md | 22 + .../circadian-oscillator.bngl | 93 + .../biology/circadianoscillator/metadata.yaml | 24 + .../biology/clockbmal1genecircuit/README.md | 22 + .../clock-bmal1-gene-circuit.bngl | 99 + .../clockbmal1genecircuit/metadata.yaml | 24 + .../competitiveenzymeinhibition/README.md | 22 + .../competitive-enzyme-inhibition.bngl | 73 + .../competitiveenzymeinhibition/metadata.yaml | 24 + .../complementactivationcascade/README.md | 22 + .../complement-activation-cascade.bngl | 103 + .../complementactivationcascade/metadata.yaml | 24 + .../contactinhibitionhippoyap/README.md | 22 + .../contact-inhibition-hippo-yap.bngl | 102 + .../contactinhibitionhippoyap/metadata.yaml | 24 + .../biology/cooperativebinding/README.md | 22 + .../cooperative-binding.bngl | 67 + .../biology/cooperativebinding/metadata.yaml | 24 + .../biology/dnadamagerepair/README.md | 22 + .../dnadamagerepair/dna-damage-repair.bngl | 91 + .../biology/dnadamagerepair/metadata.yaml | 24 + .../biology/dnamethylationdynamics/README.md | 22 + .../dna-methylation-dynamics.bngl | 102 + .../dnamethylationdynamics/metadata.yaml | 24 + .../biology/dr5apoptosissignaling/README.md | 22 + .../dr5-apoptosis-signaling.bngl | 96 + .../dr5apoptosissignaling/metadata.yaml | 24 + .../biology/dualsitephosphorylation/README.md | 22 + .../dual-site-phosphorylation.bngl | 74 + .../dualsitephosphorylation/metadata.yaml | 24 + .../biology/e2frbcellcycleswitch/README.md | 22 + .../e2f-rb-cell-cycle-switch.bngl | 100 + .../e2frbcellcycleswitch/metadata.yaml | 24 + .../biology/egfrsignalingpathway/README.md | 22 + .../egfr-signaling-pathway.bngl | 94 + .../egfrsignalingpathway/metadata.yaml | 24 + .../biology/eif2astressresponse/README.md | 22 + .../eif2a-stress-response.bngl | 98 + .../biology/eif2astressresponse/metadata.yaml | 24 + .../biology/endosomalsortingrab/README.md | 22 + .../endosomal-sorting-rab.bngl | 88 + .../biology/endosomalsortingrab/metadata.yaml | 24 + .../biology/erknucleartranslocation/README.md | 22 + .../erk-nuclear-translocation.bngl | 93 + .../erknucleartranslocation/metadata.yaml | 24 + .../biology/erstressresponse/README.md | 22 + .../erstressresponse/er-stress-response.bngl | 59 + .../biology/erstressresponse/metadata.yaml | 24 + .../biology/fgfsignalingpathway/README.md | 22 + .../fgf-signaling-pathway.bngl | 99 + .../biology/fgfsignalingpathway/metadata.yaml | 24 + .../biology/gas6axlsignaling/README.md | 22 + .../gas6axlsignaling/gas6-axl-signaling.bngl | 107 + .../biology/gas6axlsignaling/metadata.yaml | 24 + .../biology/geneexpressiontoggle/README.md | 22 + .../gene-expression-toggle.bngl | 49 + .../geneexpressiontoggle/metadata.yaml | 24 + .../glioblastomaegfrviiisignaling/README.md | 22 + .../glioblastoma-egfrviii-signaling.bngl | 94 + .../metadata.yaml | 24 + .../biology/glycolysisbranchpoint/README.md | 22 + .../glycolysis-branch-point.bngl | 45 + .../glycolysisbranchpoint/metadata.yaml | 24 + .../gpcrdesensitizationarrestin/README.md | 22 + .../gpcr-desensitization-arrestin.bngl | 93 + .../gpcrdesensitizationarrestin/metadata.yaml | 24 + .../hedgehogsignalingpathway/README.md | 22 + .../hedgehog-signaling-pathway.bngl | 99 + .../hedgehogsignalingpathway/metadata.yaml | 24 + .../hematopoieticgrowthfactor/README.md | 22 + .../hematopoietic-growth-factor.bngl | 63 + .../hematopoieticgrowthfactor/metadata.yaml | 24 + .../biology/hif1adegradationloop/README.md | 22 + .../hif1a_degradation_loop.bngl | 92 + .../hif1adegradationloop/metadata.yaml | 24 + .../hypoxiaresponsesignaling/README.md | 22 + .../hypoxia-response-signaling.bngl | 57 + .../hypoxiaresponsesignaling/metadata.yaml | 24 + .../biology/il1bsignaling/README.md | 22 + .../biology/il1bsignaling/il1b-signaling.bngl | 95 + .../biology/il1bsignaling/metadata.yaml | 24 + .../biology/il6jakstatpathway/README.md | 22 + .../il6-jak-stat-pathway.bngl | 101 + .../biology/il6jakstatpathway/metadata.yaml | 24 + .../biology/immunesynapseformation/README.md | 22 + .../immune-synapse-formation.bngl | 54 + .../immunesynapseformation/metadata.yaml | 24 + .../biology/inflammasomeactivation/README.md | 22 + .../inflammasome-activation.bngl | 59 + .../inflammasomeactivation/metadata.yaml | 24 + .../inositolphosphatemetabolism/README.md | 22 + .../inositol-phosphate-metabolism.bngl | 99 + .../inositolphosphatemetabolism/metadata.yaml | 24 + .../insulinglucosehomeostasis/README.md | 22 + .../insulin-glucose-homeostasis.bngl | 100 + .../insulinglucosehomeostasis/metadata.yaml | 24 + .../biology/interferonsignaling/README.md | 22 + .../interferon-signaling.bngl | 58 + .../biology/interferonsignaling/metadata.yaml | 24 + .../biology/ire1axbp1erstress/README.md | 22 + .../ire1a-xbp1-er-stress.bngl | 101 + .../biology/ire1axbp1erstress/metadata.yaml | 24 + .../jakstatcytokinesignaling/README.md | 22 + .../jak-stat-cytokine-signaling.bngl | 59 + .../jakstatcytokinesignaling/metadata.yaml | 24 + .../biology/jnkmapksignaling/README.md | 22 + .../jnkmapksignaling/jnk-mapk-signaling.bngl | 88 + .../biology/jnkmapksignaling/metadata.yaml | 24 + .../biology/kirchannelregulation/README.md | 22 + .../kir-channel-regulation.bngl | 82 + .../kirchannelregulation/metadata.yaml | 24 + .../biology/lacoperonregulation/README.md | 22 + .../lac-operon-regulation.bngl | 73 + .../biology/lacoperonregulation/metadata.yaml | 24 + .../lipidmediatedpip3signaling/README.md | 22 + .../lipid-mediated-pip3-signaling.bngl | 59 + .../lipidmediatedpip3signaling/metadata.yaml | 24 + .../ltypecalciumchanneldynamics/README.md | 22 + .../l-type-calcium-channel-dynamics.bngl | 114 + .../ltypecalciumchanneldynamics/metadata.yaml | 24 + .../biology/mapksignalingcascade/README.md | 22 + .../mapk-signaling-cascade.bngl | 67 + .../mapksignalingcascade/metadata.yaml | 24 + .../biology/michaelismentenkinetics/README.md | 22 + .../michaelismentenkinetics/metadata.yaml | 24 + .../michaelis-menten-kinetics.bngl | 40 + .../biology/mtorc2signaling/README.md | 22 + .../biology/mtorc2signaling/metadata.yaml | 24 + .../mtorc2signaling/mtorc2-signaling.bngl | 98 + .../biology/mtorsignaling/README.md | 22 + .../biology/mtorsignaling/metadata.yaml | 24 + .../biology/mtorsignaling/mtor-signaling.bngl | 65 + .../biology/myogenicdifferentiation/README.md | 22 + .../myogenicdifferentiation/metadata.yaml | 24 + .../myogenic-differentiation.bngl | 57 + .../biology/negativefeedbackloop/README.md | 22 + .../negativefeedbackloop/metadata.yaml | 24 + .../negative-feedback-loop.bngl | 52 + .../biology/neurotransmitterrelease/README.md | 22 + .../neurotransmitterrelease/metadata.yaml | 24 + .../neurotransmitter-release.bngl | 61 + .../biology/nfkbfeedback/README.md | 22 + .../biology/nfkbfeedback/metadata.yaml | 24 + .../biology/nfkbfeedback/nfkb-feedback.bngl | 114 + .../biology/nocgmpsignaling/README.md | 22 + .../biology/nocgmpsignaling/metadata.yaml | 24 + .../nocgmpsignaling/no-cgmp-signaling.bngl | 98 + .../notchdeltalateralinhibition/README.md | 22 + .../notchdeltalateralinhibition/metadata.yaml | 24 + .../notch-delta-lateral-inhibition.bngl | 49 + .../biology/oxidativestressresponse/README.md | 22 + .../oxidativestressresponse/metadata.yaml | 24 + .../oxidative-stress-response.bngl | 64 + .../biology/p38mapksignaling/README.md | 22 + .../biology/p38mapksignaling/metadata.yaml | 24 + .../p38mapksignaling/p38-mapk-signaling.bngl | 78 + .../biology/p53mdm2oscillator/README.md | 22 + .../biology/p53mdm2oscillator/metadata.yaml | 24 + .../p53-mdm2-oscillator.bngl | 37 + .../biology/parp1mediateddnarepair/README.md | 22 + .../parp1mediateddnarepair/metadata.yaml | 24 + .../parp1-mediated-dna-repair.bngl | 86 + .../biology/phosphorelaychain/README.md | 22 + .../biology/phosphorelaychain/metadata.yaml | 24 + .../phosphorelaychain/phosphorelay-chain.bngl | 38 + .../biology/plateletactivation/README.md | 22 + .../biology/plateletactivation/metadata.yaml | 24 + .../platelet-activation.bngl | 51 + .../biology/predatorpreydynamics/README.md | 22 + .../predatorpreydynamics/metadata.yaml | 24 + .../predator-prey-dynamics.bngl | 35 + .../biology/quorumsensingcircuit/README.md | 22 + .../quorumsensingcircuit/metadata.yaml | 24 + .../quorum-sensing-circuit.bngl | 46 + .../biology/rabgtpasecycle/README.md | 22 + .../biology/rabgtpasecycle/metadata.yaml | 24 + .../rabgtpasecycle/rab-gtpase-cycle.bngl | 46 + .../biology/ranklranksignaling/README.md | 22 + .../biology/ranklranksignaling/metadata.yaml | 24 + .../rankl-rank-signaling.bngl | 81 + .../biology/rasgefgapcycle/README.md | 22 + .../biology/rasgefgapcycle/metadata.yaml | 24 + .../rasgefgapcycle/ras-gef-gap-cycle.bngl | 79 + .../biology/repressilatoroscillator/README.md | 22 + .../repressilatoroscillator/metadata.yaml | 24 + .../repressilator-oscillator.bngl | 61 + .../biology/retinoicacidsignaling/README.md | 22 + .../retinoicacidsignaling/metadata.yaml | 24 + .../retinoic-acid-signaling.bngl | 45 + .../rhogtpaseactincytoskeleton/README.md | 22 + .../rhogtpaseactincytoskeleton/metadata.yaml | 24 + .../rho-gtpase-actin-cytoskeleton.bngl | 92 + .../shp2phosphataseregulation/README.md | 22 + .../shp2phosphataseregulation/metadata.yaml | 24 + .../shp2-phosphatase-regulation.bngl | 74 + .../signalamplificationcascade/README.md | 22 + .../signalamplificationcascade/metadata.yaml | 24 + .../signal-amplification-cascade.bngl | 43 + .../biology/simpledimerization/README.md | 22 + .../biology/simpledimerization/metadata.yaml | 24 + .../simple-dimerization.bngl | 32 + .../biology/sirepidemicmodel/README.md | 22 + .../biology/sirepidemicmodel/metadata.yaml | 24 + .../sirepidemicmodel/sir-epidemic-model.bngl | 33 + .../biology/smadtgfbetasignaling/README.md | 22 + .../smadtgfbetasignaling/metadata.yaml | 24 + .../smad-tgf-beta-signaling.bngl | 45 + .../biology/sonichedgehoggradient/README.md | 22 + .../sonichedgehoggradient/metadata.yaml | 24 + .../sonic-hedgehog-gradient.bngl | 79 + .../stat3mediatedtranscription/README.md | 22 + .../stat3mediatedtranscription/metadata.yaml | 24 + .../stat3-mediated-transcription.bngl | 92 + .../stressresponseadaptation/README.md | 22 + .../stressresponseadaptation/metadata.yaml | 24 + .../stress-response-adaptation.bngl | 37 + .../biology/synapticplasticityltp/README.md | 22 + .../synapticplasticityltp/metadata.yaml | 24 + .../synaptic-plasticity-ltp.bngl | 82 + .../biology/tcellactivation/README.md | 22 + .../biology/tcellactivation/metadata.yaml | 24 + .../tcellactivation/t-cell-activation.bngl | 39 + .../biology/tlr3dsrnasensing/README.md | 22 + .../biology/tlr3dsrnasensing/metadata.yaml | 24 + .../tlr3dsrnasensing/tlr3-dsrna-sensing.bngl | 120 + .../biology/tnfinducedapoptosis/README.md | 22 + .../biology/tnfinducedapoptosis/metadata.yaml | 24 + .../tnf-induced-apoptosis.bngl | 50 + .../biology/twocomponentsystem/README.md | 22 + .../biology/twocomponentsystem/metadata.yaml | 24 + .../two-component-system.bngl | 40 + .../biology/vegfangiogenesis/README.md | 22 + .../biology/vegfangiogenesis/metadata.yaml | 24 + .../vegfangiogenesis/vegf-angiogenesis.bngl | 97 + .../viralsensinginnateimmunity/README.md | 22 + .../viralsensinginnateimmunity/metadata.yaml | 24 + .../viral-sensing-innate-immunity.bngl | 50 + .../biology/wntbetacateninsignaling/README.md | 22 + .../wntbetacateninsignaling/metadata.yaml | 24 + .../wnt-beta-catenin-signaling.bngl | 90 + .../woundhealingpdgfsignaling/README.md | 22 + .../woundhealingpdgfsignaling/metadata.yaml | 24 + .../wound-healing-pdgf-signaling.bngl | 46 + .../compartmentendocytosis/README.md | 22 + .../compartment_endocytosis.bngl | 84 + .../compartmentendocytosis/metadata.yaml | 24 + .../compartmentmembranebound/README.md | 22 + .../compartment_membrane_bound.bngl | 57 + .../compartmentmembranebound/metadata.yaml | 24 + .../compartmentnestedtransport/README.md | 22 + .../compartment_nested_transport.bngl | 57 + .../compartmentnestedtransport/metadata.yaml | 24 + .../compartmentnucleartransport/README.md | 22 + .../compartment_nuclear_transport.bngl | 58 + .../compartmentnucleartransport/metadata.yaml | 24 + .../compartmentorganelleexchange/README.md | 22 + .../compartment_organelle_exchange.bngl | 65 + .../metadata.yaml | 24 + .../cs/csdiffiehellman/README.md | 22 + .../cs/csdiffiehellman/cs_diffie_hellman.bngl | 70 + .../cs/csdiffiehellman/metadata.yaml | 24 + .../cs/cshashfunction/README.md | 22 + .../cs/cshashfunction/cs_hash_function.bngl | 138 + .../cs/cshashfunction/metadata.yaml | 24 + .../cs/cshuffman/README.md | 22 + .../cs/cshuffman/cs_huffman.bngl | 56 + .../cs/cshuffman/metadata.yaml | 24 + .../cs/csmontecarlopi/README.md | 22 + .../cs/csmontecarlopi/cs_monte_carlo_pi.bngl | 51 + .../cs/csmontecarlopi/metadata.yaml | 24 + .../cs/cspagerank/README.md | 22 + .../cs/cspagerank/cs_pagerank.bngl | 74 + .../cs/cspagerank/metadata.yaml | 24 + .../cs/cspidcontroller/README.md | 22 + .../cs/cspidcontroller/cs_pid_controller.bngl | 119 + .../cs/cspidcontroller/metadata.yaml | 24 + .../cs/csregexnfa/README.md | 22 + .../cs/csregexnfa/cs_regex_nfa.bngl | 64 + .../cs/csregexnfa/metadata.yaml | 24 + .../ecocoevolutionhostparasite/README.md | 22 + .../eco_coevolution_host_parasite.bngl | 73 + .../ecocoevolutionhostparasite/metadata.yaml | 24 + .../ecology/ecofoodwebchaos3sp/README.md | 22 + .../eco_food_web_chaos_3sp.bngl | 77 + .../ecology/ecofoodwebchaos3sp/metadata.yaml | 24 + .../ecology/ecolotkavolterragrid/README.md | 22 + .../eco_lotka_volterra_grid.bngl | 62 + .../ecolotkavolterragrid/metadata.yaml | 24 + .../ecology/ecomutualismobligate/README.md | 22 + .../eco_mutualism_obligate.bngl | 54 + .../ecomutualismobligate/metadata.yaml | 24 + .../ecorockpaperscissorsspatial/README.md | 22 + .../eco_rock_paper_scissors_spatial.bngl | 57 + .../ecorockpaperscissorsspatial/metadata.yaml | 24 + .../energy/energyallosterymwc/README.md | 22 + .../energy_allostery_mwc.bngl | 84 + .../energy/energyallosterymwc/metadata.yaml | 24 + .../energy/energycatalysismm/README.md | 22 + .../energy_catalysis_mm.bngl | 76 + .../energy/energycatalysismm/metadata.yaml | 24 + .../energy/energycooperativityadh/README.md | 22 + .../energy_cooperativity_adh.bngl | 71 + .../energycooperativityadh/metadata.yaml | 24 + .../energy/energylinearchain/README.md | 22 + .../energy_linear_chain.bngl | 57 + .../energy/energylinearchain/metadata.yaml | 24 + .../energy/energytransportpump/README.md | 22 + .../energy_transport_pump.bngl | 85 + .../energy/energytransportpump/metadata.yaml | 24 + .../featurefunctionalratesvolume/README.md | 22 + .../feature_functional_rates_volume.bngl | 53 + .../metadata.yaml | 24 + .../featureglobalfunctionsscan/README.md | 22 + .../feature_global_functions_scan.bngl | 59 + .../featureglobalfunctionsscan/metadata.yaml | 24 + .../featurelocalfunctionsexplicit/README.md | 22 + .../feature_local_functions_explicit.bngl | 68 + .../metadata.yaml | 24 + .../featuresymmetryfactorscyclic/README.md | 22 + .../feature_symmetry_factors_cyclic.bngl | 39 + .../metadata.yaml | 24 + .../featuresynthesisdegradationss/README.md | 22 + .../feature_synthesis_degradation_ss.bngl | 38 + .../metadata.yaml | 24 + .../generative/gmgameoflife/README.md | 22 + .../gmgameoflife/gm_game_of_life.bngl | 127 + .../generative/gmgameoflife/metadata.yaml | 24 + .../generative/gmraymarcher/README.md | 22 + .../gmraymarcher/gm_ray_marcher.bngl | 136 + .../generative/gmraymarcher/metadata.yaml | 24 + .../geneticbistabilityenergy/README.md | 22 + .../genetic_bistability_energy.bngl | 91 + .../geneticbistabilityenergy/metadata.yaml | 24 + .../geneticdnareplicationstochastic/README.md | 22 + .../genetic_dna_replication_stochastic.bngl | 84 + .../metadata.yaml | 24 + .../geneticgoodwinoscillator/README.md | 22 + .../genetic_goodwin_oscillator.bngl | 69 + .../geneticgoodwinoscillator/metadata.yaml | 24 + .../genetictranslationkinetics/README.md | 22 + .../genetic_translation_kinetics.bngl | 66 + .../genetictranslationkinetics/metadata.yaml | 24 + .../genetics/geneticturingpattern1d/README.md | 22 + .../genetic_turing_pattern_1d.bngl | 120 + .../geneticturingpattern1d/metadata.yaml | 24 + .../meta/metaformalgametheory/README.md | 22 + .../meta_formal_game_theory.bngl | 73 + .../meta/metaformalgametheory/metadata.yaml | 24 + .../meta/metaformalmolecularclock/README.md | 22 + .../meta_formal_molecular_clock.bngl | 50 + .../metaformalmolecularclock/metadata.yaml | 24 + .../meta/metaformalpetrinet/README.md | 22 + .../meta_formal_petri_net.bngl | 53 + .../meta/metaformalpetrinet/metadata.yaml | 24 + .../meta/mtarithmeticcompiler/README.md | 22 + .../meta/mtarithmeticcompiler/metadata.yaml | 24 + .../mt_arithmetic_compiler.bngl | 75 + .../meta/mtbnglinterpreter/README.md | 22 + .../meta/mtbnglinterpreter/metadata.yaml | 24 + .../mt_bngl_interpreter.bngl | 59 + .../meta/mtmusicsequencer/README.md | 22 + .../meta/mtmusicsequencer/metadata.yaml | 24 + .../mtmusicsequencer/mt_music_sequencer.bngl | 131 + .../meta/mtpascaltriangle/README.md | 22 + .../meta/mtpascaltriangle/metadata.yaml | 24 + .../mtpascaltriangle/mt_pascal_triangle.bngl | 59 + .../meta/mtquine/README.md | 22 + .../meta/mtquine/metadata.yaml | 24 + .../meta/mtquine/mt_quine.bngl | 56 + .../ml/mlgradientdescent/README.md | 22 + .../ml/mlgradientdescent/metadata.yaml | 24 + .../ml_gradient_descent.bngl | 103 + .../ml/mlhopfield/README.md | 22 + .../ml/mlhopfield/metadata.yaml | 24 + .../ml/mlhopfield/ml_hopfield.bngl | 75 + .../ml/mlkmeans/README.md | 22 + .../ml/mlkmeans/metadata.yaml | 24 + .../ml/mlkmeans/ml_kmeans.bngl | 101 + .../ml/mlqlearning/README.md | 22 + .../ml/mlqlearning/metadata.yaml | 24 + .../ml/mlqlearning/ml_q_learning.bngl | 119 + .../BNGPlayground_Examples/ml/mlsvm/README.md | 22 + .../ml/mlsvm/metadata.yaml | 24 + .../ml/mlsvm/ml_svm.bngl | 79 + .../BNGPlayground_Examples/ml/nnxor/README.md | 22 + .../ml/nnxor/metadata.yaml | 24 + .../ml/nnxor/nn_xor.bngl | 189 + .../nfsim/nfsimaggregationgelation/README.md | 22 + .../nfsimaggregationgelation/metadata.yaml | 24 + .../nfsim_aggregation_gelation.bngl | 59 + .../nfsim/nfsimcoarsegraining/README.md | 22 + .../nfsim/nfsimcoarsegraining/metadata.yaml | 24 + .../nfsim_coarse_graining.bngl | 54 + .../nfsim/nfsimdynamiccompartments/README.md | 22 + .../nfsimdynamiccompartments/metadata.yaml | 24 + .../nfsim_dynamic_compartments.bngl | 45 + .../nfsim/nfsimhybridparticlefield/README.md | 22 + .../nfsimhybridparticlefield/metadata.yaml | 24 + .../nfsim_hybrid_particle_field.bngl | 57 + .../nfsim/nfsimringclosurepolymer/README.md | 22 + .../nfsimringclosurepolymer/metadata.yaml | 24 + .../nfsim_ring_closure_polymer.bngl | 49 + .../physics/phlorenzattractor/README.md | 22 + .../physics/phlorenzattractor/metadata.yaml | 24 + .../ph_lorenz_attractor.bngl | 90 + .../physics/phnbodygravity/README.md | 22 + .../physics/phnbodygravity/metadata.yaml | 24 + .../phnbodygravity/ph_nbody_gravity.bngl | 83 + .../physics/phschrodinger/README.md | 22 + .../physics/phschrodinger/metadata.yaml | 24 + .../physics/phschrodinger/ph_schrodinger.bngl | 127 + .../physics/phwaveequation/README.md | 22 + .../physics/phwaveequation/metadata.yaml | 24 + .../phwaveequation/ph_wave_equation.bngl | 96 + .../processactintreadmilling/README.md | 22 + .../processactintreadmilling/metadata.yaml | 24 + .../process_actin_treadmilling.bngl | 84 + .../processes/processautophagyflux/README.md | 22 + .../processautophagyflux/metadata.yaml | 24 + .../process_autophagy_flux.bngl | 65 + .../processcelladhesionstrength/README.md | 22 + .../processcelladhesionstrength/metadata.yaml | 24 + .../process_cell_adhesion_strength.bngl | 60 + .../processkineticproofreadingtcr/README.md | 22 + .../metadata.yaml | 24 + .../process_kinetic_proofreading_tcr.bngl | 67 + .../processquorumsensingswitch/README.md | 22 + .../processquorumsensingswitch/metadata.yaml | 24 + .../process_quorum_sensing_switch.bngl | 73 + .../spfouriersynthesizer/README.md | 22 + .../spfouriersynthesizer/metadata.yaml | 24 + .../sp_fourier_synthesizer.bngl | 136 + .../spimageconvolution/README.md | 22 + .../spimageconvolution/metadata.yaml | 24 + .../sp_image_convolution.bngl | 151 + .../spkalmanfilter/README.md | 22 + .../spkalmanfilter/metadata.yaml | 24 + .../spkalmanfilter/sp_kalman_filter.bngl | 126 + .../synbio/synbiobandpassfilter/README.md | 22 + .../synbio/synbiobandpassfilter/metadata.yaml | 24 + .../synbio_band_pass_filter.bngl | 59 + .../synbio/synbiocountermolecular/README.md | 22 + .../synbiocountermolecular/metadata.yaml | 24 + .../synbio_counter_molecular.bngl | 54 + .../synbio/synbioedgedetector/README.md | 22 + .../synbio/synbioedgedetector/metadata.yaml | 24 + .../synbio_edge_detector.bngl | 74 + .../synbiologicgatesenzymatic/README.md | 22 + .../synbiologicgatesenzymatic/metadata.yaml | 24 + .../synbio_logic_gates_enzymatic.bngl | 64 + .../synbiooscillatorsynchronization/README.md | 22 + .../metadata.yaml | 24 + .../synbio_oscillator_synchronization.bngl | 59 + .../wacky/wackyalchemystone/README.md | 22 + .../wacky/wackyalchemystone/metadata.yaml | 24 + .../wacky_alchemy_stone.bngl | 53 + .../wacky/wackyblackhole/README.md | 22 + .../wacky/wackyblackhole/metadata.yaml | 24 + .../wackyblackhole/wacky_black_hole.bngl | 61 + .../wacky/wackybouncingball/README.md | 22 + .../wacky/wackybouncingball/metadata.yaml | 24 + .../wacky_bouncing_ball.bngl | 68 + .../wacky/wackytrafficjamasep/README.md | 22 + .../wacky/wackytrafficjamasep/metadata.yaml | 24 + .../wacky_traffic_jam_asep.bngl | 50 + .../wacky/wackyzombieinfection/README.md | 22 + .../wacky/wackyzombieinfection/metadata.yaml | 24 + .../wacky_zombie_infection.bngl | 58 + ...Beach-Conway-North_Myrtle_Beach_SC-NC.bngl | 225 + .../README.md | 21 + .../metadata.yaml | 22 + .../polymerfixed/README.md | 21 + .../polymerfixed/metadata.yaml | 22 + .../polymerfixed/polymer_fixed.bngl | 70 + .../simplenfsimtest/README.md | 21 + .../simplenfsimtest/metadata.yaml | 22 + .../simplenfsimtest/simple_nfsim_test.bngl | 63 + .../CaOscillateFunc/CaOscillate_Func.bngl | 62 + .../CaOscillateFunc/README.md | 21 + .../CaOscillateFunc/metadata.yaml | 22 + .../CaOscillateSat/CaOscillate_Sat.bngl | 62 + .../CaOscillateSat/README.md | 21 + .../CaOscillateSat/metadata.yaml | 22 + .../Haugh2b/Haugh2b.bngl | 78 + .../Haugh2b/README.md | 21 + .../Haugh2b/metadata.yaml | 22 + .../Kiefhaberemodel/Kiefhaber_emodel.bngl | 123 + .../Kiefhaberemodel/README.md | 21 + .../Kiefhaberemodel/metadata.yaml | 22 + .../Korwek2023/Korwek_2023.bngl | 726 + .../Korwek2023/README.md | 21 + .../Korwek2023/metadata.yaml | 22 + .../Motivatingexample/Motivating_example.bngl | 262 + .../Motivatingexample/README.md | 21 + .../Motivatingexample/metadata.yaml | 22 + .../Motivating_example_cBNGL.bngl | 226 + .../MotivatingexamplecBNGL/README.md | 21 + .../MotivatingexamplecBNGL/metadata.yaml | 22 + .../SHP2basemodel/README.md | 21 + .../SHP2basemodel/SHP2_base_model.bngl | 157 + .../SHP2basemodel/metadata.yaml | 22 + .../catalysis/README.md | 21 + .../catalysis/catalysis.bngl | 82 + .../catalysis/metadata.yaml | 22 + .../continue/README.md | 21 + .../continue/continue.bngl | 46 + .../continue/metadata.yaml | 22 + .../egfrnet/README.md | 21 + .../egfrnet/egfr_net.bngl | 174 + .../egfrnet/metadata.yaml | 22 + .../egfrnetred/README.md | 21 + .../egfrnetred/egfr_net_red.bngl | 180 + .../egfrnetred/metadata.yaml | 22 + .../egfrpath/README.md | 21 + .../egfrpath/egfr_path.bngl | 152 + .../egfrpath/metadata.yaml | 22 + .../energyexample1/README.md | 21 + .../energyexample1/energy_example1.bngl | 168 + .../energyexample1/metadata.yaml | 22 + .../example1/README.md | 21 + .../example1/example1.bngl | 58 + .../example1/metadata.yaml | 22 + .../fcerijicomp/README.md | 21 + .../fcerijicomp/fceri_ji_comp.bngl | 135 + .../fcerijicomp/metadata.yaml | 22 + .../BNGPlayground_Validation/heise/README.md | 21 + .../BNGPlayground_Validation/heise/heise.bngl | 46 + .../heise/metadata.yaml | 22 + .../issue198short/README.md | 21 + .../issue198short/issue_198_short.bngl | 21 + .../issue198short/metadata.yaml | 22 + .../localfunc/README.md | 21 + .../localfunc/localfunc.bngl | 65 + .../localfunc/metadata.yaml | 22 + .../michment/README.md | 21 + .../michment/metadata.yaml | 22 + .../michment/michment.bngl | 64 + .../michmentcont/README.md | 21 + .../michmentcont/metadata.yaml | 22 + .../michmentcont/michment_cont.bngl | 12 + .../BNGPlayground_Validation/motor/README.md | 21 + .../motor/metadata.yaml | 22 + .../BNGPlayground_Validation/motor/motor.bngl | 91 + .../BNGPlayground_Validation/mwc/README.md | 21 + .../mwc/metadata.yaml | 22 + .../BNGPlayground_Validation/mwc/mwc.bngl | 120 + .../BNGPlayground_Validation/nfkb/README.md | 21 + .../nfkb/metadata.yaml | 22 + .../BNGPlayground_Validation/nfkb/nfkb.bngl | 238 + .../nfkbillustratingprotocols/README.md | 21 + .../nfkbillustratingprotocols/metadata.yaml | 22 + .../nfkb_illustrating_protocols.bngl | 247 + .../BNGPlayground_Validation/recdim/README.md | 21 + .../recdim/metadata.yaml | 22 + .../recdim/rec_dim.bngl | 39 + .../recdimcomp/README.md | 21 + .../recdimcomp/metadata.yaml | 22 + .../recdimcomp/rec_dim_comp.bngl | 52 + .../simplesbmlimport/README.md | 21 + .../simplesbmlimport/metadata.yaml | 22 + .../simplesbmlimport/simple_sbml_import.bngl | 3 + .../simplesystem/README.md | 21 + .../simplesystem/metadata.yaml | 22 + .../simplesystem/simple_system.bngl | 133 + .../testANGsynthesissimple/README.md | 21 + .../testANGsynthesissimple/metadata.yaml | 22 + .../test_ANG_synthesis_simple.bngl | 31 + .../BNGPlayground_Validation/testMM/README.md | 21 + .../testMM/metadata.yaml | 22 + .../testMM/test_MM.bngl | 31 + .../testfixed/README.md | 21 + .../testfixed/metadata.yaml | 22 + .../testfixed/test_fixed.bngl | 24 + .../testmratio/README.md | 21 + .../testmratio/metadata.yaml | 22 + .../testmratio/test_mratio.bngl | 40 + .../testnetworkgen/README.md | 21 + .../testnetworkgen/metadata.yaml | 22 + .../testnetworkgen/test_network_gen.bngl | 118 + .../testsat/README.md | 21 + .../testsat/metadata.yaml | 22 + .../testsat/test_sat.bngl | 32 + .../testsynthesiscBNGLsimple/README.md | 21 + .../testsynthesiscBNGLsimple/metadata.yaml | 22 + .../test_synthesis_cBNGL_simple.bngl | 37 + .../testsynthesiscomplex/README.md | 21 + .../testsynthesiscomplex/metadata.yaml | 22 + .../test_synthesis_complex.bngl | 32 + .../testsynthesiscomplex0cBNGL/README.md | 21 + .../testsynthesiscomplex0cBNGL/metadata.yaml | 22 + .../test_synthesis_complex_0_cBNGL.bngl | 56 + .../testsynthesiscomplexsourcecBNGL/README.md | 21 + .../metadata.yaml | 22 + .../test_synthesis_complex_source_cBNGL.bngl | 62 + .../testsynthesissimple/README.md | 21 + .../testsynthesissimple/metadata.yaml | 22 + .../test_synthesis_simple.bngl | 30 + .../BNGPlayground_Validation/tlmr/README.md | 21 + .../tlmr/metadata.yaml | 22 + .../BNGPlayground_Validation/tlmr/tlmr.bngl | 25 + .../BNGPlayground_Validation/toyjim/README.md | 21 + .../toyjim/metadata.yaml | 22 + .../toyjim/toy-jim.bngl | 117 + .../univsynth/README.md | 21 + .../univsynth/metadata.yaml | 22 + .../univsynth/univ_synth.bngl | 48 + Published/An2009/An_2009.bngl | 248 + Published/An2009/README.md | 21 + Published/An2009/metadata.yaml | 22 + Published/Barua2007/Barua_2007.bngl | 155 + Published/Barua2007/README.md | 21 + Published/Barua2007/metadata.yaml | 22 + Published/Barua2009/Barua_2009.bngl | 52 + Published/Barua2009/README.md | 21 + Published/Barua2009/metadata.yaml | 22 + Published/Barua2013/Barua_2013.bngl | 130 + Published/Barua2013/README.md | 21 + Published/Barua2013/metadata.yaml | 22 + Published/BaruaBCR2012/BaruaBCR_2012.bngl | 379 + Published/BaruaBCR2012/README.md | 21 + Published/BaruaBCR2012/metadata.yaml | 22 + Published/BaruaFceRI2012/BaruaFceRI_2012.bngl | 202 + Published/BaruaFceRI2012/README.md | 21 + Published/BaruaFceRI2012/metadata.yaml | 22 + Published/Blinov2006/Blinov_2006.bngl | 171 + Published/Blinov2006/README.md | 21 + Published/Blinov2006/metadata.yaml | 22 + Published/Blinovegfr/Blinov_egfr.bngl | 59 + Published/Blinovegfr/README.md | 21 + Published/Blinovegfr/metadata.yaml | 22 + Published/Blinovran/Blinov_ran.bngl | 54 + Published/Blinovran/README.md | 21 + Published/Blinovran/metadata.yaml | 22 + Published/Chattaraj2021/Chattaraj_2021.bngl | 74 + Published/Chattaraj2021/README.md | 21 + Published/Chattaraj2021/metadata.yaml | 22 + .../Cheemalavagu_JAK_STAT.bngl | 229 + Published/CheemalavaguJAKSTAT/README.md | 21 + Published/CheemalavaguJAKSTAT/metadata.yaml | 22 + .../ChylekFceRI2014/ChylekFceRI_2014.bngl | 746 + Published/ChylekFceRI2014/README.md | 21 + Published/ChylekFceRI2014/metadata.yaml | 22 + Published/ChylekTCR2014/ChylekTCR_2014.bngl | 607 + Published/ChylekTCR2014/README.md | 21 + Published/ChylekTCR2014/metadata.yaml | 22 + Published/Dolan2015/Dolan_2015.bngl | 3020 ++++ Published/Dolan2015/metadata.yaml | 22 + Published/Dushek2011/Dushek_2011.bngl | 195 + Published/Dushek2011/README.md | 21 + Published/Dushek2011/metadata.yaml | 22 + Published/Dushek2014/Dushek_2014.bngl | 75 + Published/Dushek2014/README.md | 21 + Published/Dushek2014/metadata.yaml | 22 + Published/Erdem2021/Erdem_2021.bngl | 238 + Published/Erdem2021/README.md | 21 + Published/Erdem2021/metadata.yaml | 22 + Published/Faeder2003/Faeder_2003.bngl | 123 + Published/Faeder2003/metadata.yaml | 22 + Published/Hat2016/Hat_2016.bngl | 744 + Published/Hat2016/README.md | 21 + Published/Hat2016/metadata.yaml | 22 + .../Jaruszewicz-Blonska_2023.bngl | 478 + Published/JaruszewiczBlonska2023/README.md | 21 + .../JaruszewiczBlonska2023/metadata.yaml | 22 + Published/Jung2017/Jung_2017.bngl | 116 + Published/Jung2017/README.md | 21 + Published/Jung2017/metadata.yaml | 22 + Published/Kesseler2013/Kesseler_2013.bngl | 740 + Published/Kesseler2013/README.md | 21 + Published/Kesseler2013/metadata.yaml | 22 + .../Kocieniewski2012/Kocieniewski_2012.bngl | 60 + Published/Kocieniewski2012/README.md | 21 + Published/Kocieniewski2012/metadata.yaml | 22 + Published/Kozer2013/Kozer_2013.bngl | 150 + Published/Kozer2013/README.md | 21 + Published/Kozer2013/metadata.yaml | 22 + Published/Kozer2014/Kozer_2014.bngl | 189 + Published/Kozer2014/README.md | 21 + Published/Kozer2014/metadata.yaml | 22 + Published/Lang2024/Lang_2024.bngl | 354 + Published/Lang2024/README.md | 21 + Published/Lang2024/metadata.yaml | 22 + Published/Ligon2014/Ligon_2014.bngl | 134 + Published/Ligon2014/README.md | 21 + Published/Ligon2014/metadata.yaml | 22 + Published/LinERK2019/Lin_ERK_2019.bngl | 496 + Published/LinERK2019/README.md | 21 + Published/LinERK2019/metadata.yaml | 22 + Published/LinPrion2019/Lin_Prion_2019.bngl | 160 + Published/LinPrion2019/README.md | 21 + Published/LinPrion2019/metadata.yaml | 22 + Published/LinTCR2019/Lin_TCR_2019.bngl | 250 + Published/LinTCR2019/README.md | 21 + Published/LinTCR2019/metadata.yaml | 22 + Published/Mallela2021/README.md | 70 + .../Mallela2021/SI_files_Alabama_Alabama.bngl | 211 + .../Mallela2021/SI_files_Alaska_Alaska.bngl | 221 + .../Mallela2021/SI_files_Arizona_Arizona.bngl | 221 + .../SI_files_Arkansas_Arkansas.bngl | 211 + .../SI_files_California_California.bngl | 215 + .../SI_files_Colorado_Colorado.bngl | 215 + .../SI_files_Connecticut_Connecticut.bngl | 215 + .../SI_files_Delaware_Delaware.bngl | 215 + .../Mallela2021/SI_files_Florida_Florida.bngl | 225 + .../Mallela2021/SI_files_Georgia_Georgia.bngl | 211 + .../Mallela2021/SI_files_Hawaii_Hawaii.bngl | 221 + .../Mallela2021/SI_files_Idaho_Idaho.bngl | 221 + .../SI_files_Illinois_Illinois.bngl | 215 + .../Mallela2021/SI_files_Indiana_Indiana.bngl | 211 + Published/Mallela2021/SI_files_Iowa_Iowa.bngl | 211 + .../Mallela2021/SI_files_Kansas_Kansas.bngl | 211 + .../SI_files_Kentucky_Kentucky.bngl | 215 + .../SI_files_Louisiana_Louisiana.bngl | 221 + .../Mallela2021/SI_files_Maine_Maine.bngl | 211 + .../SI_files_Maryland_Maryland.bngl | 211 + .../SI_files_Massachusetts_Massachusetts.bngl | 211 + .../SI_files_Michigan_Michigan.bngl | 215 + .../SI_files_Minnesota_Minnesota.bngl | 211 + .../SI_files_Mississippi_Mississippi.bngl | 211 + .../SI_files_Missouri_Missouri.bngl | 211 + .../Mallela2021/SI_files_Montana_Montana.bngl | 221 + .../SI_files_Nebraska_Nebraska.bngl | 211 + .../Mallela2021/SI_files_Nevada_Nevada.bngl | 221 + .../SI_files_NewHampshire_NewHampshire.bngl | 211 + .../SI_files_NewJersey_NewJersey.bngl | 211 + .../SI_files_NewMexico_NewMexico.bngl | 215 + .../Mallela2021/SI_files_NewYork_NewYork.bngl | 221 + .../SI_files_NorthCarolina_NorthCarolina.bngl | 211 + .../SI_files_NorthDakota_NorthDakota.bngl | 215 + Published/Mallela2021/SI_files_Ohio_Ohio.bngl | 215 + .../SI_files_Oklahoma_Oklahoma.bngl | 225 + .../Mallela2021/SI_files_Oregon_Oregon.bngl | 221 + .../SI_files_Pennsylvania_Pennsylvania.bngl | 211 + .../SI_files_RhodeIsland_RhodeIsland.bngl | 211 + .../SI_files_SouthCarolina_SouthCarolina.bngl | 221 + .../SI_files_SouthDakota_SouthDakota.bngl | 211 + .../SI_files_Tennessee_Tennessee.bngl | 211 + .../Mallela2021/SI_files_Texas_Texas.bngl | 221 + Published/Mallela2021/SI_files_Utah_Utah.bngl | 221 + .../Mallela2021/SI_files_Vermont_Vermont.bngl | 221 + .../SI_files_Virginia_Virginia.bngl | 211 + .../SI_files_Washington_Washington.bngl | 211 + .../SI_files_WestVirginia_WestVirginia.bngl | 211 + .../SI_files_Wisconsin_Wisconsin.bngl | 215 + .../Mallela2021/SI_files_Wyoming_Wyoming.bngl | 211 + Published/Mallela2021/metadata.yaml | 25 + .../Mallela2021_Cities/Beantown_m11.bngl | 204 + Published/Mallela2021_Cities/BigApple_m1.bngl | 212 + Published/Mallela2021_Cities/BigD_m4.bngl | 212 + .../Mallela2021_Cities/BrotherlyLove_m8.bngl | 204 + Published/Mallela2021_Cities/DC_m6.bngl | 212 + .../Mallela2021_Cities/EmeraldCity_m15.bngl | 212 + Published/Mallela2021_Cities/Frisco_m12.bngl | 204 + Published/Mallela2021_Cities/HTown_m5.bngl | 212 + Published/Mallela2021_Cities/Hotlanta_m9.bngl | 212 + .../Mallela2021_Cities/InlandEmpire_m13.bngl | 204 + Published/Mallela2021_Cities/LaLaLand_m2.bngl | 204 + .../Mallela2021_Cities/MagicCity_m7.bngl | 212 + .../Mallela2021_Cities/MotorCity_m14.bngl | 204 + Published/Mallela2021_Cities/README.md | 35 + .../Valley_of_the_Sun_m10.bngl | 212 + .../Mallela2021_Cities/WindyCity_m3.bngl | 212 + Published/Mallela2021_Cities/metadata.yaml | 25 + Published/Mallela2022/Alabama/Alabama.bngl | 211 + Published/Mallela2022/Alabama/README.md | 21 + Published/Mallela2022/Alabama/metadata.yaml | 22 + .../Abilene_TX_Abilene_TX.bngl | 215 + .../Mallela2022_MSAs/Akron_OH_Akron_OH.bngl | 211 + ...dy-Troy_NY_Albany-Schenectady-Troy_NY.bngl | 211 + .../Mallela2022_MSAs/Albany_GA_Albany_GA.bngl | 215 + .../Albuquerque_NM_Albuquerque_NM.bngl | 215 + .../Alexandria_LA_Alexandria_LA.bngl | 211 + ...A-NJ_Allentown-Bethlehem-Easton_PA-NJ.bngl | 215 + .../Amarillo_TX_Amarillo_TX.bngl | 211 + .../Anchorage_AK_Anchorage_AK.bngl | 225 + .../Ann_Arbor_MI_Ann_Arbor_MI.bngl | 211 + .../Appleton_WI_Appleton_WI.bngl | 211 + .../Asheville_NC_Asheville_NC.bngl | 211 + ...rke_County_GA_Athens-Clarke_County_GA.bngl | 211 + ...A_Atlanta-Sandy_Springs-Alpharetta_GA.bngl | 211 + ...mmonton_NJ_Atlantic_City-Hammonton_NJ.bngl | 211 + .../Auburn-Opelika_AL_Auburn-Opelika_AL.bngl | 221 + ...y_GA-SC_Augusta-Richmond_County_GA-SC.bngl | 215 + ...in-Round_Rock_TX_Austin-Round_Rock_TX.bngl | 221 + .../Bakersfield_CA_Bakersfield_CA.bngl | 211 + ...owson_MD_Baltimore-Columbia-Towson_MD.bngl | 225 + ...Barnstable_Town_MA_Barnstable_Town_MA.bngl | 211 + .../Baton_Rouge_LA_Baton_Rouge_LA.bngl | 211 + .../Battle_Creek_MI_Battle_Creek_MI.bngl | 211 + .../Bay_City_MI_Bay_City_MI.bngl | 211 + ...ort_Arthur_TX_Beaumont-Port_Arthur_TX.bngl | 211 + .../Bellingham_WA_Bellingham_WA.bngl | 221 + .../Binghamton_NY_Binghamton_NY.bngl | 211 + ...ingham-Hoover_AL_Birmingham-Hoover_AL.bngl | 221 + .../Bloomington_IN_Bloomington_IN.bngl | 211 + ...burg-Berwick_PA_Bloomsburg-Berwick_PA.bngl | 225 + .../Boise_City_ID_Boise_City_ID.bngl | 221 + ...n_MA-NH_Boston-Cambridge-Newton_MA-NH.bngl | 215 + .../Boulder_CO_Boulder_CO.bngl | 221 + .../Bowling_Green_KY_Bowling_Green_KY.bngl | 211 + ...alk_CT_Bridgeport-Stamford-Norwalk_CT.bngl | 211 + ...Harlingen_TX_Brownsville-Harlingen_TX.bngl | 211 + ...ara_Falls_NY_Buffalo-Niagara_Falls_NY.bngl | 211 + ...ton_VT_Burlington-South_Burlington_VT.bngl | 225 + .../Burlington_NC_Burlington_NC.bngl | 211 + ..._Park_MD_California-Lexington_Park_MD.bngl | 211 + ...nton-Massillon_OH_Canton-Massillon_OH.bngl | 211 + ...ort_Myers_FL_Cape_Coral-Fort_Myers_FL.bngl | 221 + ...ondale-Marion_IL_Carbondale-Marion_IL.bngl | 211 + .../Cedar_Rapids_IA_Cedar_Rapids_IA.bngl | 211 + ...nesboro_PA_Chambersburg-Waynesboro_PA.bngl | 211 + ...ampaign-Urbana_IL_Champaign-Urbana_IL.bngl | 211 + ...ton_SC_Charleston-North_Charleston_SC.bngl | 221 + .../Charleston_WV_Charleston_WV.bngl | 215 + ...C-SC_Charlotte-Concord-Gastonia_NC-SC.bngl | 225 + ...Charlottesville_VA_Charlottesville_VA.bngl | 211 + .../Chattanooga_TN-GA_Chattanooga_TN-GA.bngl | 215 + ...-WI_Chicago-Naperville-Elgin_IL-IN-WI.bngl | 215 + ...ncinnati_OH-KY-IN_Cincinnati_OH-KY-IN.bngl | 215 + .../Clarksville_TN-KY_Clarksville_TN-KY.bngl | 225 + ...eveland-Elyria_OH_Cleveland-Elyria_OH.bngl | 211 + ...ion-Bryan_TX_College_Station-Bryan_TX.bngl | 211 + ...lorado_Springs_CO_Colorado_Springs_CO.bngl | 211 + .../Columbia_SC_Columbia_SC.bngl | 221 + .../Columbus_GA-AL_Columbus_GA-AL.bngl | 225 + .../Columbus_IN_Columbus_IN.bngl | 211 + .../Columbus_OH_Columbus_OH.bngl | 211 + .../Corpus_Christi_TX_Corpus_Christi_TX.bngl | 211 + ...Crestview-Fort_Walton_Beach-Destin_FL.bngl | 211 + .../Cumberland_MD-WV_Cumberland_MD-WV.bngl | 215 + ...ton_TX_Dallas-Fort_Worth-Arlington_TX.bngl | 221 + .../Mallela2022_MSAs/Dalton_GA_Dalton_GA.bngl | 211 + ...ope-Foley_AL_Daphne-Fairhope-Foley_AL.bngl | 211 + ...IL_Davenport-Moline-Rock_Island_IA-IL.bngl | 215 + .../Mallela2022_MSAs/Dayton_OH_Dayton_OH.bngl | 221 + ...Deltona-Daytona_Beach-Ormond_Beach_FL.bngl | 221 + ...Lakewood_CO_Denver-Aurora-Lakewood_CO.bngl | 215 + ...ines_IA_Des_Moines-West_Des_Moines_IA.bngl | 211 + ...earborn_MI_Detroit-Warren-Dearborn_MI.bngl | 211 + ...earborn_MI_Detroit_Warren_Dearborn_MI.bngl | 211 + .../Mallela2022_MSAs/Dothan_AL_Dothan_AL.bngl | 211 + .../Mallela2022_MSAs/Dover_DE_Dover_DE.bngl | 211 + .../Dubuque_IA_Dubuque_IA.bngl | 211 + ...-Chapel_Hill_NC_Durham-Chapel_Hill_NC.bngl | 211 + ...st_Stroudsburg_PA_East_Stroudsburg_PA.bngl | 211 + .../El_Centro_CA_El_Centro_CA.bngl | 211 + .../El_Paso_TX_El_Paso_TX.bngl | 211 + .../Elkhart-Goshen_IN_Elkhart-Goshen_IN.bngl | 211 + .../Evansville_IN-KY_Evansville_IN-KY.bngl | 215 + .../Fargo_ND-MN_Fargo_ND-MN.bngl | 215 + .../Farmington_NM_Farmington_NM.bngl | 211 + ..._AR_Fayetteville-Springdale-Rogers_AR.bngl | 211 + .../Fayetteville_NC_Fayetteville_NC.bngl | 211 + .../Flagstaff_AZ_Flagstaff_AZ.bngl | 215 + .../Mallela2022_MSAs/Flint_MI_Flint_MI.bngl | 211 + ...e_Shoals_AL_Florence-Muscle_Shoals_AL.bngl | 211 + .../Florence_SC_Florence_SC.bngl | 211 + .../Fort_Collins_CO_Fort_Collins_CO.bngl | 211 + .../Fort_Wayne_IN_Fort_Wayne_IN.bngl | 211 + .../Mallela2022_MSAs/Fresno_CA_Fresno_CA.bngl | 211 + .../Gadsden_AL_Gadsden_AL.bngl | 215 + .../Gainesville_FL_Gainesville_FL.bngl | 221 + .../Gainesville_GA_Gainesville_GA.bngl | 211 + .../Glens_Falls_NY_Glens_Falls_NY.bngl | 211 + .../Goldsboro_NC_Goldsboro_NC.bngl | 221 + .../Grand_Forks_ND-MN_Grand_Forks_ND-MN.bngl | 211 + .../Grand_Island_NE_Grand_Island_NE.bngl | 211 + ...-Kentwood_MI_Grand_Rapids-Kentwood_MI.bngl | 211 + .../Greeley_CO_Greeley_CO.bngl | 211 + .../Green_Bay_WI_Green_Bay_WI.bngl | 211 + ...igh_Point_NC_Greensboro-High_Point_NC.bngl | 211 + ...le-Anderson_SC_Greenville-Anderson_SC.bngl | 221 + .../Greenville_NC_Greenville_NC.bngl | 211 + ...Gulfport-Biloxi_MS_Gulfport-Biloxi_MS.bngl | 211 + ...rg_MD-WV_Hagerstown-Martinsburg_MD-WV.bngl | 211 + .../Hammond_LA_Hammond_LA.bngl | 211 + ...nford-Corcoran_CA_Hanford-Corcoran_CA.bngl | 211 + ...rg-Carlisle_PA_Harrisburg-Carlisle_PA.bngl | 211 + .../Harrisonburg_VA_Harrisonburg_VA.bngl | 211 + ..._Hartford-East_Hartford-Middletown_CT.bngl | 211 + .../Hattiesburg_MS_Hattiesburg_MS.bngl | 211 + ...ganton_NC_Hickory-Lenoir-Morganton_NC.bngl | 211 + ...lton_Head_Island-Bluffton-Beaufort_SC.bngl | 221 + ...Houma-Thibodaux_LA_Houma-Thibodaux_LA.bngl | 211 + ...X_Houston-The_Woodlands-Sugar_Land_TX.bngl | 221 + ..._WV-KY-OH_Huntington-Ashland_WV-KY-OH.bngl | 225 + .../Huntsville_AL_Huntsville_AL.bngl | 221 + ...on_IN_Indianapolis-Carmel-Anderson_IN.bngl | 211 + .../Iowa_City_IA_Iowa_City_IA.bngl | 221 + .../Jackson_MI_Jackson_MI.bngl | 221 + .../Jackson_MS_Jackson_MS.bngl | 221 + .../Jacksonville_FL_Jacksonville_FL.bngl | 221 + ...sville-Beloit_WI_Janesville-Beloit_WI.bngl | 211 + ...mazoo-Portage_MI_Kalamazoo-Portage_MI.bngl | 211 + .../Kankakee_IL_Kankakee_IL.bngl | 211 + .../Kansas_City_MO-KS_Kansas_City_MO-KS.bngl | 215 + ...ick-Richland_WA_Kennewick-Richland_WA.bngl | 211 + .../Killeen-Temple_TX_Killeen-Temple_TX.bngl | 211 + .../Kingston_NY_Kingston_NY.bngl | 211 + .../Knoxville_TN_Knoxville_TN.bngl | 221 + .../Mallela2022_MSAs/Kokomo_IN_Kokomo_IN.bngl | 211 + ...ayette_IN_Lafayette-West_Lafayette_IN.bngl | 211 + .../Lafayette_LA_Lafayette_LA.bngl | 221 + .../Lake_Charles_LA_Lake_Charles_LA.bngl | 221 + ...ingman_AZ_Lake_Havasu_City-Kingman_AZ.bngl | 211 + ...ter_Haven_FL_Lakeland-Winter_Haven_FL.bngl | 221 + .../Lancaster_PA_Lancaster_PA.bngl | 211 + ...st_Lansing_MI_Lansing-East_Lansing_MI.bngl | 211 + .../Mallela2022_MSAs/Laredo_TX_Laredo_TX.bngl | 221 + .../Las_Cruces_NM_Las_Cruces_NM.bngl | 211 + ...se_NV_Las_Vegas-Henderson-Paradise_NV.bngl | 211 + .../Mallela2022_MSAs/Lawton_OK_Lawton_OK.bngl | 211 + .../Lebanon_PA_Lebanon_PA.bngl | 221 + ...ngton-Fayette_KY_Lexington-Fayette_KY.bngl | 211 + .../Lincoln_NE_Lincoln_NE.bngl | 211 + ...ttle_Rock-North_Little_Rock-Conway_AR.bngl | 221 + .../Longview_TX_Longview_TX.bngl | 211 + ..._CA_Los_Angeles-Long_Beach-Anaheim_CA.bngl | 211 + ...-IN_Louisville_Jefferson_County_KY-IN.bngl | 211 + .../Lubbock_TX_Lubbock_TX.bngl | 221 + ...n-Bibb_County_GA_Macon-Bibb_County_GA.bngl | 211 + .../Madison_WI_Madison_WI.bngl | 221 + ...hester-Nashua_NH_Manchester-Nashua_NH.bngl | 211 + ...ission_TX_McAllen-Edinburg-Mission_TX.bngl | 211 + .../Memphis_TN-MS-AR_Memphis_TN-MS-AR.bngl | 215 + .../Mallela2022_MSAs/Merced_CA_Merced_CA.bngl | 211 + ...mi-Fort_Lauderdale-West_Palm_Beach_FL.bngl | 221 + ...La_Porte_IN_Michigan_City-La_Porte_IN.bngl | 211 + ...kee-Waukesha_WI_Milwaukee-Waukesha_WI.bngl | 211 + ...inneapolis-St._Paul-Bloomington_MN-WI.bngl | 225 + .../Mallela2022_MSAs/Mobile_AL_Mobile_AL.bngl | 211 + .../Modesto_CA_Modesto_CA.bngl | 211 + .../Mallela2022_MSAs/Monroe_LA_Monroe_LA.bngl | 211 + .../Mallela2022_MSAs/Monroe_MI_Monroe_MI.bngl | 211 + .../Montgomery_AL_Montgomery_AL.bngl | 211 + ...nacortes_WA_Mount_Vernon-Anacortes_WA.bngl | 211 + .../Mallela2022_MSAs/Muncie_IN_Muncie_IN.bngl | 211 + .../Muskegon_MI_Muskegon_MI.bngl | 211 + ...arco_Island_FL_Naples-Marco_Island_FL.bngl | 221 + ...lle-Davidson-Murfreesboro-Franklin_TN.bngl | 211 + ...Haven-Milford_CT_New_Haven-Milford_CT.bngl | 211 + ...s-Metairie_LA_New_Orleans-Metairie_LA.bngl | 221 + ..._New_York-Newark-Jersey_City_NY-NJ-PA.bngl | 215 + .../Mallela2022_MSAs/Niles_MI_Niles_MI.bngl | 211 + ...n_FL_North_Port-Sarasota-Bradenton_FL.bngl | 221 + ...h-New_London_CT_Norwich-New_London_CT.bngl | 211 + .../Mallela2022_MSAs/Ocala_FL_Ocala_FL.bngl | 221 + .../Ocean_City_NJ_Ocean_City_NJ.bngl | 211 + ...den-Clearfield_UT_Ogden-Clearfield_UT.bngl | 221 + .../Oklahoma_City_OK_Oklahoma_City_OK.bngl | 221 + ...uffs_NE-IA_Omaha-Council_Bluffs_NE-IA.bngl | 215 + ...nford_FL_Orlando-Kissimmee-Sanford_FL.bngl | 221 + .../Owensboro_KY_Owensboro_KY.bngl | 211 + ...ra_CA_Oxnard-Thousand_Oaks-Ventura_CA.bngl | 221 + ...e_FL_Palm_Bay-Melbourne-Titusville_FL.bngl | 221 + ...rent_FL_Pensacola-Ferry_Pass-Brent_FL.bngl | 211 + .../Mallela2022_MSAs/Peoria_IL_Peoria_IL.bngl | 211 + ...delphia-Camden-Wilmington_PA-NJ-DE-MD.bngl | 215 + ...-Chandler_AZ_Phoenix-Mesa-Chandler_AZ.bngl | 221 + .../Pine_Bluff_AR_Pine_Bluff_AR.bngl | 211 + .../Pittsburgh_PA_Pittsburgh_PA.bngl | 211 + .../Pittsfield_MA_Pittsfield_MA.bngl | 211 + .../Port_St._Lucie_FL_Port_St._Lucie_FL.bngl | 221 + ...ortland_ME_Portland-South_Portland_ME.bngl | 211 + ...WA_Portland-Vancouver-Hillsboro_OR-WA.bngl | 225 + ...Y_Poughkeepsie-Newburgh-Middletown_NY.bngl | 211 + ...escott_AZ_Prescott_Valley-Prescott_AZ.bngl | 211 + ...arwick_RI-MA_Providence-Warwick_RI-MA.bngl | 215 + .../Provo-Orem_UT_Provo-Orem_UT.bngl | 211 + .../Mallela2022_MSAs/Pueblo_CO_Pueblo_CO.bngl | 211 + .../Punta_Gorda_FL_Punta_Gorda_FL.bngl | 211 + Published/Mallela2022_MSAs/README.md | 301 + .../Mallela2022_MSAs/Racine_WI_Racine_WI.bngl | 211 + .../Raleigh-Cary_NC_Raleigh-Cary_NC.bngl | 221 + .../Reading_PA_Reading_PA.bngl | 211 + .../Mallela2022_MSAs/Reno_NV_Reno_NV.bngl | 211 + .../Richmond_VA_Richmond_VA.bngl | 211 + ...A_Riverside-San_Bernardino-Ontario_CA.bngl | 211 + .../Roanoke_VA_Roanoke_VA.bngl | 211 + .../Rochester_MN_Rochester_MN.bngl | 211 + .../Rochester_NY_Rochester_NY.bngl | 211 + .../Rockford_IL_Rockford_IL.bngl | 211 + .../Rocky_Mount_NC_Rocky_Mount_NC.bngl | 211 + .../Mallela2022_MSAs/Rome_GA_Rome_GA.bngl | 211 + ...som_CA_Sacramento-Roseville-Folsom_CA.bngl | 221 + .../Saginaw_MI_Saginaw_MI.bngl | 211 + .../Mallela2022_MSAs/Salem_OR_Salem_OR.bngl | 211 + .../Salinas_CA_Salinas_CA.bngl | 211 + .../Salisbury_MD-DE_Salisbury_MD-DE.bngl | 215 + .../Salt_Lake_City_UT_Salt_Lake_City_UT.bngl | 211 + ...nfels_TX_San_Antonio-New_Braunfels_TX.bngl | 221 + ..._CA_San_Diego-Chula_Vista-Carlsbad_CA.bngl | 211 + ..._CA_San_Francisco-Oakland-Berkeley_CA.bngl | 211 + ..._CA_San_Jose-Sunnyvale-Santa_Clara_CA.bngl | 221 + ...les_CA_San_Luis_Obispo-Paso_Robles_CA.bngl | 221 + ...rbara_CA_Santa_Maria-Santa_Barbara_CA.bngl | 211 + ...sa-Petaluma_CA_Santa_Rosa-Petaluma_CA.bngl | 211 + .../Savannah_GA_Savannah_GA.bngl | 211 + ...kes-Barre_PA_Scranton-Wilkes-Barre_PA.bngl | 211 + ...kes-Barre_PA_Scranton_Wilkes-Barre_PA.bngl | 211 + ...ellevue_WA_Seattle-Tacoma-Bellevue_WA.bngl | 221 + ...er_City_LA_Shreveport-Bossier_City_LA.bngl | 211 + ...oux_City_IA-NE-SD_Sioux_City_IA-NE-SD.bngl | 215 + .../Sioux_Falls_SD_Sioux_Falls_SD.bngl | 211 + ...waka_IN-MI_South_Bend-Mishawaka_IN-MI.bngl | 215 + .../Spartanburg_SC_Spartanburg_SC.bngl | 221 + ...e_Valley_WA_Spokane-Spokane_Valley_WA.bngl | 221 + .../Springfield_IL_Springfield_IL.bngl | 211 + .../Springfield_MA_Springfield_MA.bngl | 211 + .../St._Cloud_MN_St._Cloud_MN.bngl | 211 + .../St._George_UT_St._George_UT.bngl | 211 + .../St._Joseph_MO-KS_St._Joseph_MO-KS.bngl | 211 + .../St._Louis_MO-IL_St._Louis_MO-IL.bngl | 225 + .../Stockton_CA_Stockton_CA.bngl | 221 + .../Mallela2022_MSAs/Sumter_SC_Sumter_SC.bngl | 221 + .../Syracuse_NY_Syracuse_NY.bngl | 211 + .../Tallahassee_FL_Tallahassee_FL.bngl | 211 + ...FL_Tampa-St._Petersburg-Clearwater_FL.bngl | 221 + .../Texarkana_TX-AR_Texarkana_TX-AR.bngl | 215 + .../The_Villages_FL_The_Villages_FL.bngl | 221 + .../Mallela2022_MSAs/Toledo_OH_Toledo_OH.bngl | 211 + .../Mallela2022_MSAs/Topeka_KS_Topeka_KS.bngl | 211 + ...ton-Princeton_NJ_Trenton-Princeton_NJ.bngl | 211 + .../Mallela2022_MSAs/Tucson_AZ_Tucson_AZ.bngl | 221 + .../Mallela2022_MSAs/Tulsa_OK_Tulsa_OK.bngl | 221 + .../Tuscaloosa_AL_Tuscaloosa_AL.bngl | 211 + .../Twin_Falls_ID_Twin_Falls_ID.bngl | 211 + .../Urban_Honolulu_HI_Urban_Honolulu_HI.bngl | 221 + .../Utica-Rome_NY_Utica-Rome_NY.bngl | 211 + .../Valdosta_GA_Valdosta_GA.bngl | 211 + .../Vallejo_CA_Vallejo_CA.bngl | 211 + .../Victoria_TX_Victoria_TX.bngl | 211 + ...nd-Bridgeton_NJ_Vineland-Bridgeton_NJ.bngl | 211 + ...inia_Beach-Norfolk-Newport_News_VA-NC.bngl | 215 + .../Visalia_CA_Visalia_CA.bngl | 211 + .../Warner_Robins_GA_Warner_Robins_GA.bngl | 211 + ...gton-Arlington-Alexandria_DC-VA-MD-WV.bngl | 215 + ...edar_Falls_IA_Waterloo-Cedar_Falls_IA.bngl | 211 + .../Wenatchee_WA_Wenatchee_WA.bngl | 211 + .../Wheeling_WV-OH_Wheeling_WV-OH.bngl | 215 + .../Wichita_KS_Wichita_KS.bngl | 211 + .../Winchester_VA-WV_Winchester_VA-WV.bngl | 215 + .../Winston-Salem_NC_Winston-Salem_NC.bngl | 211 + .../Worcester_MA-CT_Worcester_MA-CT.bngl | 215 + .../Mallela2022_MSAs/Yakima_WA_Yakima_WA.bngl | 211 + .../York-Hanover_PA_York-Hanover_PA.bngl | 211 + ...H-PA_Youngstown-Warren-Boardman_OH-PA.bngl | 215 + .../Mallela2022_MSAs/Yuma_AZ_Yuma_AZ.bngl | 211 + Published/Mallela2022_MSAs/metadata.yaml | 25 + Published/Massole2023/Massole_2023.bngl | 27 + Published/Massole2023/README.md | 21 + Published/Massole2023/metadata.yaml | 22 + Published/McMillan2021/McMillan_2021.bngl | 124 + Published/McMillan2021/README.md | 21 + Published/McMillan2021/metadata.yaml | 22 + Published/Mertins2023/Mertins_2023.bngl | 123 + Published/Mertins2023/README.md | 21 + Published/Mertins2023/metadata.yaml | 22 + Published/Miller2022_NavajoNation/README.md | 25 + .../Miller2022_NavajoNation/metadata.yaml | 25 + ...upplementary_material_Arizona_Arizona.bngl | 221 + ...plementary_material_Colorado_Colorado.bngl | 229 + ...ry_material_NavajoNation_NavajoNation.bngl | 213 + ...ementary_material_NewMexico_NewMexico.bngl | 229 + .../supplementary_material_Utah_Utah.bngl | 229 + .../MEK_isoform_aMCMC_MEK1_KO.bngl | 517 + .../MEK_isoform_aMCMC_MEK1_N78G.bngl | 516 + .../MEK_isoform_aMCMC_MEK1_T292A.bngl | 515 + .../MEK_isoform_aMCMC_MEK1_T292D.bngl | 515 + .../MEK_isoform_aMCMC_MEK1_WT.bngl | 535 + .../MEK_isoform_optimization_DE_MEK1_KO.bngl | 529 + ...MEK_isoform_optimization_DE_MEK1_N78G.bngl | 514 + ...EK_isoform_optimization_DE_MEK1_T292A.bngl | 516 + ...EK_isoform_optimization_DE_MEK1_T292D.bngl | 515 + .../MEK_isoform_optimization_DE_MEK1_WT.bngl | 534 + Published/Miller2025_MEK/README.md | 30 + Published/Miller2025_MEK/metadata.yaml | 25 + Published/ModelZAP/Model_ZAP.bngl | 300 + Published/ModelZAP/README.md | 21 + Published/ModelZAP/metadata.yaml | 22 + .../Mukhopadhyay2013/Mukhopadhyay_2013.bngl | 107 + Published/Mukhopadhyay2013/README.md | 21 + Published/Mukhopadhyay2013/metadata.yaml | 22 + Published/Nag2009/Nag_2009.bngl | 181 + Published/Nag2009/README.md | 21 + Published/Nag2009/metadata.yaml | 22 + Published/Nosbisch2022/Nosbisch_2022.bngl | 52 + Published/Nosbisch2022/README.md | 21 + Published/Nosbisch2022/metadata.yaml | 22 + .../Ordyan2020/CaMKIIholo/CaMKII_holo.bngl | 201 + Published/Ordyan2020/CaMKIIholo/README.md | 21 + Published/Ordyan2020/CaMKIIholo/metadata.yaml | 22 + .../Ordyan2020/extraCaMKIIHolo/README.md | 21 + .../extraCaMKIIHolo/extra_CaMKII_Holo.bngl | 33 + .../Ordyan2020/extraCaMKIIHolo/metadata.yaml | 22 + Published/Ordyan2020/mCaMKIICaSpike/README.md | 21 + .../mCaMKIICaSpike/mCaMKII_Ca_Spike.bngl | 215 + .../Ordyan2020/mCaMKIICaSpike/metadata.yaml | 22 + Published/Pekalski2013/Pekalski_2013.bngl | 281 + Published/Pekalski2013/README.md | 21 + Published/Pekalski2013/metadata.yaml | 22 + Published/RulebasedRantransport/README.md | 21 + .../Rule_based_Ran_transport.bngl | 54 + Published/RulebasedRantransport/metadata.yaml | 22 + .../RulebasedRantransportdraft/README.md | 21 + .../Rule_based_Ran_transport_draft.bngl | 54 + .../RulebasedRantransportdraft/metadata.yaml | 22 + Published/Rulebasedegfrcompart/README.md | 21 + .../Rule_based_egfr_compart.bngl | 59 + Published/Rulebasedegfrcompart/metadata.yaml | 22 + Published/Rulebasedegfrtutorial/README.md | 21 + .../Rule_based_egfr_tutorial.bngl | 55 + Published/Rulebasedegfrtutorial/metadata.yaml | 22 + Published/VaxAndVariants/Dallas/Dallas.bngl | 450 + Published/VaxAndVariants/Dallas/README.md | 21 + Published/VaxAndVariants/Dallas/metadata.yaml | 22 + Published/VaxAndVariants/Houston/Houston.bngl | 444 + Published/VaxAndVariants/Houston/README.md | 21 + .../VaxAndVariants/Houston/metadata.yaml | 22 + Published/VaxAndVariants/NYC/NYC.bngl | 443 + Published/VaxAndVariants/NYC/README.md | 21 + Published/VaxAndVariants/NYC/metadata.yaml | 22 + Published/VaxAndVariants/Phoenix/Phoenix.bngl | 450 + Published/VaxAndVariants/Phoenix/README.md | 21 + .../VaxAndVariants/Phoenix/metadata.yaml | 22 + Published/Zhang2021/README.md | 21 + Published/Zhang2021/Zhang_2021.bngl | 760 + Published/Zhang2021/metadata.yaml | 22 + Published/Zhang2023/README.md | 21 + Published/Zhang2023/Zhang_2023.bngl | 885 + Published/Zhang2023/metadata.yaml | 22 + Published/fcerifyn/README.md | 21 + Published/fcerifyn/fceri_fyn.bngl | 125 + Published/fcerifyn/metadata.yaml | 22 + Published/innateimmunity/README.md | 21 + Published/innateimmunity/innate_immunity.bngl | 726 + Published/innateimmunity/metadata.yaml | 22 + Published/mapkdimers/README.md | 21 + Published/mapkdimers/mapk-dimers.bngl | 52 + Published/mapkdimers/metadata.yaml | 22 + Published/mapkmonomers/README.md | 21 + Published/mapkmonomers/mapk-monomers.bngl | 51 + Published/mapkmonomers/metadata.yaml | 22 + Published/notch/README.md | 21 + Published/notch/metadata.yaml | 22 + Published/notch/notch.bngl | 90 + Published/tlbr/README.md | 21 + Published/tlbr/metadata.yaml | 22 + Published/tlbr/tlbr.bngl | 42 + Published/vilar2002/README.md | 21 + Published/vilar2002/metadata.yaml | 22 + Published/vilar2002/vilar_2002.bngl | 73 + Published/vilar2002b/README.md | 21 + Published/vilar2002b/metadata.yaml | 22 + Published/vilar2002b/vilar_2002b.bngl | 75 + Published/vilar2002c/README.md | 21 + Published/vilar2002c/metadata.yaml | 22 + Published/vilar2002c/vilar_2002c.bngl | 85 + Published/wnt/README.md | 21 + Published/wnt/metadata.yaml | 22 + Published/wnt/wnt.bngl | 73 + PyBioNetGen/HIVdynamics/pt303/README.md | 21 + PyBioNetGen/HIVdynamics/pt303/metadata.yaml | 22 + PyBioNetGen/HIVdynamics/pt303/pt303.bngl | 58 + PyBioNetGen/HIVdynamics/pt403/README.md | 21 + PyBioNetGen/HIVdynamics/pt403/metadata.yaml | 22 + PyBioNetGen/HIVdynamics/pt403/pt403.bngl | 58 + PyBioNetGen/HIVdynamics/pt409/README.md | 21 + PyBioNetGen/HIVdynamics/pt409/metadata.yaml | 22 + PyBioNetGen/HIVdynamics/pt409/pt409.bngl | 58 + .../IGF1R_Model_receptor_activation_bnf.bngl | 346 + .../IGF1RModelreceptoractivationbnf/README.md | 21 + .../metadata.yaml | 22 + PyBioNetGen/core/RAFi/RAFi.bngl | 120 + PyBioNetGen/core/RAFi/README.md | 21 + PyBioNetGen/core/RAFi/metadata.yaml | 22 + PyBioNetGen/core/RAFiground/RAFi_ground.bngl | 120 + PyBioNetGen/core/RAFiground/README.md | 21 + PyBioNetGen/core/RAFiground/metadata.yaml | 22 + PyBioNetGen/core/degranulationmodel/README.md | 21 + .../degranulation_model.bngl | 400 + .../core/degranulationmodel/metadata.yaml | 22 + PyBioNetGen/core/egfr/README.md | 21 + PyBioNetGen/core/egfr/egfr.bngl | 162 + PyBioNetGen/core/egfr/metadata.yaml | 22 + PyBioNetGen/core/egfrground/README.md | 21 + PyBioNetGen/core/egfrground/egfr_ground.bngl | 162 + PyBioNetGen/core/egfrground/metadata.yaml | 22 + PyBioNetGen/core/egfrnf/README.md | 21 + PyBioNetGen/core/egfrnf/egfr_nf.bngl | 294 + PyBioNetGen/core/egfrnf/metadata.yaml | 22 + PyBioNetGen/core/egfrode/README.md | 21 + PyBioNetGen/core/egfrode/egfr_ode.bngl | 249 + PyBioNetGen/core/egfrode/metadata.yaml | 22 + .../egfrode_published-models_PyBNG/README.md | 21 + .../egfr_ode.bngl | 249 + .../metadata.yaml | 22 + PyBioNetGen/core/example1/README.md | 21 + PyBioNetGen/core/example1/example1.bngl | 254 + PyBioNetGen/core/example1/metadata.yaml | 22 + .../core/example2startingpoint/README.md | 21 + .../example2_starting_point.bngl | 299 + .../core/example2startingpoint/metadata.yaml | 22 + PyBioNetGen/core/fcerigamma2/README.md | 21 + .../core/fcerigamma2/fceri_gamma2.bngl | 129 + PyBioNetGen/core/fcerigamma2/metadata.yaml | 22 + .../core/fcerigamma2groundtruth/README.md | 21 + .../fceri_gamma2_ground_truth.bngl | 129 + .../core/fcerigamma2groundtruth/metadata.yaml | 22 + PyBioNetGen/core/model/README.md | 21 + PyBioNetGen/core/model/metadata.yaml | 22 + PyBioNetGen/core/model/model.bngl | 405 + .../core/model_Degranulation_aMCMC/README.md | 21 + .../model_Degranulation_aMCMC/metadata.yaml | 22 + .../core/model_Degranulation_aMCMC/model.bngl | 383 + PyBioNetGen/core/modeltofit/README.md | 21 + PyBioNetGen/core/modeltofit/metadata.yaml | 22 + PyBioNetGen/core/modeltofit/model_tofit.bngl | 383 + PyBioNetGen/core/parabola/README.md | 21 + PyBioNetGen/core/parabola/metadata.yaml | 22 + PyBioNetGen/core/parabola/parabola.bngl | 54 + PyBioNetGen/core/parabola_demo/README.md | 21 + PyBioNetGen/core/parabola_demo/metadata.yaml | 22 + PyBioNetGen/core/parabola_demo/parabola.bngl | 48 + PyBioNetGen/core/parabolaground/README.md | 21 + PyBioNetGen/core/parabolaground/metadata.yaml | 22 + .../core/parabolaground/parabola_ground.bngl | 49 + PyBioNetGen/core/polynomial/README.md | 21 + PyBioNetGen/core/polynomial/metadata.yaml | 22 + PyBioNetGen/core/polynomial/polynomial.bngl | 55 + PyBioNetGen/core/polynomialground/README.md | 21 + .../core/polynomialground/metadata.yaml | 22 + .../polynomialground/polynomial_ground.bngl | 47 + PyBioNetGen/core/receptor/README.md | 21 + PyBioNetGen/core/receptor/metadata.yaml | 22 + PyBioNetGen/core/receptor/receptor.bngl | 194 + PyBioNetGen/core/receptornf/README.md | 21 + PyBioNetGen/core/receptornf/metadata.yaml | 22 + PyBioNetGen/core/receptornf/receptor_nf.bngl | 181 + PyBioNetGen/core/tcr/README.md | 21 + PyBioNetGen/core/tcr/metadata.yaml | 22 + PyBioNetGen/core/tcr/tcr.bngl | 629 + PyBioNetGen/core/tlbr/README.md | 21 + PyBioNetGen/core/tlbr/metadata.yaml | 22 + PyBioNetGen/core/tlbr/tlbr.bngl | 99 + PyBioNetGen/tests/ErrNoFrees/ErrNoFrees.bngl | 170 + PyBioNetGen/tests/ErrNoFrees/README.md | 21 + PyBioNetGen/tests/ErrNoFrees/metadata.yaml | 22 + PyBioNetGen/tests/LilyIgE/LilyIgE.bngl | 357 + PyBioNetGen/tests/LilyIgE/README.md | 21 + PyBioNetGen/tests/LilyIgE/metadata.yaml | 22 + PyBioNetGen/tests/NFmodel/NFmodel.bngl | 57 + PyBioNetGen/tests/NFmodel/README.md | 21 + PyBioNetGen/tests/NFmodel/metadata.yaml | 22 + .../ParamsEverywhere/ParamsEverywhere.bngl | 163 + PyBioNetGen/tests/ParamsEverywhere/README.md | 21 + .../tests/ParamsEverywhere/metadata.yaml | 22 + PyBioNetGen/tests/Simple/README.md | 21 + PyBioNetGen/tests/Simple/Simple.bngl | 171 + PyBioNetGen/tests/Simple/metadata.yaml | 22 + PyBioNetGen/tests/SimpleAddActions/README.md | 21 + .../SimpleAddActions/Simple_AddActions.bngl | 180 + .../tests/SimpleAddActions/metadata.yaml | 22 + PyBioNetGen/tests/SimpleAnswer/README.md | 21 + .../tests/SimpleAnswer/Simple_Answer.bngl | 176 + PyBioNetGen/tests/SimpleAnswer/metadata.yaml | 22 + PyBioNetGen/tests/SimpleGenOnly/README.md | 21 + .../tests/SimpleGenOnly/Simple_GenOnly.bngl | 157 + PyBioNetGen/tests/SimpleGenOnly/metadata.yaml | 22 + PyBioNetGen/tests/Simplenogen/README.md | 21 + .../tests/Simplenogen/Simple_nogen.bngl | 168 + PyBioNetGen/tests/Simplenogen/metadata.yaml | 22 + PyBioNetGen/tests/Tricky/README.md | 21 + PyBioNetGen/tests/Tricky/Tricky.bngl | 180 + PyBioNetGen/tests/Tricky/metadata.yaml | 22 + PyBioNetGen/tests/TrickyUS/README.md | 21 + PyBioNetGen/tests/TrickyUS/TrickyUS.bngl | 173 + PyBioNetGen/tests/TrickyUS/metadata.yaml | 22 + PyBioNetGen/tests/actionssyntax/README.md | 21 + .../tests/actionssyntax/actions_syntax.bngl | 53 + PyBioNetGen/tests/actionssyntax/metadata.yaml | 22 + PyBioNetGen/tests/bngerror/README.md | 21 + PyBioNetGen/tests/bngerror/bng_error.bngl | 54 + PyBioNetGen/tests/bngerror/metadata.yaml | 22 + PyBioNetGen/tests/egg/README.md | 21 + PyBioNetGen/tests/egg/egg.bngl | 47 + PyBioNetGen/tests/egg/metadata.yaml | 22 + PyBioNetGen/tests/freemissing/README.md | 21 + .../tests/freemissing/free_missing.bngl | 52 + PyBioNetGen/tests/freemissing/metadata.yaml | 22 + PyBioNetGen/tests/nofrees/README.md | 21 + PyBioNetGen/tests/nofrees/metadata.yaml | 22 + PyBioNetGen/tests/nofrees/no_frees.bngl | 53 + PyBioNetGen/tests/nogeneratenetwork/README.md | 21 + .../tests/nogeneratenetwork/metadata.yaml | 22 + .../no_generate_network.bngl | 53 + PyBioNetGen/tests/nosuffix/README.md | 21 + PyBioNetGen/tests/nosuffix/metadata.yaml | 22 + PyBioNetGen/tests/nosuffix/no_suffix.bngl | 53 + PyBioNetGen/tests/parabola/README.md | 21 + PyBioNetGen/tests/parabola/metadata.yaml | 22 + PyBioNetGen/tests/parabola/parabola.bngl | 55 + PyBioNetGen/tests/parabola2/README.md | 21 + PyBioNetGen/tests/parabola2/metadata.yaml | 22 + PyBioNetGen/tests/parabola2/parabola2.bngl | 57 + .../tests/parabola_bngl_files/README.md | 21 + .../tests/parabola_bngl_files/metadata.yaml | 22 + .../tests/parabola_bngl_files/parabola.bngl | 53 + .../README.md | 21 + .../metadata.yaml | 22 + .../parabola.bngl | 53 + PyBioNetGen/tests/polynomial/README.md | 21 + PyBioNetGen/tests/polynomial/metadata.yaml | 22 + PyBioNetGen/tests/polynomial/polynomial.bngl | 55 + .../polynomial_full_tests_T6-check/README.md | 21 + .../metadata.yaml | 22 + .../polynomial.bngl | 53 + PyBioNetGen/tests/receptornf/README.md | 21 + PyBioNetGen/tests/receptornf/metadata.yaml | 22 + PyBioNetGen/tests/receptornf/receptor_nf.bngl | 181 + PyBioNetGen/tests/simplenfseed/README.md | 21 + PyBioNetGen/tests/simplenfseed/metadata.yaml | 22 + .../tests/simplenfseed/simple_nf_seed.bngl | 48 + PyBioNetGen/tests/trivial/README.md | 21 + PyBioNetGen/tests/trivial/metadata.yaml | 22 + PyBioNetGen/tests/trivial/trivial.bngl | 59 + Tutorials/General/chemistry/README.md | 21 + Tutorials/General/chemistry/chemistry.bngl | 57 + Tutorials/General/chemistry/metadata.yaml | 22 + Tutorials/General/polymer/README.md | 21 + Tutorials/General/polymer/metadata.yaml | 22 + Tutorials/General/polymer/polymer.bngl | 60 + Tutorials/General/polymerdraft/README.md | 21 + Tutorials/General/polymerdraft/metadata.yaml | 22 + .../General/polymerdraft/polymer_draft.bngl | 60 + Tutorials/General/quasiequilibrium/README.md | 21 + .../General/quasiequilibrium/metadata.yaml | 22 + .../quasiequilibrium/quasi_equilibrium.bngl | 57 + Tutorials/General/simple/README.md | 21 + Tutorials/General/simple/metadata.yaml | 22 + Tutorials/General/simple/simple.bngl | 107 + Tutorials/General/toy1/README.md | 21 + Tutorials/General/toy1/metadata.yaml | 22 + Tutorials/General/toy1/toy1.bngl | 98 + Tutorials/General/toy2/README.md | 21 + Tutorials/General/toy2/metadata.yaml | 22 + Tutorials/General/toy2/toy2.bngl | 123 + Tutorials/NativeTutorials/AB/AB.bngl | 26 + Tutorials/NativeTutorials/AB/README.md | 21 + Tutorials/NativeTutorials/AB/metadata.yaml | 22 + Tutorials/NativeTutorials/ABC/ABC.bngl | 14 + Tutorials/NativeTutorials/ABC/README.md | 21 + Tutorials/NativeTutorials/ABC/metadata.yaml | 22 + .../NativeTutorials/ABCscan/ABC_scan.bngl | 24 + Tutorials/NativeTutorials/ABCscan/README.md | 21 + .../NativeTutorials/ABCscan/metadata.yaml | 22 + Tutorials/NativeTutorials/ABCssa/ABC_ssa.bngl | 14 + Tutorials/NativeTutorials/ABCssa/README.md | 21 + .../NativeTutorials/ABCssa/metadata.yaml | 22 + Tutorials/NativeTutorials/ABp/ABp.bngl | 42 + Tutorials/NativeTutorials/ABp/README.md | 21 + Tutorials/NativeTutorials/ABp/metadata.yaml | 22 + .../NativeTutorials/ABpapprox/ABp_approx.bngl | 42 + Tutorials/NativeTutorials/ABpapprox/README.md | 21 + .../NativeTutorials/ABpapprox/metadata.yaml | 22 + Tutorials/NativeTutorials/BAB/BAB.bngl | 30 + Tutorials/NativeTutorials/BAB/README.md | 21 + Tutorials/NativeTutorials/BAB/metadata.yaml | 22 + .../NativeTutorials/BABcoop/BAB_coop.bngl | 34 + Tutorials/NativeTutorials/BABcoop/README.md | 21 + .../NativeTutorials/BABcoop/metadata.yaml | 22 + .../NativeTutorials/BABscan/BAB_scan.bngl | 32 + Tutorials/NativeTutorials/BABscan/README.md | 21 + .../NativeTutorials/BABscan/metadata.yaml | 22 + Tutorials/NativeTutorials/BLBR/BLBR.bngl | 50 + Tutorials/NativeTutorials/BLBR/README.md | 21 + Tutorials/NativeTutorials/BLBR/metadata.yaml | 22 + .../Chyleklibrary/Chylek_library.bngl | 369 + .../NativeTutorials/Chyleklibrary/README.md | 21 + .../Chyleklibrary/metadata.yaml | 22 + .../CircadianOscillator.bngl | 93 + .../CircadianOscillator/README.md | 21 + .../CircadianOscillator/metadata.yaml | 22 + .../ComplexDegradation.bngl | 36 + .../ComplexDegradation/README.md | 21 + .../ComplexDegradation/metadata.yaml | 22 + .../Creamer2012/Creamer_2012.bngl | 1921 ++ .../NativeTutorials/Creamer2012/README.md | 21 + .../NativeTutorials/Creamer2012/metadata.yaml | 22 + .../NativeTutorials/FceRIji/FceRI_ji.bngl | 134 + Tutorials/NativeTutorials/FceRIji/README.md | 21 + .../NativeTutorials/FceRIji/metadata.yaml | 22 + .../NativeTutorials/FceRIviz/FceRI_viz.bngl | 107 + Tutorials/NativeTutorials/FceRIviz/README.md | 21 + .../NativeTutorials/FceRIviz/metadata.yaml | 22 + Tutorials/NativeTutorials/GK/GK.bngl | 32 + Tutorials/NativeTutorials/GK/README.md | 21 + Tutorials/NativeTutorials/GK/metadata.yaml | 22 + Tutorials/NativeTutorials/LR/LR.bngl | 43 + Tutorials/NativeTutorials/LR/README.md | 21 + Tutorials/NativeTutorials/LR/metadata.yaml | 22 + Tutorials/NativeTutorials/LRR/LRR.bngl | 53 + Tutorials/NativeTutorials/LRR/README.md | 21 + Tutorials/NativeTutorials/LRR/metadata.yaml | 22 + .../NativeTutorials/LRRcomp/LRR_comp.bngl | 58 + Tutorials/NativeTutorials/LRRcomp/README.md | 21 + .../NativeTutorials/LRRcomp/metadata.yaml | 22 + Tutorials/NativeTutorials/LRcomp/LR_comp.bngl | 54 + Tutorials/NativeTutorials/LRcomp/README.md | 21 + .../NativeTutorials/LRcomp/metadata.yaml | 22 + Tutorials/NativeTutorials/LV/LV.bngl | 35 + Tutorials/NativeTutorials/LV/README.md | 21 + Tutorials/NativeTutorials/LV/metadata.yaml | 22 + Tutorials/NativeTutorials/LVcomp/LV_comp.bngl | 42 + Tutorials/NativeTutorials/LVcomp/README.md | 21 + .../NativeTutorials/LVcomp/metadata.yaml | 22 + Tutorials/NativeTutorials/Lisman/Lisman.bngl | 45 + Tutorials/NativeTutorials/Lisman/README.md | 21 + .../NativeTutorials/Lisman/metadata.yaml | 22 + .../Lismanbifurcate/Lisman_bifurcate.bngl | 37 + .../NativeTutorials/Lismanbifurcate/README.md | 21 + .../Lismanbifurcate/metadata.yaml | 22 + .../NativeTutorials/Repressilator/README.md | 21 + .../Repressilator/Repressilator.bngl | 82 + .../Repressilator/metadata.yaml | 22 + Tutorials/NativeTutorials/SIR/README.md | 21 + Tutorials/NativeTutorials/SIR/SIR.bngl | 30 + Tutorials/NativeTutorials/SIR/metadata.yaml | 22 + .../NativeTutorials/Suderman2013/README.md | 21 + .../Suderman2013/Suderman_2013.bngl | 387 + .../Suderman2013/metadata.yaml | 22 + .../NativeTutorials/birthdeath/README.md | 21 + .../birthdeath/birth-death.bngl | 25 + .../NativeTutorials/birthdeath/metadata.yaml | 22 + .../NativeTutorials/cBNGLsimple/README.md | 21 + .../cBNGLsimple/cBNGL_simple.bngl | 176 + .../NativeTutorials/cBNGLsimple/metadata.yaml | 22 + .../NativeTutorials/egfrsimple/README.md | 21 + .../egfrsimple/egfr_simple.bngl | 82 + .../NativeTutorials/egfrsimple/metadata.yaml | 22 + .../organelletransport/README.md | 21 + .../organelletransport/metadata.yaml | 22 + .../organelle_transport.bngl | 90 + .../organelletransportstruct/README.md | 21 + .../organelletransportstruct/metadata.yaml | 22 + .../organelle_transport_struct.bngl | 86 + Tutorials/NativeTutorials/toggle/README.md | 21 + .../NativeTutorials/toggle/metadata.yaml | 22 + Tutorials/NativeTutorials/toggle/toggle.bngl | 81 + .../NativeTutorials/translateSBML/README.md | 21 + .../translateSBML/metadata.yaml | 22 + .../translateSBML/translateSBML.bngl | 16 + Tutorials/NativeTutorials/visualize/README.md | 21 + .../NativeTutorials/visualize/metadata.yaml | 22 + .../NativeTutorials/visualize/visualize.bngl | 54 + manifest.json | 14627 ++++++++++++++++ metadata-schema.yaml | 56 + migration-summary.json | 7072 ++++++++ scripts/generate-manifest.js | 171 + scripts/validate-metadata.js | 260 + 1519 files changed, 169741 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/validate.yml create mode 100644 Contributed/BNGPlayground_Examples/biology/aktsignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/aktsignaling/akt-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/aktsignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/allostericactivation/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/allostericactivation/allosteric-activation.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/allostericactivation/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/ampksignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/ampksignaling/ampk-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/ampksignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/apoptosiscascade/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/apoptosiscascade/apoptosis-cascade.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/apoptosiscascade/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/autoactivationloop/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/autoactivationloop/auto-activation-loop.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/autoactivationloop/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/autophagyregulation/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/autophagyregulation/autophagy-regulation.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/autophagyregulation/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/bcrsignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/bcrsignaling/bcr-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/bcrsignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/betaadrenergicresponse/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/betaadrenergicresponse/beta-adrenergic-response.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/betaadrenergicresponse/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/bistabletoggleswitch/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/bistabletoggleswitch/bistable-toggle-switch.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/bistabletoggleswitch/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/bloodcoagulationthrombin/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/bloodcoagulationthrombin/blood-coagulation-thrombin.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/bloodcoagulationthrombin/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/bmpsignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/bmpsignaling/bmp-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/bmpsignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/brusselatoroscillator/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/brusselatoroscillator/brusselator-oscillator.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/brusselatoroscillator/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/calcineurinnfatpathway/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/calcineurinnfatpathway/calcineurin-nfat-pathway.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/calcineurinnfatpathway/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/calciumspikesignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/calciumspikesignaling/calcium-spike-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/calciumspikesignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/caspaseactivationloop/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/caspaseactivationloop/caspase-activation-loop.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/caspaseactivationloop/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/cd40signaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/cd40signaling/cd40-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/cd40signaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/cellcyclecheckpoint/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/cellcyclecheckpoint/cell-cycle-checkpoint.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/cellcyclecheckpoint/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/checkpointkinasesignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/checkpointkinasesignaling/checkpoint-kinase-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/checkpointkinasesignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/chemotaxissignaltransduction/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/chemotaxissignaltransduction/chemotaxis-signal-transduction.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/chemotaxissignaltransduction/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/circadianoscillator/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/circadianoscillator/circadian-oscillator.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/circadianoscillator/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/clockbmal1genecircuit/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/clockbmal1genecircuit/clock-bmal1-gene-circuit.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/clockbmal1genecircuit/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/competitiveenzymeinhibition/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/competitiveenzymeinhibition/competitive-enzyme-inhibition.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/competitiveenzymeinhibition/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/complementactivationcascade/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/complementactivationcascade/complement-activation-cascade.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/complementactivationcascade/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/contactinhibitionhippoyap/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/contactinhibitionhippoyap/contact-inhibition-hippo-yap.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/contactinhibitionhippoyap/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/cooperativebinding/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/cooperativebinding/cooperative-binding.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/cooperativebinding/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/dnadamagerepair/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/dnadamagerepair/dna-damage-repair.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/dnadamagerepair/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/dnamethylationdynamics/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/dnamethylationdynamics/dna-methylation-dynamics.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/dnamethylationdynamics/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/dr5apoptosissignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/dr5apoptosissignaling/dr5-apoptosis-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/dr5apoptosissignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/dualsitephosphorylation/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/dualsitephosphorylation/dual-site-phosphorylation.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/dualsitephosphorylation/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/e2frbcellcycleswitch/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/e2frbcellcycleswitch/e2f-rb-cell-cycle-switch.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/e2frbcellcycleswitch/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/egfrsignalingpathway/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/egfrsignalingpathway/egfr-signaling-pathway.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/egfrsignalingpathway/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/eif2astressresponse/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/eif2astressresponse/eif2a-stress-response.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/eif2astressresponse/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/endosomalsortingrab/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/endosomalsortingrab/endosomal-sorting-rab.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/endosomalsortingrab/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/erknucleartranslocation/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/erknucleartranslocation/erk-nuclear-translocation.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/erknucleartranslocation/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/erstressresponse/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/erstressresponse/er-stress-response.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/erstressresponse/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/fgfsignalingpathway/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/fgfsignalingpathway/fgf-signaling-pathway.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/fgfsignalingpathway/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/gas6axlsignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/gas6axlsignaling/gas6-axl-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/gas6axlsignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/geneexpressiontoggle/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/geneexpressiontoggle/gene-expression-toggle.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/geneexpressiontoggle/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/glioblastomaegfrviiisignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/glioblastomaegfrviiisignaling/glioblastoma-egfrviii-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/glioblastomaegfrviiisignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/glycolysisbranchpoint/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/glycolysisbranchpoint/glycolysis-branch-point.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/glycolysisbranchpoint/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/gpcrdesensitizationarrestin/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/gpcrdesensitizationarrestin/gpcr-desensitization-arrestin.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/gpcrdesensitizationarrestin/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/hedgehogsignalingpathway/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/hedgehogsignalingpathway/hedgehog-signaling-pathway.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/hedgehogsignalingpathway/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/hematopoieticgrowthfactor/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/hematopoieticgrowthfactor/hematopoietic-growth-factor.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/hematopoieticgrowthfactor/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/hif1adegradationloop/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/hif1adegradationloop/hif1a_degradation_loop.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/hif1adegradationloop/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/hypoxiaresponsesignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/hypoxiaresponsesignaling/hypoxia-response-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/hypoxiaresponsesignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/il1bsignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/il1bsignaling/il1b-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/il1bsignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/il6jakstatpathway/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/il6jakstatpathway/il6-jak-stat-pathway.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/il6jakstatpathway/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/immunesynapseformation/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/immunesynapseformation/immune-synapse-formation.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/immunesynapseformation/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/inflammasomeactivation/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/inflammasomeactivation/inflammasome-activation.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/inflammasomeactivation/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/inositolphosphatemetabolism/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/inositolphosphatemetabolism/inositol-phosphate-metabolism.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/inositolphosphatemetabolism/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/insulinglucosehomeostasis/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/insulinglucosehomeostasis/insulin-glucose-homeostasis.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/insulinglucosehomeostasis/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/interferonsignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/interferonsignaling/interferon-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/interferonsignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/ire1axbp1erstress/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/ire1axbp1erstress/ire1a-xbp1-er-stress.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/ire1axbp1erstress/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/jakstatcytokinesignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/jakstatcytokinesignaling/jak-stat-cytokine-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/jakstatcytokinesignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/jnkmapksignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/jnkmapksignaling/jnk-mapk-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/jnkmapksignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/kirchannelregulation/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/kirchannelregulation/kir-channel-regulation.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/kirchannelregulation/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/lacoperonregulation/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/lacoperonregulation/lac-operon-regulation.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/lacoperonregulation/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/lipidmediatedpip3signaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/lipidmediatedpip3signaling/lipid-mediated-pip3-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/lipidmediatedpip3signaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/ltypecalciumchanneldynamics/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/ltypecalciumchanneldynamics/l-type-calcium-channel-dynamics.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/ltypecalciumchanneldynamics/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/mapksignalingcascade/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/mapksignalingcascade/mapk-signaling-cascade.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/mapksignalingcascade/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/michaelismentenkinetics/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/michaelismentenkinetics/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/michaelismentenkinetics/michaelis-menten-kinetics.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/mtorc2signaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/mtorc2signaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/mtorc2signaling/mtorc2-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/mtorsignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/mtorsignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/mtorsignaling/mtor-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/myogenicdifferentiation/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/myogenicdifferentiation/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/myogenicdifferentiation/myogenic-differentiation.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/negativefeedbackloop/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/negativefeedbackloop/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/negativefeedbackloop/negative-feedback-loop.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/neurotransmitterrelease/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/neurotransmitterrelease/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/neurotransmitterrelease/neurotransmitter-release.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/nfkbfeedback/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/nfkbfeedback/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/nfkbfeedback/nfkb-feedback.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/nocgmpsignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/nocgmpsignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/nocgmpsignaling/no-cgmp-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/notchdeltalateralinhibition/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/notchdeltalateralinhibition/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/notchdeltalateralinhibition/notch-delta-lateral-inhibition.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/oxidativestressresponse/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/oxidativestressresponse/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/oxidativestressresponse/oxidative-stress-response.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/p38mapksignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/p38mapksignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/p38mapksignaling/p38-mapk-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/p53mdm2oscillator/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/p53mdm2oscillator/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/p53mdm2oscillator/p53-mdm2-oscillator.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/parp1mediateddnarepair/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/parp1mediateddnarepair/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/parp1mediateddnarepair/parp1-mediated-dna-repair.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/phosphorelaychain/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/phosphorelaychain/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/phosphorelaychain/phosphorelay-chain.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/plateletactivation/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/plateletactivation/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/plateletactivation/platelet-activation.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/predatorpreydynamics/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/predatorpreydynamics/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/predatorpreydynamics/predator-prey-dynamics.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/quorumsensingcircuit/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/quorumsensingcircuit/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/quorumsensingcircuit/quorum-sensing-circuit.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/rabgtpasecycle/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/rabgtpasecycle/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/rabgtpasecycle/rab-gtpase-cycle.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/ranklranksignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/ranklranksignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/ranklranksignaling/rankl-rank-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/rasgefgapcycle/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/rasgefgapcycle/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/rasgefgapcycle/ras-gef-gap-cycle.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/repressilatoroscillator/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/repressilatoroscillator/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/repressilatoroscillator/repressilator-oscillator.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/retinoicacidsignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/retinoicacidsignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/retinoicacidsignaling/retinoic-acid-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/rhogtpaseactincytoskeleton/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/rhogtpaseactincytoskeleton/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/rhogtpaseactincytoskeleton/rho-gtpase-actin-cytoskeleton.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/shp2phosphataseregulation/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/shp2phosphataseregulation/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/shp2phosphataseregulation/shp2-phosphatase-regulation.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/signalamplificationcascade/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/signalamplificationcascade/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/signalamplificationcascade/signal-amplification-cascade.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/simpledimerization/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/simpledimerization/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/simpledimerization/simple-dimerization.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/sirepidemicmodel/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/sirepidemicmodel/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/sirepidemicmodel/sir-epidemic-model.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/smadtgfbetasignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/smadtgfbetasignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/smadtgfbetasignaling/smad-tgf-beta-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/sonichedgehoggradient/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/sonichedgehoggradient/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/sonichedgehoggradient/sonic-hedgehog-gradient.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/stat3mediatedtranscription/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/stat3mediatedtranscription/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/stat3mediatedtranscription/stat3-mediated-transcription.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/stressresponseadaptation/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/stressresponseadaptation/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/stressresponseadaptation/stress-response-adaptation.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/synapticplasticityltp/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/synapticplasticityltp/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/synapticplasticityltp/synaptic-plasticity-ltp.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/tcellactivation/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/tcellactivation/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/tcellactivation/t-cell-activation.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/tlr3dsrnasensing/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/tlr3dsrnasensing/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/tlr3dsrnasensing/tlr3-dsrna-sensing.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/tnfinducedapoptosis/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/tnfinducedapoptosis/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/tnfinducedapoptosis/tnf-induced-apoptosis.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/twocomponentsystem/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/twocomponentsystem/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/twocomponentsystem/two-component-system.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/vegfangiogenesis/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/vegfangiogenesis/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/vegfangiogenesis/vegf-angiogenesis.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/viralsensinginnateimmunity/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/viralsensinginnateimmunity/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/viralsensinginnateimmunity/viral-sensing-innate-immunity.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/wntbetacateninsignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/wntbetacateninsignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/wntbetacateninsignaling/wnt-beta-catenin-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/biology/woundhealingpdgfsignaling/README.md create mode 100644 Contributed/BNGPlayground_Examples/biology/woundhealingpdgfsignaling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/biology/woundhealingpdgfsignaling/wound-healing-pdgf-signaling.bngl create mode 100644 Contributed/BNGPlayground_Examples/compartments/compartmentendocytosis/README.md create mode 100644 Contributed/BNGPlayground_Examples/compartments/compartmentendocytosis/compartment_endocytosis.bngl create mode 100644 Contributed/BNGPlayground_Examples/compartments/compartmentendocytosis/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/compartments/compartmentmembranebound/README.md create mode 100644 Contributed/BNGPlayground_Examples/compartments/compartmentmembranebound/compartment_membrane_bound.bngl create mode 100644 Contributed/BNGPlayground_Examples/compartments/compartmentmembranebound/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/compartments/compartmentnestedtransport/README.md create mode 100644 Contributed/BNGPlayground_Examples/compartments/compartmentnestedtransport/compartment_nested_transport.bngl create mode 100644 Contributed/BNGPlayground_Examples/compartments/compartmentnestedtransport/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/compartments/compartmentnucleartransport/README.md create mode 100644 Contributed/BNGPlayground_Examples/compartments/compartmentnucleartransport/compartment_nuclear_transport.bngl create mode 100644 Contributed/BNGPlayground_Examples/compartments/compartmentnucleartransport/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/compartments/compartmentorganelleexchange/README.md create mode 100644 Contributed/BNGPlayground_Examples/compartments/compartmentorganelleexchange/compartment_organelle_exchange.bngl create mode 100644 Contributed/BNGPlayground_Examples/compartments/compartmentorganelleexchange/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/cs/csdiffiehellman/README.md create mode 100644 Contributed/BNGPlayground_Examples/cs/csdiffiehellman/cs_diffie_hellman.bngl create mode 100644 Contributed/BNGPlayground_Examples/cs/csdiffiehellman/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/cs/cshashfunction/README.md create mode 100644 Contributed/BNGPlayground_Examples/cs/cshashfunction/cs_hash_function.bngl create mode 100644 Contributed/BNGPlayground_Examples/cs/cshashfunction/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/cs/cshuffman/README.md create mode 100644 Contributed/BNGPlayground_Examples/cs/cshuffman/cs_huffman.bngl create mode 100644 Contributed/BNGPlayground_Examples/cs/cshuffman/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/cs/csmontecarlopi/README.md create mode 100644 Contributed/BNGPlayground_Examples/cs/csmontecarlopi/cs_monte_carlo_pi.bngl create mode 100644 Contributed/BNGPlayground_Examples/cs/csmontecarlopi/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/cs/cspagerank/README.md create mode 100644 Contributed/BNGPlayground_Examples/cs/cspagerank/cs_pagerank.bngl create mode 100644 Contributed/BNGPlayground_Examples/cs/cspagerank/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/cs/cspidcontroller/README.md create mode 100644 Contributed/BNGPlayground_Examples/cs/cspidcontroller/cs_pid_controller.bngl create mode 100644 Contributed/BNGPlayground_Examples/cs/cspidcontroller/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/cs/csregexnfa/README.md create mode 100644 Contributed/BNGPlayground_Examples/cs/csregexnfa/cs_regex_nfa.bngl create mode 100644 Contributed/BNGPlayground_Examples/cs/csregexnfa/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/ecology/ecocoevolutionhostparasite/README.md create mode 100644 Contributed/BNGPlayground_Examples/ecology/ecocoevolutionhostparasite/eco_coevolution_host_parasite.bngl create mode 100644 Contributed/BNGPlayground_Examples/ecology/ecocoevolutionhostparasite/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/ecology/ecofoodwebchaos3sp/README.md create mode 100644 Contributed/BNGPlayground_Examples/ecology/ecofoodwebchaos3sp/eco_food_web_chaos_3sp.bngl create mode 100644 Contributed/BNGPlayground_Examples/ecology/ecofoodwebchaos3sp/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/ecology/ecolotkavolterragrid/README.md create mode 100644 Contributed/BNGPlayground_Examples/ecology/ecolotkavolterragrid/eco_lotka_volterra_grid.bngl create mode 100644 Contributed/BNGPlayground_Examples/ecology/ecolotkavolterragrid/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/ecology/ecomutualismobligate/README.md create mode 100644 Contributed/BNGPlayground_Examples/ecology/ecomutualismobligate/eco_mutualism_obligate.bngl create mode 100644 Contributed/BNGPlayground_Examples/ecology/ecomutualismobligate/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/ecology/ecorockpaperscissorsspatial/README.md create mode 100644 Contributed/BNGPlayground_Examples/ecology/ecorockpaperscissorsspatial/eco_rock_paper_scissors_spatial.bngl create mode 100644 Contributed/BNGPlayground_Examples/ecology/ecorockpaperscissorsspatial/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/energy/energyallosterymwc/README.md create mode 100644 Contributed/BNGPlayground_Examples/energy/energyallosterymwc/energy_allostery_mwc.bngl create mode 100644 Contributed/BNGPlayground_Examples/energy/energyallosterymwc/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/energy/energycatalysismm/README.md create mode 100644 Contributed/BNGPlayground_Examples/energy/energycatalysismm/energy_catalysis_mm.bngl create mode 100644 Contributed/BNGPlayground_Examples/energy/energycatalysismm/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/energy/energycooperativityadh/README.md create mode 100644 Contributed/BNGPlayground_Examples/energy/energycooperativityadh/energy_cooperativity_adh.bngl create mode 100644 Contributed/BNGPlayground_Examples/energy/energycooperativityadh/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/energy/energylinearchain/README.md create mode 100644 Contributed/BNGPlayground_Examples/energy/energylinearchain/energy_linear_chain.bngl create mode 100644 Contributed/BNGPlayground_Examples/energy/energylinearchain/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/energy/energytransportpump/README.md create mode 100644 Contributed/BNGPlayground_Examples/energy/energytransportpump/energy_transport_pump.bngl create mode 100644 Contributed/BNGPlayground_Examples/energy/energytransportpump/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/feature-demos/featurefunctionalratesvolume/README.md create mode 100644 Contributed/BNGPlayground_Examples/feature-demos/featurefunctionalratesvolume/feature_functional_rates_volume.bngl create mode 100644 Contributed/BNGPlayground_Examples/feature-demos/featurefunctionalratesvolume/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/feature-demos/featureglobalfunctionsscan/README.md create mode 100644 Contributed/BNGPlayground_Examples/feature-demos/featureglobalfunctionsscan/feature_global_functions_scan.bngl create mode 100644 Contributed/BNGPlayground_Examples/feature-demos/featureglobalfunctionsscan/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/feature-demos/featurelocalfunctionsexplicit/README.md create mode 100644 Contributed/BNGPlayground_Examples/feature-demos/featurelocalfunctionsexplicit/feature_local_functions_explicit.bngl create mode 100644 Contributed/BNGPlayground_Examples/feature-demos/featurelocalfunctionsexplicit/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/feature-demos/featuresymmetryfactorscyclic/README.md create mode 100644 Contributed/BNGPlayground_Examples/feature-demos/featuresymmetryfactorscyclic/feature_symmetry_factors_cyclic.bngl create mode 100644 Contributed/BNGPlayground_Examples/feature-demos/featuresymmetryfactorscyclic/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/feature-demos/featuresynthesisdegradationss/README.md create mode 100644 Contributed/BNGPlayground_Examples/feature-demos/featuresynthesisdegradationss/feature_synthesis_degradation_ss.bngl create mode 100644 Contributed/BNGPlayground_Examples/feature-demos/featuresynthesisdegradationss/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/generative/gmgameoflife/README.md create mode 100644 Contributed/BNGPlayground_Examples/generative/gmgameoflife/gm_game_of_life.bngl create mode 100644 Contributed/BNGPlayground_Examples/generative/gmgameoflife/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/generative/gmraymarcher/README.md create mode 100644 Contributed/BNGPlayground_Examples/generative/gmraymarcher/gm_ray_marcher.bngl create mode 100644 Contributed/BNGPlayground_Examples/generative/gmraymarcher/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/genetics/geneticbistabilityenergy/README.md create mode 100644 Contributed/BNGPlayground_Examples/genetics/geneticbistabilityenergy/genetic_bistability_energy.bngl create mode 100644 Contributed/BNGPlayground_Examples/genetics/geneticbistabilityenergy/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/genetics/geneticdnareplicationstochastic/README.md create mode 100644 Contributed/BNGPlayground_Examples/genetics/geneticdnareplicationstochastic/genetic_dna_replication_stochastic.bngl create mode 100644 Contributed/BNGPlayground_Examples/genetics/geneticdnareplicationstochastic/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/genetics/geneticgoodwinoscillator/README.md create mode 100644 Contributed/BNGPlayground_Examples/genetics/geneticgoodwinoscillator/genetic_goodwin_oscillator.bngl create mode 100644 Contributed/BNGPlayground_Examples/genetics/geneticgoodwinoscillator/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/genetics/genetictranslationkinetics/README.md create mode 100644 Contributed/BNGPlayground_Examples/genetics/genetictranslationkinetics/genetic_translation_kinetics.bngl create mode 100644 Contributed/BNGPlayground_Examples/genetics/genetictranslationkinetics/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/genetics/geneticturingpattern1d/README.md create mode 100644 Contributed/BNGPlayground_Examples/genetics/geneticturingpattern1d/genetic_turing_pattern_1d.bngl create mode 100644 Contributed/BNGPlayground_Examples/genetics/geneticturingpattern1d/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/meta/metaformalgametheory/README.md create mode 100644 Contributed/BNGPlayground_Examples/meta/metaformalgametheory/meta_formal_game_theory.bngl create mode 100644 Contributed/BNGPlayground_Examples/meta/metaformalgametheory/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/meta/metaformalmolecularclock/README.md create mode 100644 Contributed/BNGPlayground_Examples/meta/metaformalmolecularclock/meta_formal_molecular_clock.bngl create mode 100644 Contributed/BNGPlayground_Examples/meta/metaformalmolecularclock/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/meta/metaformalpetrinet/README.md create mode 100644 Contributed/BNGPlayground_Examples/meta/metaformalpetrinet/meta_formal_petri_net.bngl create mode 100644 Contributed/BNGPlayground_Examples/meta/metaformalpetrinet/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/meta/mtarithmeticcompiler/README.md create mode 100644 Contributed/BNGPlayground_Examples/meta/mtarithmeticcompiler/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/meta/mtarithmeticcompiler/mt_arithmetic_compiler.bngl create mode 100644 Contributed/BNGPlayground_Examples/meta/mtbnglinterpreter/README.md create mode 100644 Contributed/BNGPlayground_Examples/meta/mtbnglinterpreter/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/meta/mtbnglinterpreter/mt_bngl_interpreter.bngl create mode 100644 Contributed/BNGPlayground_Examples/meta/mtmusicsequencer/README.md create mode 100644 Contributed/BNGPlayground_Examples/meta/mtmusicsequencer/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/meta/mtmusicsequencer/mt_music_sequencer.bngl create mode 100644 Contributed/BNGPlayground_Examples/meta/mtpascaltriangle/README.md create mode 100644 Contributed/BNGPlayground_Examples/meta/mtpascaltriangle/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/meta/mtpascaltriangle/mt_pascal_triangle.bngl create mode 100644 Contributed/BNGPlayground_Examples/meta/mtquine/README.md create mode 100644 Contributed/BNGPlayground_Examples/meta/mtquine/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/meta/mtquine/mt_quine.bngl create mode 100644 Contributed/BNGPlayground_Examples/ml/mlgradientdescent/README.md create mode 100644 Contributed/BNGPlayground_Examples/ml/mlgradientdescent/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/ml/mlgradientdescent/ml_gradient_descent.bngl create mode 100644 Contributed/BNGPlayground_Examples/ml/mlhopfield/README.md create mode 100644 Contributed/BNGPlayground_Examples/ml/mlhopfield/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/ml/mlhopfield/ml_hopfield.bngl create mode 100644 Contributed/BNGPlayground_Examples/ml/mlkmeans/README.md create mode 100644 Contributed/BNGPlayground_Examples/ml/mlkmeans/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/ml/mlkmeans/ml_kmeans.bngl create mode 100644 Contributed/BNGPlayground_Examples/ml/mlqlearning/README.md create mode 100644 Contributed/BNGPlayground_Examples/ml/mlqlearning/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/ml/mlqlearning/ml_q_learning.bngl create mode 100644 Contributed/BNGPlayground_Examples/ml/mlsvm/README.md create mode 100644 Contributed/BNGPlayground_Examples/ml/mlsvm/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/ml/mlsvm/ml_svm.bngl create mode 100644 Contributed/BNGPlayground_Examples/ml/nnxor/README.md create mode 100644 Contributed/BNGPlayground_Examples/ml/nnxor/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/ml/nnxor/nn_xor.bngl create mode 100644 Contributed/BNGPlayground_Examples/nfsim/nfsimaggregationgelation/README.md create mode 100644 Contributed/BNGPlayground_Examples/nfsim/nfsimaggregationgelation/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/nfsim/nfsimaggregationgelation/nfsim_aggregation_gelation.bngl create mode 100644 Contributed/BNGPlayground_Examples/nfsim/nfsimcoarsegraining/README.md create mode 100644 Contributed/BNGPlayground_Examples/nfsim/nfsimcoarsegraining/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/nfsim/nfsimcoarsegraining/nfsim_coarse_graining.bngl create mode 100644 Contributed/BNGPlayground_Examples/nfsim/nfsimdynamiccompartments/README.md create mode 100644 Contributed/BNGPlayground_Examples/nfsim/nfsimdynamiccompartments/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/nfsim/nfsimdynamiccompartments/nfsim_dynamic_compartments.bngl create mode 100644 Contributed/BNGPlayground_Examples/nfsim/nfsimhybridparticlefield/README.md create mode 100644 Contributed/BNGPlayground_Examples/nfsim/nfsimhybridparticlefield/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/nfsim/nfsimhybridparticlefield/nfsim_hybrid_particle_field.bngl create mode 100644 Contributed/BNGPlayground_Examples/nfsim/nfsimringclosurepolymer/README.md create mode 100644 Contributed/BNGPlayground_Examples/nfsim/nfsimringclosurepolymer/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/nfsim/nfsimringclosurepolymer/nfsim_ring_closure_polymer.bngl create mode 100644 Contributed/BNGPlayground_Examples/physics/phlorenzattractor/README.md create mode 100644 Contributed/BNGPlayground_Examples/physics/phlorenzattractor/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/physics/phlorenzattractor/ph_lorenz_attractor.bngl create mode 100644 Contributed/BNGPlayground_Examples/physics/phnbodygravity/README.md create mode 100644 Contributed/BNGPlayground_Examples/physics/phnbodygravity/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/physics/phnbodygravity/ph_nbody_gravity.bngl create mode 100644 Contributed/BNGPlayground_Examples/physics/phschrodinger/README.md create mode 100644 Contributed/BNGPlayground_Examples/physics/phschrodinger/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/physics/phschrodinger/ph_schrodinger.bngl create mode 100644 Contributed/BNGPlayground_Examples/physics/phwaveequation/README.md create mode 100644 Contributed/BNGPlayground_Examples/physics/phwaveequation/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/physics/phwaveequation/ph_wave_equation.bngl create mode 100644 Contributed/BNGPlayground_Examples/processes/processactintreadmilling/README.md create mode 100644 Contributed/BNGPlayground_Examples/processes/processactintreadmilling/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/processes/processactintreadmilling/process_actin_treadmilling.bngl create mode 100644 Contributed/BNGPlayground_Examples/processes/processautophagyflux/README.md create mode 100644 Contributed/BNGPlayground_Examples/processes/processautophagyflux/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/processes/processautophagyflux/process_autophagy_flux.bngl create mode 100644 Contributed/BNGPlayground_Examples/processes/processcelladhesionstrength/README.md create mode 100644 Contributed/BNGPlayground_Examples/processes/processcelladhesionstrength/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/processes/processcelladhesionstrength/process_cell_adhesion_strength.bngl create mode 100644 Contributed/BNGPlayground_Examples/processes/processkineticproofreadingtcr/README.md create mode 100644 Contributed/BNGPlayground_Examples/processes/processkineticproofreadingtcr/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/processes/processkineticproofreadingtcr/process_kinetic_proofreading_tcr.bngl create mode 100644 Contributed/BNGPlayground_Examples/processes/processquorumsensingswitch/README.md create mode 100644 Contributed/BNGPlayground_Examples/processes/processquorumsensingswitch/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/processes/processquorumsensingswitch/process_quorum_sensing_switch.bngl create mode 100644 Contributed/BNGPlayground_Examples/signal-processing/spfouriersynthesizer/README.md create mode 100644 Contributed/BNGPlayground_Examples/signal-processing/spfouriersynthesizer/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/signal-processing/spfouriersynthesizer/sp_fourier_synthesizer.bngl create mode 100644 Contributed/BNGPlayground_Examples/signal-processing/spimageconvolution/README.md create mode 100644 Contributed/BNGPlayground_Examples/signal-processing/spimageconvolution/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/signal-processing/spimageconvolution/sp_image_convolution.bngl create mode 100644 Contributed/BNGPlayground_Examples/signal-processing/spkalmanfilter/README.md create mode 100644 Contributed/BNGPlayground_Examples/signal-processing/spkalmanfilter/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/signal-processing/spkalmanfilter/sp_kalman_filter.bngl create mode 100644 Contributed/BNGPlayground_Examples/synbio/synbiobandpassfilter/README.md create mode 100644 Contributed/BNGPlayground_Examples/synbio/synbiobandpassfilter/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/synbio/synbiobandpassfilter/synbio_band_pass_filter.bngl create mode 100644 Contributed/BNGPlayground_Examples/synbio/synbiocountermolecular/README.md create mode 100644 Contributed/BNGPlayground_Examples/synbio/synbiocountermolecular/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/synbio/synbiocountermolecular/synbio_counter_molecular.bngl create mode 100644 Contributed/BNGPlayground_Examples/synbio/synbioedgedetector/README.md create mode 100644 Contributed/BNGPlayground_Examples/synbio/synbioedgedetector/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/synbio/synbioedgedetector/synbio_edge_detector.bngl create mode 100644 Contributed/BNGPlayground_Examples/synbio/synbiologicgatesenzymatic/README.md create mode 100644 Contributed/BNGPlayground_Examples/synbio/synbiologicgatesenzymatic/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/synbio/synbiologicgatesenzymatic/synbio_logic_gates_enzymatic.bngl create mode 100644 Contributed/BNGPlayground_Examples/synbio/synbiooscillatorsynchronization/README.md create mode 100644 Contributed/BNGPlayground_Examples/synbio/synbiooscillatorsynchronization/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/synbio/synbiooscillatorsynchronization/synbio_oscillator_synchronization.bngl create mode 100644 Contributed/BNGPlayground_Examples/wacky/wackyalchemystone/README.md create mode 100644 Contributed/BNGPlayground_Examples/wacky/wackyalchemystone/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/wacky/wackyalchemystone/wacky_alchemy_stone.bngl create mode 100644 Contributed/BNGPlayground_Examples/wacky/wackyblackhole/README.md create mode 100644 Contributed/BNGPlayground_Examples/wacky/wackyblackhole/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/wacky/wackyblackhole/wacky_black_hole.bngl create mode 100644 Contributed/BNGPlayground_Examples/wacky/wackybouncingball/README.md create mode 100644 Contributed/BNGPlayground_Examples/wacky/wackybouncingball/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/wacky/wackybouncingball/wacky_bouncing_ball.bngl create mode 100644 Contributed/BNGPlayground_Examples/wacky/wackytrafficjamasep/README.md create mode 100644 Contributed/BNGPlayground_Examples/wacky/wackytrafficjamasep/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/wacky/wackytrafficjamasep/wacky_traffic_jam_asep.bngl create mode 100644 Contributed/BNGPlayground_Examples/wacky/wackyzombieinfection/README.md create mode 100644 Contributed/BNGPlayground_Examples/wacky/wackyzombieinfection/metadata.yaml create mode 100644 Contributed/BNGPlayground_Examples/wacky/wackyzombieinfection/wacky_zombie_infection.bngl create mode 100644 Contributed/BNGPlayground_PublicRuntime/MyrtleBeachConwayNorthMyrtleBeachSCNC/Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC.bngl create mode 100644 Contributed/BNGPlayground_PublicRuntime/MyrtleBeachConwayNorthMyrtleBeachSCNC/README.md create mode 100644 Contributed/BNGPlayground_PublicRuntime/MyrtleBeachConwayNorthMyrtleBeachSCNC/metadata.yaml create mode 100644 Contributed/BNGPlayground_PublicRuntime/polymerfixed/README.md create mode 100644 Contributed/BNGPlayground_PublicRuntime/polymerfixed/metadata.yaml create mode 100644 Contributed/BNGPlayground_PublicRuntime/polymerfixed/polymer_fixed.bngl create mode 100644 Contributed/BNGPlayground_PublicRuntime/simplenfsimtest/README.md create mode 100644 Contributed/BNGPlayground_PublicRuntime/simplenfsimtest/metadata.yaml create mode 100644 Contributed/BNGPlayground_PublicRuntime/simplenfsimtest/simple_nfsim_test.bngl create mode 100644 Contributed/BNGPlayground_Validation/CaOscillateFunc/CaOscillate_Func.bngl create mode 100644 Contributed/BNGPlayground_Validation/CaOscillateFunc/README.md create mode 100644 Contributed/BNGPlayground_Validation/CaOscillateFunc/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/CaOscillateSat/CaOscillate_Sat.bngl create mode 100644 Contributed/BNGPlayground_Validation/CaOscillateSat/README.md create mode 100644 Contributed/BNGPlayground_Validation/CaOscillateSat/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/Haugh2b/Haugh2b.bngl create mode 100644 Contributed/BNGPlayground_Validation/Haugh2b/README.md create mode 100644 Contributed/BNGPlayground_Validation/Haugh2b/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/Kiefhaberemodel/Kiefhaber_emodel.bngl create mode 100644 Contributed/BNGPlayground_Validation/Kiefhaberemodel/README.md create mode 100644 Contributed/BNGPlayground_Validation/Kiefhaberemodel/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/Korwek2023/Korwek_2023.bngl create mode 100644 Contributed/BNGPlayground_Validation/Korwek2023/README.md create mode 100644 Contributed/BNGPlayground_Validation/Korwek2023/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/Motivatingexample/Motivating_example.bngl create mode 100644 Contributed/BNGPlayground_Validation/Motivatingexample/README.md create mode 100644 Contributed/BNGPlayground_Validation/Motivatingexample/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/MotivatingexamplecBNGL/Motivating_example_cBNGL.bngl create mode 100644 Contributed/BNGPlayground_Validation/MotivatingexamplecBNGL/README.md create mode 100644 Contributed/BNGPlayground_Validation/MotivatingexamplecBNGL/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/SHP2basemodel/README.md create mode 100644 Contributed/BNGPlayground_Validation/SHP2basemodel/SHP2_base_model.bngl create mode 100644 Contributed/BNGPlayground_Validation/SHP2basemodel/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/catalysis/README.md create mode 100644 Contributed/BNGPlayground_Validation/catalysis/catalysis.bngl create mode 100644 Contributed/BNGPlayground_Validation/catalysis/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/continue/README.md create mode 100644 Contributed/BNGPlayground_Validation/continue/continue.bngl create mode 100644 Contributed/BNGPlayground_Validation/continue/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/egfrnet/README.md create mode 100644 Contributed/BNGPlayground_Validation/egfrnet/egfr_net.bngl create mode 100644 Contributed/BNGPlayground_Validation/egfrnet/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/egfrnetred/README.md create mode 100644 Contributed/BNGPlayground_Validation/egfrnetred/egfr_net_red.bngl create mode 100644 Contributed/BNGPlayground_Validation/egfrnetred/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/egfrpath/README.md create mode 100644 Contributed/BNGPlayground_Validation/egfrpath/egfr_path.bngl create mode 100644 Contributed/BNGPlayground_Validation/egfrpath/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/energyexample1/README.md create mode 100644 Contributed/BNGPlayground_Validation/energyexample1/energy_example1.bngl create mode 100644 Contributed/BNGPlayground_Validation/energyexample1/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/example1/README.md create mode 100644 Contributed/BNGPlayground_Validation/example1/example1.bngl create mode 100644 Contributed/BNGPlayground_Validation/example1/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/fcerijicomp/README.md create mode 100644 Contributed/BNGPlayground_Validation/fcerijicomp/fceri_ji_comp.bngl create mode 100644 Contributed/BNGPlayground_Validation/fcerijicomp/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/heise/README.md create mode 100644 Contributed/BNGPlayground_Validation/heise/heise.bngl create mode 100644 Contributed/BNGPlayground_Validation/heise/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/issue198short/README.md create mode 100644 Contributed/BNGPlayground_Validation/issue198short/issue_198_short.bngl create mode 100644 Contributed/BNGPlayground_Validation/issue198short/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/localfunc/README.md create mode 100644 Contributed/BNGPlayground_Validation/localfunc/localfunc.bngl create mode 100644 Contributed/BNGPlayground_Validation/localfunc/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/michment/README.md create mode 100644 Contributed/BNGPlayground_Validation/michment/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/michment/michment.bngl create mode 100644 Contributed/BNGPlayground_Validation/michmentcont/README.md create mode 100644 Contributed/BNGPlayground_Validation/michmentcont/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/michmentcont/michment_cont.bngl create mode 100644 Contributed/BNGPlayground_Validation/motor/README.md create mode 100644 Contributed/BNGPlayground_Validation/motor/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/motor/motor.bngl create mode 100644 Contributed/BNGPlayground_Validation/mwc/README.md create mode 100644 Contributed/BNGPlayground_Validation/mwc/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/mwc/mwc.bngl create mode 100644 Contributed/BNGPlayground_Validation/nfkb/README.md create mode 100644 Contributed/BNGPlayground_Validation/nfkb/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/nfkb/nfkb.bngl create mode 100644 Contributed/BNGPlayground_Validation/nfkbillustratingprotocols/README.md create mode 100644 Contributed/BNGPlayground_Validation/nfkbillustratingprotocols/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/nfkbillustratingprotocols/nfkb_illustrating_protocols.bngl create mode 100644 Contributed/BNGPlayground_Validation/recdim/README.md create mode 100644 Contributed/BNGPlayground_Validation/recdim/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/recdim/rec_dim.bngl create mode 100644 Contributed/BNGPlayground_Validation/recdimcomp/README.md create mode 100644 Contributed/BNGPlayground_Validation/recdimcomp/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/recdimcomp/rec_dim_comp.bngl create mode 100644 Contributed/BNGPlayground_Validation/simplesbmlimport/README.md create mode 100644 Contributed/BNGPlayground_Validation/simplesbmlimport/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/simplesbmlimport/simple_sbml_import.bngl create mode 100644 Contributed/BNGPlayground_Validation/simplesystem/README.md create mode 100644 Contributed/BNGPlayground_Validation/simplesystem/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/simplesystem/simple_system.bngl create mode 100644 Contributed/BNGPlayground_Validation/testANGsynthesissimple/README.md create mode 100644 Contributed/BNGPlayground_Validation/testANGsynthesissimple/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/testANGsynthesissimple/test_ANG_synthesis_simple.bngl create mode 100644 Contributed/BNGPlayground_Validation/testMM/README.md create mode 100644 Contributed/BNGPlayground_Validation/testMM/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/testMM/test_MM.bngl create mode 100644 Contributed/BNGPlayground_Validation/testfixed/README.md create mode 100644 Contributed/BNGPlayground_Validation/testfixed/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/testfixed/test_fixed.bngl create mode 100644 Contributed/BNGPlayground_Validation/testmratio/README.md create mode 100644 Contributed/BNGPlayground_Validation/testmratio/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/testmratio/test_mratio.bngl create mode 100644 Contributed/BNGPlayground_Validation/testnetworkgen/README.md create mode 100644 Contributed/BNGPlayground_Validation/testnetworkgen/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/testnetworkgen/test_network_gen.bngl create mode 100644 Contributed/BNGPlayground_Validation/testsat/README.md create mode 100644 Contributed/BNGPlayground_Validation/testsat/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/testsat/test_sat.bngl create mode 100644 Contributed/BNGPlayground_Validation/testsynthesiscBNGLsimple/README.md create mode 100644 Contributed/BNGPlayground_Validation/testsynthesiscBNGLsimple/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/testsynthesiscBNGLsimple/test_synthesis_cBNGL_simple.bngl create mode 100644 Contributed/BNGPlayground_Validation/testsynthesiscomplex/README.md create mode 100644 Contributed/BNGPlayground_Validation/testsynthesiscomplex/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/testsynthesiscomplex/test_synthesis_complex.bngl create mode 100644 Contributed/BNGPlayground_Validation/testsynthesiscomplex0cBNGL/README.md create mode 100644 Contributed/BNGPlayground_Validation/testsynthesiscomplex0cBNGL/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/testsynthesiscomplex0cBNGL/test_synthesis_complex_0_cBNGL.bngl create mode 100644 Contributed/BNGPlayground_Validation/testsynthesiscomplexsourcecBNGL/README.md create mode 100644 Contributed/BNGPlayground_Validation/testsynthesiscomplexsourcecBNGL/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/testsynthesiscomplexsourcecBNGL/test_synthesis_complex_source_cBNGL.bngl create mode 100644 Contributed/BNGPlayground_Validation/testsynthesissimple/README.md create mode 100644 Contributed/BNGPlayground_Validation/testsynthesissimple/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/testsynthesissimple/test_synthesis_simple.bngl create mode 100644 Contributed/BNGPlayground_Validation/tlmr/README.md create mode 100644 Contributed/BNGPlayground_Validation/tlmr/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/tlmr/tlmr.bngl create mode 100644 Contributed/BNGPlayground_Validation/toyjim/README.md create mode 100644 Contributed/BNGPlayground_Validation/toyjim/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/toyjim/toy-jim.bngl create mode 100644 Contributed/BNGPlayground_Validation/univsynth/README.md create mode 100644 Contributed/BNGPlayground_Validation/univsynth/metadata.yaml create mode 100644 Contributed/BNGPlayground_Validation/univsynth/univ_synth.bngl create mode 100644 Published/An2009/An_2009.bngl create mode 100644 Published/An2009/README.md create mode 100644 Published/An2009/metadata.yaml create mode 100644 Published/Barua2007/Barua_2007.bngl create mode 100644 Published/Barua2007/README.md create mode 100644 Published/Barua2007/metadata.yaml create mode 100644 Published/Barua2009/Barua_2009.bngl create mode 100644 Published/Barua2009/README.md create mode 100644 Published/Barua2009/metadata.yaml create mode 100644 Published/Barua2013/Barua_2013.bngl create mode 100644 Published/Barua2013/README.md create mode 100644 Published/Barua2013/metadata.yaml create mode 100644 Published/BaruaBCR2012/BaruaBCR_2012.bngl create mode 100644 Published/BaruaBCR2012/README.md create mode 100644 Published/BaruaBCR2012/metadata.yaml create mode 100644 Published/BaruaFceRI2012/BaruaFceRI_2012.bngl create mode 100644 Published/BaruaFceRI2012/README.md create mode 100644 Published/BaruaFceRI2012/metadata.yaml create mode 100644 Published/Blinov2006/Blinov_2006.bngl create mode 100644 Published/Blinov2006/README.md create mode 100644 Published/Blinov2006/metadata.yaml create mode 100644 Published/Blinovegfr/Blinov_egfr.bngl create mode 100644 Published/Blinovegfr/README.md create mode 100644 Published/Blinovegfr/metadata.yaml create mode 100644 Published/Blinovran/Blinov_ran.bngl create mode 100644 Published/Blinovran/README.md create mode 100644 Published/Blinovran/metadata.yaml create mode 100644 Published/Chattaraj2021/Chattaraj_2021.bngl create mode 100644 Published/Chattaraj2021/README.md create mode 100644 Published/Chattaraj2021/metadata.yaml create mode 100644 Published/CheemalavaguJAKSTAT/Cheemalavagu_JAK_STAT.bngl create mode 100644 Published/CheemalavaguJAKSTAT/README.md create mode 100644 Published/CheemalavaguJAKSTAT/metadata.yaml create mode 100644 Published/ChylekFceRI2014/ChylekFceRI_2014.bngl create mode 100644 Published/ChylekFceRI2014/README.md create mode 100644 Published/ChylekFceRI2014/metadata.yaml create mode 100644 Published/ChylekTCR2014/ChylekTCR_2014.bngl create mode 100644 Published/ChylekTCR2014/README.md create mode 100644 Published/ChylekTCR2014/metadata.yaml create mode 100644 Published/Dolan2015/Dolan_2015.bngl create mode 100644 Published/Dolan2015/metadata.yaml create mode 100644 Published/Dushek2011/Dushek_2011.bngl create mode 100644 Published/Dushek2011/README.md create mode 100644 Published/Dushek2011/metadata.yaml create mode 100644 Published/Dushek2014/Dushek_2014.bngl create mode 100644 Published/Dushek2014/README.md create mode 100644 Published/Dushek2014/metadata.yaml create mode 100644 Published/Erdem2021/Erdem_2021.bngl create mode 100644 Published/Erdem2021/README.md create mode 100644 Published/Erdem2021/metadata.yaml create mode 100644 Published/Faeder2003/Faeder_2003.bngl create mode 100644 Published/Faeder2003/metadata.yaml create mode 100644 Published/Hat2016/Hat_2016.bngl create mode 100644 Published/Hat2016/README.md create mode 100644 Published/Hat2016/metadata.yaml create mode 100644 Published/JaruszewiczBlonska2023/Jaruszewicz-Blonska_2023.bngl create mode 100644 Published/JaruszewiczBlonska2023/README.md create mode 100644 Published/JaruszewiczBlonska2023/metadata.yaml create mode 100644 Published/Jung2017/Jung_2017.bngl create mode 100644 Published/Jung2017/README.md create mode 100644 Published/Jung2017/metadata.yaml create mode 100644 Published/Kesseler2013/Kesseler_2013.bngl create mode 100644 Published/Kesseler2013/README.md create mode 100644 Published/Kesseler2013/metadata.yaml create mode 100644 Published/Kocieniewski2012/Kocieniewski_2012.bngl create mode 100644 Published/Kocieniewski2012/README.md create mode 100644 Published/Kocieniewski2012/metadata.yaml create mode 100644 Published/Kozer2013/Kozer_2013.bngl create mode 100644 Published/Kozer2013/README.md create mode 100644 Published/Kozer2013/metadata.yaml create mode 100644 Published/Kozer2014/Kozer_2014.bngl create mode 100644 Published/Kozer2014/README.md create mode 100644 Published/Kozer2014/metadata.yaml create mode 100644 Published/Lang2024/Lang_2024.bngl create mode 100644 Published/Lang2024/README.md create mode 100644 Published/Lang2024/metadata.yaml create mode 100644 Published/Ligon2014/Ligon_2014.bngl create mode 100644 Published/Ligon2014/README.md create mode 100644 Published/Ligon2014/metadata.yaml create mode 100644 Published/LinERK2019/Lin_ERK_2019.bngl create mode 100644 Published/LinERK2019/README.md create mode 100644 Published/LinERK2019/metadata.yaml create mode 100644 Published/LinPrion2019/Lin_Prion_2019.bngl create mode 100644 Published/LinPrion2019/README.md create mode 100644 Published/LinPrion2019/metadata.yaml create mode 100644 Published/LinTCR2019/Lin_TCR_2019.bngl create mode 100644 Published/LinTCR2019/README.md create mode 100644 Published/LinTCR2019/metadata.yaml create mode 100644 Published/Mallela2021/README.md create mode 100644 Published/Mallela2021/SI_files_Alabama_Alabama.bngl create mode 100644 Published/Mallela2021/SI_files_Alaska_Alaska.bngl create mode 100644 Published/Mallela2021/SI_files_Arizona_Arizona.bngl create mode 100644 Published/Mallela2021/SI_files_Arkansas_Arkansas.bngl create mode 100644 Published/Mallela2021/SI_files_California_California.bngl create mode 100644 Published/Mallela2021/SI_files_Colorado_Colorado.bngl create mode 100644 Published/Mallela2021/SI_files_Connecticut_Connecticut.bngl create mode 100644 Published/Mallela2021/SI_files_Delaware_Delaware.bngl create mode 100644 Published/Mallela2021/SI_files_Florida_Florida.bngl create mode 100644 Published/Mallela2021/SI_files_Georgia_Georgia.bngl create mode 100644 Published/Mallela2021/SI_files_Hawaii_Hawaii.bngl create mode 100644 Published/Mallela2021/SI_files_Idaho_Idaho.bngl create mode 100644 Published/Mallela2021/SI_files_Illinois_Illinois.bngl create mode 100644 Published/Mallela2021/SI_files_Indiana_Indiana.bngl create mode 100644 Published/Mallela2021/SI_files_Iowa_Iowa.bngl create mode 100644 Published/Mallela2021/SI_files_Kansas_Kansas.bngl create mode 100644 Published/Mallela2021/SI_files_Kentucky_Kentucky.bngl create mode 100644 Published/Mallela2021/SI_files_Louisiana_Louisiana.bngl create mode 100644 Published/Mallela2021/SI_files_Maine_Maine.bngl create mode 100644 Published/Mallela2021/SI_files_Maryland_Maryland.bngl create mode 100644 Published/Mallela2021/SI_files_Massachusetts_Massachusetts.bngl create mode 100644 Published/Mallela2021/SI_files_Michigan_Michigan.bngl create mode 100644 Published/Mallela2021/SI_files_Minnesota_Minnesota.bngl create mode 100644 Published/Mallela2021/SI_files_Mississippi_Mississippi.bngl create mode 100644 Published/Mallela2021/SI_files_Missouri_Missouri.bngl create mode 100644 Published/Mallela2021/SI_files_Montana_Montana.bngl create mode 100644 Published/Mallela2021/SI_files_Nebraska_Nebraska.bngl create mode 100644 Published/Mallela2021/SI_files_Nevada_Nevada.bngl create mode 100644 Published/Mallela2021/SI_files_NewHampshire_NewHampshire.bngl create mode 100644 Published/Mallela2021/SI_files_NewJersey_NewJersey.bngl create mode 100644 Published/Mallela2021/SI_files_NewMexico_NewMexico.bngl create mode 100644 Published/Mallela2021/SI_files_NewYork_NewYork.bngl create mode 100644 Published/Mallela2021/SI_files_NorthCarolina_NorthCarolina.bngl create mode 100644 Published/Mallela2021/SI_files_NorthDakota_NorthDakota.bngl create mode 100644 Published/Mallela2021/SI_files_Ohio_Ohio.bngl create mode 100644 Published/Mallela2021/SI_files_Oklahoma_Oklahoma.bngl create mode 100644 Published/Mallela2021/SI_files_Oregon_Oregon.bngl create mode 100644 Published/Mallela2021/SI_files_Pennsylvania_Pennsylvania.bngl create mode 100644 Published/Mallela2021/SI_files_RhodeIsland_RhodeIsland.bngl create mode 100644 Published/Mallela2021/SI_files_SouthCarolina_SouthCarolina.bngl create mode 100644 Published/Mallela2021/SI_files_SouthDakota_SouthDakota.bngl create mode 100644 Published/Mallela2021/SI_files_Tennessee_Tennessee.bngl create mode 100644 Published/Mallela2021/SI_files_Texas_Texas.bngl create mode 100644 Published/Mallela2021/SI_files_Utah_Utah.bngl create mode 100644 Published/Mallela2021/SI_files_Vermont_Vermont.bngl create mode 100644 Published/Mallela2021/SI_files_Virginia_Virginia.bngl create mode 100644 Published/Mallela2021/SI_files_Washington_Washington.bngl create mode 100644 Published/Mallela2021/SI_files_WestVirginia_WestVirginia.bngl create mode 100644 Published/Mallela2021/SI_files_Wisconsin_Wisconsin.bngl create mode 100644 Published/Mallela2021/SI_files_Wyoming_Wyoming.bngl create mode 100644 Published/Mallela2021/metadata.yaml create mode 100644 Published/Mallela2021_Cities/Beantown_m11.bngl create mode 100644 Published/Mallela2021_Cities/BigApple_m1.bngl create mode 100644 Published/Mallela2021_Cities/BigD_m4.bngl create mode 100644 Published/Mallela2021_Cities/BrotherlyLove_m8.bngl create mode 100644 Published/Mallela2021_Cities/DC_m6.bngl create mode 100644 Published/Mallela2021_Cities/EmeraldCity_m15.bngl create mode 100644 Published/Mallela2021_Cities/Frisco_m12.bngl create mode 100644 Published/Mallela2021_Cities/HTown_m5.bngl create mode 100644 Published/Mallela2021_Cities/Hotlanta_m9.bngl create mode 100644 Published/Mallela2021_Cities/InlandEmpire_m13.bngl create mode 100644 Published/Mallela2021_Cities/LaLaLand_m2.bngl create mode 100644 Published/Mallela2021_Cities/MagicCity_m7.bngl create mode 100644 Published/Mallela2021_Cities/MotorCity_m14.bngl create mode 100644 Published/Mallela2021_Cities/README.md create mode 100644 Published/Mallela2021_Cities/Valley_of_the_Sun_m10.bngl create mode 100644 Published/Mallela2021_Cities/WindyCity_m3.bngl create mode 100644 Published/Mallela2021_Cities/metadata.yaml create mode 100644 Published/Mallela2022/Alabama/Alabama.bngl create mode 100644 Published/Mallela2022/Alabama/README.md create mode 100644 Published/Mallela2022/Alabama/metadata.yaml create mode 100644 Published/Mallela2022_MSAs/Abilene_TX_Abilene_TX.bngl create mode 100644 Published/Mallela2022_MSAs/Akron_OH_Akron_OH.bngl create mode 100644 Published/Mallela2022_MSAs/Albany-Schenectady-Troy_NY_Albany-Schenectady-Troy_NY.bngl create mode 100644 Published/Mallela2022_MSAs/Albany_GA_Albany_GA.bngl create mode 100644 Published/Mallela2022_MSAs/Albuquerque_NM_Albuquerque_NM.bngl create mode 100644 Published/Mallela2022_MSAs/Alexandria_LA_Alexandria_LA.bngl create mode 100644 Published/Mallela2022_MSAs/Allentown-Bethlehem-Easton_PA-NJ_Allentown-Bethlehem-Easton_PA-NJ.bngl create mode 100644 Published/Mallela2022_MSAs/Amarillo_TX_Amarillo_TX.bngl create mode 100644 Published/Mallela2022_MSAs/Anchorage_AK_Anchorage_AK.bngl create mode 100644 Published/Mallela2022_MSAs/Ann_Arbor_MI_Ann_Arbor_MI.bngl create mode 100644 Published/Mallela2022_MSAs/Appleton_WI_Appleton_WI.bngl create mode 100644 Published/Mallela2022_MSAs/Asheville_NC_Asheville_NC.bngl create mode 100644 Published/Mallela2022_MSAs/Athens-Clarke_County_GA_Athens-Clarke_County_GA.bngl create mode 100644 Published/Mallela2022_MSAs/Atlanta-Sandy_Springs-Alpharetta_GA_Atlanta-Sandy_Springs-Alpharetta_GA.bngl create mode 100644 Published/Mallela2022_MSAs/Atlantic_City-Hammonton_NJ_Atlantic_City-Hammonton_NJ.bngl create mode 100644 Published/Mallela2022_MSAs/Auburn-Opelika_AL_Auburn-Opelika_AL.bngl create mode 100644 Published/Mallela2022_MSAs/Augusta-Richmond_County_GA-SC_Augusta-Richmond_County_GA-SC.bngl create mode 100644 Published/Mallela2022_MSAs/Austin-Round_Rock_TX_Austin-Round_Rock_TX.bngl create mode 100644 Published/Mallela2022_MSAs/Bakersfield_CA_Bakersfield_CA.bngl create mode 100644 Published/Mallela2022_MSAs/Baltimore-Columbia-Towson_MD_Baltimore-Columbia-Towson_MD.bngl create mode 100644 Published/Mallela2022_MSAs/Barnstable_Town_MA_Barnstable_Town_MA.bngl create mode 100644 Published/Mallela2022_MSAs/Baton_Rouge_LA_Baton_Rouge_LA.bngl create mode 100644 Published/Mallela2022_MSAs/Battle_Creek_MI_Battle_Creek_MI.bngl create mode 100644 Published/Mallela2022_MSAs/Bay_City_MI_Bay_City_MI.bngl create mode 100644 Published/Mallela2022_MSAs/Beaumont-Port_Arthur_TX_Beaumont-Port_Arthur_TX.bngl create mode 100644 Published/Mallela2022_MSAs/Bellingham_WA_Bellingham_WA.bngl create mode 100644 Published/Mallela2022_MSAs/Binghamton_NY_Binghamton_NY.bngl create mode 100644 Published/Mallela2022_MSAs/Birmingham-Hoover_AL_Birmingham-Hoover_AL.bngl create mode 100644 Published/Mallela2022_MSAs/Bloomington_IN_Bloomington_IN.bngl create mode 100644 Published/Mallela2022_MSAs/Bloomsburg-Berwick_PA_Bloomsburg-Berwick_PA.bngl create mode 100644 Published/Mallela2022_MSAs/Boise_City_ID_Boise_City_ID.bngl create mode 100644 Published/Mallela2022_MSAs/Boston-Cambridge-Newton_MA-NH_Boston-Cambridge-Newton_MA-NH.bngl create mode 100644 Published/Mallela2022_MSAs/Boulder_CO_Boulder_CO.bngl create mode 100644 Published/Mallela2022_MSAs/Bowling_Green_KY_Bowling_Green_KY.bngl create mode 100644 Published/Mallela2022_MSAs/Bridgeport-Stamford-Norwalk_CT_Bridgeport-Stamford-Norwalk_CT.bngl create mode 100644 Published/Mallela2022_MSAs/Brownsville-Harlingen_TX_Brownsville-Harlingen_TX.bngl create mode 100644 Published/Mallela2022_MSAs/Buffalo-Niagara_Falls_NY_Buffalo-Niagara_Falls_NY.bngl create mode 100644 Published/Mallela2022_MSAs/Burlington-South_Burlington_VT_Burlington-South_Burlington_VT.bngl create mode 100644 Published/Mallela2022_MSAs/Burlington_NC_Burlington_NC.bngl create mode 100644 Published/Mallela2022_MSAs/California-Lexington_Park_MD_California-Lexington_Park_MD.bngl create mode 100644 Published/Mallela2022_MSAs/Canton-Massillon_OH_Canton-Massillon_OH.bngl create mode 100644 Published/Mallela2022_MSAs/Cape_Coral-Fort_Myers_FL_Cape_Coral-Fort_Myers_FL.bngl create mode 100644 Published/Mallela2022_MSAs/Carbondale-Marion_IL_Carbondale-Marion_IL.bngl create mode 100644 Published/Mallela2022_MSAs/Cedar_Rapids_IA_Cedar_Rapids_IA.bngl create mode 100644 Published/Mallela2022_MSAs/Chambersburg-Waynesboro_PA_Chambersburg-Waynesboro_PA.bngl create mode 100644 Published/Mallela2022_MSAs/Champaign-Urbana_IL_Champaign-Urbana_IL.bngl create mode 100644 Published/Mallela2022_MSAs/Charleston-North_Charleston_SC_Charleston-North_Charleston_SC.bngl create mode 100644 Published/Mallela2022_MSAs/Charleston_WV_Charleston_WV.bngl create mode 100644 Published/Mallela2022_MSAs/Charlotte-Concord-Gastonia_NC-SC_Charlotte-Concord-Gastonia_NC-SC.bngl create mode 100644 Published/Mallela2022_MSAs/Charlottesville_VA_Charlottesville_VA.bngl create mode 100644 Published/Mallela2022_MSAs/Chattanooga_TN-GA_Chattanooga_TN-GA.bngl create mode 100644 Published/Mallela2022_MSAs/Chicago-Naperville-Elgin_IL-IN-WI_Chicago-Naperville-Elgin_IL-IN-WI.bngl create mode 100644 Published/Mallela2022_MSAs/Cincinnati_OH-KY-IN_Cincinnati_OH-KY-IN.bngl create mode 100644 Published/Mallela2022_MSAs/Clarksville_TN-KY_Clarksville_TN-KY.bngl create mode 100644 Published/Mallela2022_MSAs/Cleveland-Elyria_OH_Cleveland-Elyria_OH.bngl create mode 100644 Published/Mallela2022_MSAs/College_Station-Bryan_TX_College_Station-Bryan_TX.bngl create mode 100644 Published/Mallela2022_MSAs/Colorado_Springs_CO_Colorado_Springs_CO.bngl create mode 100644 Published/Mallela2022_MSAs/Columbia_SC_Columbia_SC.bngl create mode 100644 Published/Mallela2022_MSAs/Columbus_GA-AL_Columbus_GA-AL.bngl create mode 100644 Published/Mallela2022_MSAs/Columbus_IN_Columbus_IN.bngl create mode 100644 Published/Mallela2022_MSAs/Columbus_OH_Columbus_OH.bngl create mode 100644 Published/Mallela2022_MSAs/Corpus_Christi_TX_Corpus_Christi_TX.bngl create mode 100644 Published/Mallela2022_MSAs/Crestview-Fort_Walton_Beach-Destin_FL_Crestview-Fort_Walton_Beach-Destin_FL.bngl create mode 100644 Published/Mallela2022_MSAs/Cumberland_MD-WV_Cumberland_MD-WV.bngl create mode 100644 Published/Mallela2022_MSAs/Dallas-Fort_Worth-Arlington_TX_Dallas-Fort_Worth-Arlington_TX.bngl create mode 100644 Published/Mallela2022_MSAs/Dalton_GA_Dalton_GA.bngl create mode 100644 Published/Mallela2022_MSAs/Daphne-Fairhope-Foley_AL_Daphne-Fairhope-Foley_AL.bngl create mode 100644 Published/Mallela2022_MSAs/Davenport-Moline-Rock_Island_IA-IL_Davenport-Moline-Rock_Island_IA-IL.bngl create mode 100644 Published/Mallela2022_MSAs/Dayton_OH_Dayton_OH.bngl create mode 100644 Published/Mallela2022_MSAs/Deltona-Daytona_Beach-Ormond_Beach_FL_Deltona-Daytona_Beach-Ormond_Beach_FL.bngl create mode 100644 Published/Mallela2022_MSAs/Denver-Aurora-Lakewood_CO_Denver-Aurora-Lakewood_CO.bngl create mode 100644 Published/Mallela2022_MSAs/Des_Moines-West_Des_Moines_IA_Des_Moines-West_Des_Moines_IA.bngl create mode 100644 Published/Mallela2022_MSAs/Detroit-Warren-Dearborn_MI_Detroit-Warren-Dearborn_MI.bngl create mode 100644 Published/Mallela2022_MSAs/Detroit_Warren_Dearborn_MI_Detroit_Warren_Dearborn_MI.bngl create mode 100644 Published/Mallela2022_MSAs/Dothan_AL_Dothan_AL.bngl create mode 100644 Published/Mallela2022_MSAs/Dover_DE_Dover_DE.bngl create mode 100644 Published/Mallela2022_MSAs/Dubuque_IA_Dubuque_IA.bngl create mode 100644 Published/Mallela2022_MSAs/Durham-Chapel_Hill_NC_Durham-Chapel_Hill_NC.bngl create mode 100644 Published/Mallela2022_MSAs/East_Stroudsburg_PA_East_Stroudsburg_PA.bngl create mode 100644 Published/Mallela2022_MSAs/El_Centro_CA_El_Centro_CA.bngl create mode 100644 Published/Mallela2022_MSAs/El_Paso_TX_El_Paso_TX.bngl create mode 100644 Published/Mallela2022_MSAs/Elkhart-Goshen_IN_Elkhart-Goshen_IN.bngl create mode 100644 Published/Mallela2022_MSAs/Evansville_IN-KY_Evansville_IN-KY.bngl create mode 100644 Published/Mallela2022_MSAs/Fargo_ND-MN_Fargo_ND-MN.bngl create mode 100644 Published/Mallela2022_MSAs/Farmington_NM_Farmington_NM.bngl create mode 100644 Published/Mallela2022_MSAs/Fayetteville-Springdale-Rogers_AR_Fayetteville-Springdale-Rogers_AR.bngl create mode 100644 Published/Mallela2022_MSAs/Fayetteville_NC_Fayetteville_NC.bngl create mode 100644 Published/Mallela2022_MSAs/Flagstaff_AZ_Flagstaff_AZ.bngl create mode 100644 Published/Mallela2022_MSAs/Flint_MI_Flint_MI.bngl create mode 100644 Published/Mallela2022_MSAs/Florence-Muscle_Shoals_AL_Florence-Muscle_Shoals_AL.bngl create mode 100644 Published/Mallela2022_MSAs/Florence_SC_Florence_SC.bngl create mode 100644 Published/Mallela2022_MSAs/Fort_Collins_CO_Fort_Collins_CO.bngl create mode 100644 Published/Mallela2022_MSAs/Fort_Wayne_IN_Fort_Wayne_IN.bngl create mode 100644 Published/Mallela2022_MSAs/Fresno_CA_Fresno_CA.bngl create mode 100644 Published/Mallela2022_MSAs/Gadsden_AL_Gadsden_AL.bngl create mode 100644 Published/Mallela2022_MSAs/Gainesville_FL_Gainesville_FL.bngl create mode 100644 Published/Mallela2022_MSAs/Gainesville_GA_Gainesville_GA.bngl create mode 100644 Published/Mallela2022_MSAs/Glens_Falls_NY_Glens_Falls_NY.bngl create mode 100644 Published/Mallela2022_MSAs/Goldsboro_NC_Goldsboro_NC.bngl create mode 100644 Published/Mallela2022_MSAs/Grand_Forks_ND-MN_Grand_Forks_ND-MN.bngl create mode 100644 Published/Mallela2022_MSAs/Grand_Island_NE_Grand_Island_NE.bngl create mode 100644 Published/Mallela2022_MSAs/Grand_Rapids-Kentwood_MI_Grand_Rapids-Kentwood_MI.bngl create mode 100644 Published/Mallela2022_MSAs/Greeley_CO_Greeley_CO.bngl create mode 100644 Published/Mallela2022_MSAs/Green_Bay_WI_Green_Bay_WI.bngl create mode 100644 Published/Mallela2022_MSAs/Greensboro-High_Point_NC_Greensboro-High_Point_NC.bngl create mode 100644 Published/Mallela2022_MSAs/Greenville-Anderson_SC_Greenville-Anderson_SC.bngl create mode 100644 Published/Mallela2022_MSAs/Greenville_NC_Greenville_NC.bngl create mode 100644 Published/Mallela2022_MSAs/Gulfport-Biloxi_MS_Gulfport-Biloxi_MS.bngl create mode 100644 Published/Mallela2022_MSAs/Hagerstown-Martinsburg_MD-WV_Hagerstown-Martinsburg_MD-WV.bngl create mode 100644 Published/Mallela2022_MSAs/Hammond_LA_Hammond_LA.bngl create mode 100644 Published/Mallela2022_MSAs/Hanford-Corcoran_CA_Hanford-Corcoran_CA.bngl create mode 100644 Published/Mallela2022_MSAs/Harrisburg-Carlisle_PA_Harrisburg-Carlisle_PA.bngl create mode 100644 Published/Mallela2022_MSAs/Harrisonburg_VA_Harrisonburg_VA.bngl create mode 100644 Published/Mallela2022_MSAs/Hartford-East_Hartford-Middletown_CT_Hartford-East_Hartford-Middletown_CT.bngl create mode 100644 Published/Mallela2022_MSAs/Hattiesburg_MS_Hattiesburg_MS.bngl create mode 100644 Published/Mallela2022_MSAs/Hickory-Lenoir-Morganton_NC_Hickory-Lenoir-Morganton_NC.bngl create mode 100644 Published/Mallela2022_MSAs/Hilton_Head_Island-Bluffton-Beaufort_SC_Hilton_Head_Island-Bluffton-Beaufort_SC.bngl create mode 100644 Published/Mallela2022_MSAs/Houma-Thibodaux_LA_Houma-Thibodaux_LA.bngl create mode 100644 Published/Mallela2022_MSAs/Houston-The_Woodlands-Sugar_Land_TX_Houston-The_Woodlands-Sugar_Land_TX.bngl create mode 100644 Published/Mallela2022_MSAs/Huntington-Ashland_WV-KY-OH_Huntington-Ashland_WV-KY-OH.bngl create mode 100644 Published/Mallela2022_MSAs/Huntsville_AL_Huntsville_AL.bngl create mode 100644 Published/Mallela2022_MSAs/Indianapolis-Carmel-Anderson_IN_Indianapolis-Carmel-Anderson_IN.bngl create mode 100644 Published/Mallela2022_MSAs/Iowa_City_IA_Iowa_City_IA.bngl create mode 100644 Published/Mallela2022_MSAs/Jackson_MI_Jackson_MI.bngl create mode 100644 Published/Mallela2022_MSAs/Jackson_MS_Jackson_MS.bngl create mode 100644 Published/Mallela2022_MSAs/Jacksonville_FL_Jacksonville_FL.bngl create mode 100644 Published/Mallela2022_MSAs/Janesville-Beloit_WI_Janesville-Beloit_WI.bngl create mode 100644 Published/Mallela2022_MSAs/Kalamazoo-Portage_MI_Kalamazoo-Portage_MI.bngl create mode 100644 Published/Mallela2022_MSAs/Kankakee_IL_Kankakee_IL.bngl create mode 100644 Published/Mallela2022_MSAs/Kansas_City_MO-KS_Kansas_City_MO-KS.bngl create mode 100644 Published/Mallela2022_MSAs/Kennewick-Richland_WA_Kennewick-Richland_WA.bngl create mode 100644 Published/Mallela2022_MSAs/Killeen-Temple_TX_Killeen-Temple_TX.bngl create mode 100644 Published/Mallela2022_MSAs/Kingston_NY_Kingston_NY.bngl create mode 100644 Published/Mallela2022_MSAs/Knoxville_TN_Knoxville_TN.bngl create mode 100644 Published/Mallela2022_MSAs/Kokomo_IN_Kokomo_IN.bngl create mode 100644 Published/Mallela2022_MSAs/Lafayette-West_Lafayette_IN_Lafayette-West_Lafayette_IN.bngl create mode 100644 Published/Mallela2022_MSAs/Lafayette_LA_Lafayette_LA.bngl create mode 100644 Published/Mallela2022_MSAs/Lake_Charles_LA_Lake_Charles_LA.bngl create mode 100644 Published/Mallela2022_MSAs/Lake_Havasu_City-Kingman_AZ_Lake_Havasu_City-Kingman_AZ.bngl create mode 100644 Published/Mallela2022_MSAs/Lakeland-Winter_Haven_FL_Lakeland-Winter_Haven_FL.bngl create mode 100644 Published/Mallela2022_MSAs/Lancaster_PA_Lancaster_PA.bngl create mode 100644 Published/Mallela2022_MSAs/Lansing-East_Lansing_MI_Lansing-East_Lansing_MI.bngl create mode 100644 Published/Mallela2022_MSAs/Laredo_TX_Laredo_TX.bngl create mode 100644 Published/Mallela2022_MSAs/Las_Cruces_NM_Las_Cruces_NM.bngl create mode 100644 Published/Mallela2022_MSAs/Las_Vegas-Henderson-Paradise_NV_Las_Vegas-Henderson-Paradise_NV.bngl create mode 100644 Published/Mallela2022_MSAs/Lawton_OK_Lawton_OK.bngl create mode 100644 Published/Mallela2022_MSAs/Lebanon_PA_Lebanon_PA.bngl create mode 100644 Published/Mallela2022_MSAs/Lexington-Fayette_KY_Lexington-Fayette_KY.bngl create mode 100644 Published/Mallela2022_MSAs/Lincoln_NE_Lincoln_NE.bngl create mode 100644 Published/Mallela2022_MSAs/Little_Rock-North_Little_Rock-Conway_AR_Little_Rock-North_Little_Rock-Conway_AR.bngl create mode 100644 Published/Mallela2022_MSAs/Longview_TX_Longview_TX.bngl create mode 100644 Published/Mallela2022_MSAs/Los_Angeles-Long_Beach-Anaheim_CA_Los_Angeles-Long_Beach-Anaheim_CA.bngl create mode 100644 Published/Mallela2022_MSAs/Louisville_Jefferson_County_KY-IN_Louisville_Jefferson_County_KY-IN.bngl create mode 100644 Published/Mallela2022_MSAs/Lubbock_TX_Lubbock_TX.bngl create mode 100644 Published/Mallela2022_MSAs/Macon-Bibb_County_GA_Macon-Bibb_County_GA.bngl create mode 100644 Published/Mallela2022_MSAs/Madison_WI_Madison_WI.bngl create mode 100644 Published/Mallela2022_MSAs/Manchester-Nashua_NH_Manchester-Nashua_NH.bngl create mode 100644 Published/Mallela2022_MSAs/McAllen-Edinburg-Mission_TX_McAllen-Edinburg-Mission_TX.bngl create mode 100644 Published/Mallela2022_MSAs/Memphis_TN-MS-AR_Memphis_TN-MS-AR.bngl create mode 100644 Published/Mallela2022_MSAs/Merced_CA_Merced_CA.bngl create mode 100644 Published/Mallela2022_MSAs/Miami-Fort_Lauderdale-West_Palm_Beach_FL_Miami-Fort_Lauderdale-West_Palm_Beach_FL.bngl create mode 100644 Published/Mallela2022_MSAs/Michigan_City-La_Porte_IN_Michigan_City-La_Porte_IN.bngl create mode 100644 Published/Mallela2022_MSAs/Milwaukee-Waukesha_WI_Milwaukee-Waukesha_WI.bngl create mode 100644 Published/Mallela2022_MSAs/Minneapolis-St._Paul-Bloomington_MN-WI_Minneapolis-St._Paul-Bloomington_MN-WI.bngl create mode 100644 Published/Mallela2022_MSAs/Mobile_AL_Mobile_AL.bngl create mode 100644 Published/Mallela2022_MSAs/Modesto_CA_Modesto_CA.bngl create mode 100644 Published/Mallela2022_MSAs/Monroe_LA_Monroe_LA.bngl create mode 100644 Published/Mallela2022_MSAs/Monroe_MI_Monroe_MI.bngl create mode 100644 Published/Mallela2022_MSAs/Montgomery_AL_Montgomery_AL.bngl create mode 100644 Published/Mallela2022_MSAs/Mount_Vernon-Anacortes_WA_Mount_Vernon-Anacortes_WA.bngl create mode 100644 Published/Mallela2022_MSAs/Muncie_IN_Muncie_IN.bngl create mode 100644 Published/Mallela2022_MSAs/Muskegon_MI_Muskegon_MI.bngl create mode 100644 Published/Mallela2022_MSAs/Naples-Marco_Island_FL_Naples-Marco_Island_FL.bngl create mode 100644 Published/Mallela2022_MSAs/Nashville-Davidson-Murfreesboro-Franklin_TN_Nashville-Davidson-Murfreesboro-Franklin_TN.bngl create mode 100644 Published/Mallela2022_MSAs/New_Haven-Milford_CT_New_Haven-Milford_CT.bngl create mode 100644 Published/Mallela2022_MSAs/New_Orleans-Metairie_LA_New_Orleans-Metairie_LA.bngl create mode 100644 Published/Mallela2022_MSAs/New_York-Newark-Jersey_City_NY-NJ-PA_New_York-Newark-Jersey_City_NY-NJ-PA.bngl create mode 100644 Published/Mallela2022_MSAs/Niles_MI_Niles_MI.bngl create mode 100644 Published/Mallela2022_MSAs/North_Port-Sarasota-Bradenton_FL_North_Port-Sarasota-Bradenton_FL.bngl create mode 100644 Published/Mallela2022_MSAs/Norwich-New_London_CT_Norwich-New_London_CT.bngl create mode 100644 Published/Mallela2022_MSAs/Ocala_FL_Ocala_FL.bngl create mode 100644 Published/Mallela2022_MSAs/Ocean_City_NJ_Ocean_City_NJ.bngl create mode 100644 Published/Mallela2022_MSAs/Ogden-Clearfield_UT_Ogden-Clearfield_UT.bngl create mode 100644 Published/Mallela2022_MSAs/Oklahoma_City_OK_Oklahoma_City_OK.bngl create mode 100644 Published/Mallela2022_MSAs/Omaha-Council_Bluffs_NE-IA_Omaha-Council_Bluffs_NE-IA.bngl create mode 100644 Published/Mallela2022_MSAs/Orlando-Kissimmee-Sanford_FL_Orlando-Kissimmee-Sanford_FL.bngl create mode 100644 Published/Mallela2022_MSAs/Owensboro_KY_Owensboro_KY.bngl create mode 100644 Published/Mallela2022_MSAs/Oxnard-Thousand_Oaks-Ventura_CA_Oxnard-Thousand_Oaks-Ventura_CA.bngl create mode 100644 Published/Mallela2022_MSAs/Palm_Bay-Melbourne-Titusville_FL_Palm_Bay-Melbourne-Titusville_FL.bngl create mode 100644 Published/Mallela2022_MSAs/Pensacola-Ferry_Pass-Brent_FL_Pensacola-Ferry_Pass-Brent_FL.bngl create mode 100644 Published/Mallela2022_MSAs/Peoria_IL_Peoria_IL.bngl create mode 100644 Published/Mallela2022_MSAs/Philadelphia-Camden-Wilmington_PA-NJ-DE-MD_Philadelphia-Camden-Wilmington_PA-NJ-DE-MD.bngl create mode 100644 Published/Mallela2022_MSAs/Phoenix-Mesa-Chandler_AZ_Phoenix-Mesa-Chandler_AZ.bngl create mode 100644 Published/Mallela2022_MSAs/Pine_Bluff_AR_Pine_Bluff_AR.bngl create mode 100644 Published/Mallela2022_MSAs/Pittsburgh_PA_Pittsburgh_PA.bngl create mode 100644 Published/Mallela2022_MSAs/Pittsfield_MA_Pittsfield_MA.bngl create mode 100644 Published/Mallela2022_MSAs/Port_St._Lucie_FL_Port_St._Lucie_FL.bngl create mode 100644 Published/Mallela2022_MSAs/Portland-South_Portland_ME_Portland-South_Portland_ME.bngl create mode 100644 Published/Mallela2022_MSAs/Portland-Vancouver-Hillsboro_OR-WA_Portland-Vancouver-Hillsboro_OR-WA.bngl create mode 100644 Published/Mallela2022_MSAs/Poughkeepsie-Newburgh-Middletown_NY_Poughkeepsie-Newburgh-Middletown_NY.bngl create mode 100644 Published/Mallela2022_MSAs/Prescott_Valley-Prescott_AZ_Prescott_Valley-Prescott_AZ.bngl create mode 100644 Published/Mallela2022_MSAs/Providence-Warwick_RI-MA_Providence-Warwick_RI-MA.bngl create mode 100644 Published/Mallela2022_MSAs/Provo-Orem_UT_Provo-Orem_UT.bngl create mode 100644 Published/Mallela2022_MSAs/Pueblo_CO_Pueblo_CO.bngl create mode 100644 Published/Mallela2022_MSAs/Punta_Gorda_FL_Punta_Gorda_FL.bngl create mode 100644 Published/Mallela2022_MSAs/README.md create mode 100644 Published/Mallela2022_MSAs/Racine_WI_Racine_WI.bngl create mode 100644 Published/Mallela2022_MSAs/Raleigh-Cary_NC_Raleigh-Cary_NC.bngl create mode 100644 Published/Mallela2022_MSAs/Reading_PA_Reading_PA.bngl create mode 100644 Published/Mallela2022_MSAs/Reno_NV_Reno_NV.bngl create mode 100644 Published/Mallela2022_MSAs/Richmond_VA_Richmond_VA.bngl create mode 100644 Published/Mallela2022_MSAs/Riverside-San_Bernardino-Ontario_CA_Riverside-San_Bernardino-Ontario_CA.bngl create mode 100644 Published/Mallela2022_MSAs/Roanoke_VA_Roanoke_VA.bngl create mode 100644 Published/Mallela2022_MSAs/Rochester_MN_Rochester_MN.bngl create mode 100644 Published/Mallela2022_MSAs/Rochester_NY_Rochester_NY.bngl create mode 100644 Published/Mallela2022_MSAs/Rockford_IL_Rockford_IL.bngl create mode 100644 Published/Mallela2022_MSAs/Rocky_Mount_NC_Rocky_Mount_NC.bngl create mode 100644 Published/Mallela2022_MSAs/Rome_GA_Rome_GA.bngl create mode 100644 Published/Mallela2022_MSAs/Sacramento-Roseville-Folsom_CA_Sacramento-Roseville-Folsom_CA.bngl create mode 100644 Published/Mallela2022_MSAs/Saginaw_MI_Saginaw_MI.bngl create mode 100644 Published/Mallela2022_MSAs/Salem_OR_Salem_OR.bngl create mode 100644 Published/Mallela2022_MSAs/Salinas_CA_Salinas_CA.bngl create mode 100644 Published/Mallela2022_MSAs/Salisbury_MD-DE_Salisbury_MD-DE.bngl create mode 100644 Published/Mallela2022_MSAs/Salt_Lake_City_UT_Salt_Lake_City_UT.bngl create mode 100644 Published/Mallela2022_MSAs/San_Antonio-New_Braunfels_TX_San_Antonio-New_Braunfels_TX.bngl create mode 100644 Published/Mallela2022_MSAs/San_Diego-Chula_Vista-Carlsbad_CA_San_Diego-Chula_Vista-Carlsbad_CA.bngl create mode 100644 Published/Mallela2022_MSAs/San_Francisco-Oakland-Berkeley_CA_San_Francisco-Oakland-Berkeley_CA.bngl create mode 100644 Published/Mallela2022_MSAs/San_Jose-Sunnyvale-Santa_Clara_CA_San_Jose-Sunnyvale-Santa_Clara_CA.bngl create mode 100644 Published/Mallela2022_MSAs/San_Luis_Obispo-Paso_Robles_CA_San_Luis_Obispo-Paso_Robles_CA.bngl create mode 100644 Published/Mallela2022_MSAs/Santa_Maria-Santa_Barbara_CA_Santa_Maria-Santa_Barbara_CA.bngl create mode 100644 Published/Mallela2022_MSAs/Santa_Rosa-Petaluma_CA_Santa_Rosa-Petaluma_CA.bngl create mode 100644 Published/Mallela2022_MSAs/Savannah_GA_Savannah_GA.bngl create mode 100644 Published/Mallela2022_MSAs/Scranton-Wilkes-Barre_PA_Scranton-Wilkes-Barre_PA.bngl create mode 100644 Published/Mallela2022_MSAs/Scranton_Wilkes-Barre_PA_Scranton_Wilkes-Barre_PA.bngl create mode 100644 Published/Mallela2022_MSAs/Seattle-Tacoma-Bellevue_WA_Seattle-Tacoma-Bellevue_WA.bngl create mode 100644 Published/Mallela2022_MSAs/Shreveport-Bossier_City_LA_Shreveport-Bossier_City_LA.bngl create mode 100644 Published/Mallela2022_MSAs/Sioux_City_IA-NE-SD_Sioux_City_IA-NE-SD.bngl create mode 100644 Published/Mallela2022_MSAs/Sioux_Falls_SD_Sioux_Falls_SD.bngl create mode 100644 Published/Mallela2022_MSAs/South_Bend-Mishawaka_IN-MI_South_Bend-Mishawaka_IN-MI.bngl create mode 100644 Published/Mallela2022_MSAs/Spartanburg_SC_Spartanburg_SC.bngl create mode 100644 Published/Mallela2022_MSAs/Spokane-Spokane_Valley_WA_Spokane-Spokane_Valley_WA.bngl create mode 100644 Published/Mallela2022_MSAs/Springfield_IL_Springfield_IL.bngl create mode 100644 Published/Mallela2022_MSAs/Springfield_MA_Springfield_MA.bngl create mode 100644 Published/Mallela2022_MSAs/St._Cloud_MN_St._Cloud_MN.bngl create mode 100644 Published/Mallela2022_MSAs/St._George_UT_St._George_UT.bngl create mode 100644 Published/Mallela2022_MSAs/St._Joseph_MO-KS_St._Joseph_MO-KS.bngl create mode 100644 Published/Mallela2022_MSAs/St._Louis_MO-IL_St._Louis_MO-IL.bngl create mode 100644 Published/Mallela2022_MSAs/Stockton_CA_Stockton_CA.bngl create mode 100644 Published/Mallela2022_MSAs/Sumter_SC_Sumter_SC.bngl create mode 100644 Published/Mallela2022_MSAs/Syracuse_NY_Syracuse_NY.bngl create mode 100644 Published/Mallela2022_MSAs/Tallahassee_FL_Tallahassee_FL.bngl create mode 100644 Published/Mallela2022_MSAs/Tampa-St._Petersburg-Clearwater_FL_Tampa-St._Petersburg-Clearwater_FL.bngl create mode 100644 Published/Mallela2022_MSAs/Texarkana_TX-AR_Texarkana_TX-AR.bngl create mode 100644 Published/Mallela2022_MSAs/The_Villages_FL_The_Villages_FL.bngl create mode 100644 Published/Mallela2022_MSAs/Toledo_OH_Toledo_OH.bngl create mode 100644 Published/Mallela2022_MSAs/Topeka_KS_Topeka_KS.bngl create mode 100644 Published/Mallela2022_MSAs/Trenton-Princeton_NJ_Trenton-Princeton_NJ.bngl create mode 100644 Published/Mallela2022_MSAs/Tucson_AZ_Tucson_AZ.bngl create mode 100644 Published/Mallela2022_MSAs/Tulsa_OK_Tulsa_OK.bngl create mode 100644 Published/Mallela2022_MSAs/Tuscaloosa_AL_Tuscaloosa_AL.bngl create mode 100644 Published/Mallela2022_MSAs/Twin_Falls_ID_Twin_Falls_ID.bngl create mode 100644 Published/Mallela2022_MSAs/Urban_Honolulu_HI_Urban_Honolulu_HI.bngl create mode 100644 Published/Mallela2022_MSAs/Utica-Rome_NY_Utica-Rome_NY.bngl create mode 100644 Published/Mallela2022_MSAs/Valdosta_GA_Valdosta_GA.bngl create mode 100644 Published/Mallela2022_MSAs/Vallejo_CA_Vallejo_CA.bngl create mode 100644 Published/Mallela2022_MSAs/Victoria_TX_Victoria_TX.bngl create mode 100644 Published/Mallela2022_MSAs/Vineland-Bridgeton_NJ_Vineland-Bridgeton_NJ.bngl create mode 100644 Published/Mallela2022_MSAs/Virginia_Beach-Norfolk-Newport_News_VA-NC_Virginia_Beach-Norfolk-Newport_News_VA-NC.bngl create mode 100644 Published/Mallela2022_MSAs/Visalia_CA_Visalia_CA.bngl create mode 100644 Published/Mallela2022_MSAs/Warner_Robins_GA_Warner_Robins_GA.bngl create mode 100644 Published/Mallela2022_MSAs/Washington-Arlington-Alexandria_DC-VA-MD-WV_Washington-Arlington-Alexandria_DC-VA-MD-WV.bngl create mode 100644 Published/Mallela2022_MSAs/Waterloo-Cedar_Falls_IA_Waterloo-Cedar_Falls_IA.bngl create mode 100644 Published/Mallela2022_MSAs/Wenatchee_WA_Wenatchee_WA.bngl create mode 100644 Published/Mallela2022_MSAs/Wheeling_WV-OH_Wheeling_WV-OH.bngl create mode 100644 Published/Mallela2022_MSAs/Wichita_KS_Wichita_KS.bngl create mode 100644 Published/Mallela2022_MSAs/Winchester_VA-WV_Winchester_VA-WV.bngl create mode 100644 Published/Mallela2022_MSAs/Winston-Salem_NC_Winston-Salem_NC.bngl create mode 100644 Published/Mallela2022_MSAs/Worcester_MA-CT_Worcester_MA-CT.bngl create mode 100644 Published/Mallela2022_MSAs/Yakima_WA_Yakima_WA.bngl create mode 100644 Published/Mallela2022_MSAs/York-Hanover_PA_York-Hanover_PA.bngl create mode 100644 Published/Mallela2022_MSAs/Youngstown-Warren-Boardman_OH-PA_Youngstown-Warren-Boardman_OH-PA.bngl create mode 100644 Published/Mallela2022_MSAs/Yuma_AZ_Yuma_AZ.bngl create mode 100644 Published/Mallela2022_MSAs/metadata.yaml create mode 100644 Published/Massole2023/Massole_2023.bngl create mode 100644 Published/Massole2023/README.md create mode 100644 Published/Massole2023/metadata.yaml create mode 100644 Published/McMillan2021/McMillan_2021.bngl create mode 100644 Published/McMillan2021/README.md create mode 100644 Published/McMillan2021/metadata.yaml create mode 100644 Published/Mertins2023/Mertins_2023.bngl create mode 100644 Published/Mertins2023/README.md create mode 100644 Published/Mertins2023/metadata.yaml create mode 100644 Published/Miller2022_NavajoNation/README.md create mode 100644 Published/Miller2022_NavajoNation/metadata.yaml create mode 100644 Published/Miller2022_NavajoNation/supplementary_material_Arizona_Arizona.bngl create mode 100644 Published/Miller2022_NavajoNation/supplementary_material_Colorado_Colorado.bngl create mode 100644 Published/Miller2022_NavajoNation/supplementary_material_NavajoNation_NavajoNation.bngl create mode 100644 Published/Miller2022_NavajoNation/supplementary_material_NewMexico_NewMexico.bngl create mode 100644 Published/Miller2022_NavajoNation/supplementary_material_Utah_Utah.bngl create mode 100644 Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_KO.bngl create mode 100644 Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_N78G.bngl create mode 100644 Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_T292A.bngl create mode 100644 Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_T292D.bngl create mode 100644 Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_WT.bngl create mode 100644 Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_KO.bngl create mode 100644 Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_N78G.bngl create mode 100644 Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_T292A.bngl create mode 100644 Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_T292D.bngl create mode 100644 Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_WT.bngl create mode 100644 Published/Miller2025_MEK/README.md create mode 100644 Published/Miller2025_MEK/metadata.yaml create mode 100644 Published/ModelZAP/Model_ZAP.bngl create mode 100644 Published/ModelZAP/README.md create mode 100644 Published/ModelZAP/metadata.yaml create mode 100644 Published/Mukhopadhyay2013/Mukhopadhyay_2013.bngl create mode 100644 Published/Mukhopadhyay2013/README.md create mode 100644 Published/Mukhopadhyay2013/metadata.yaml create mode 100644 Published/Nag2009/Nag_2009.bngl create mode 100644 Published/Nag2009/README.md create mode 100644 Published/Nag2009/metadata.yaml create mode 100644 Published/Nosbisch2022/Nosbisch_2022.bngl create mode 100644 Published/Nosbisch2022/README.md create mode 100644 Published/Nosbisch2022/metadata.yaml create mode 100644 Published/Ordyan2020/CaMKIIholo/CaMKII_holo.bngl create mode 100644 Published/Ordyan2020/CaMKIIholo/README.md create mode 100644 Published/Ordyan2020/CaMKIIholo/metadata.yaml create mode 100644 Published/Ordyan2020/extraCaMKIIHolo/README.md create mode 100644 Published/Ordyan2020/extraCaMKIIHolo/extra_CaMKII_Holo.bngl create mode 100644 Published/Ordyan2020/extraCaMKIIHolo/metadata.yaml create mode 100644 Published/Ordyan2020/mCaMKIICaSpike/README.md create mode 100644 Published/Ordyan2020/mCaMKIICaSpike/mCaMKII_Ca_Spike.bngl create mode 100644 Published/Ordyan2020/mCaMKIICaSpike/metadata.yaml create mode 100644 Published/Pekalski2013/Pekalski_2013.bngl create mode 100644 Published/Pekalski2013/README.md create mode 100644 Published/Pekalski2013/metadata.yaml create mode 100644 Published/RulebasedRantransport/README.md create mode 100644 Published/RulebasedRantransport/Rule_based_Ran_transport.bngl create mode 100644 Published/RulebasedRantransport/metadata.yaml create mode 100644 Published/RulebasedRantransportdraft/README.md create mode 100644 Published/RulebasedRantransportdraft/Rule_based_Ran_transport_draft.bngl create mode 100644 Published/RulebasedRantransportdraft/metadata.yaml create mode 100644 Published/Rulebasedegfrcompart/README.md create mode 100644 Published/Rulebasedegfrcompart/Rule_based_egfr_compart.bngl create mode 100644 Published/Rulebasedegfrcompart/metadata.yaml create mode 100644 Published/Rulebasedegfrtutorial/README.md create mode 100644 Published/Rulebasedegfrtutorial/Rule_based_egfr_tutorial.bngl create mode 100644 Published/Rulebasedegfrtutorial/metadata.yaml create mode 100644 Published/VaxAndVariants/Dallas/Dallas.bngl create mode 100644 Published/VaxAndVariants/Dallas/README.md create mode 100644 Published/VaxAndVariants/Dallas/metadata.yaml create mode 100644 Published/VaxAndVariants/Houston/Houston.bngl create mode 100644 Published/VaxAndVariants/Houston/README.md create mode 100644 Published/VaxAndVariants/Houston/metadata.yaml create mode 100644 Published/VaxAndVariants/NYC/NYC.bngl create mode 100644 Published/VaxAndVariants/NYC/README.md create mode 100644 Published/VaxAndVariants/NYC/metadata.yaml create mode 100644 Published/VaxAndVariants/Phoenix/Phoenix.bngl create mode 100644 Published/VaxAndVariants/Phoenix/README.md create mode 100644 Published/VaxAndVariants/Phoenix/metadata.yaml create mode 100644 Published/Zhang2021/README.md create mode 100644 Published/Zhang2021/Zhang_2021.bngl create mode 100644 Published/Zhang2021/metadata.yaml create mode 100644 Published/Zhang2023/README.md create mode 100644 Published/Zhang2023/Zhang_2023.bngl create mode 100644 Published/Zhang2023/metadata.yaml create mode 100644 Published/fcerifyn/README.md create mode 100644 Published/fcerifyn/fceri_fyn.bngl create mode 100644 Published/fcerifyn/metadata.yaml create mode 100644 Published/innateimmunity/README.md create mode 100644 Published/innateimmunity/innate_immunity.bngl create mode 100644 Published/innateimmunity/metadata.yaml create mode 100644 Published/mapkdimers/README.md create mode 100644 Published/mapkdimers/mapk-dimers.bngl create mode 100644 Published/mapkdimers/metadata.yaml create mode 100644 Published/mapkmonomers/README.md create mode 100644 Published/mapkmonomers/mapk-monomers.bngl create mode 100644 Published/mapkmonomers/metadata.yaml create mode 100644 Published/notch/README.md create mode 100644 Published/notch/metadata.yaml create mode 100644 Published/notch/notch.bngl create mode 100644 Published/tlbr/README.md create mode 100644 Published/tlbr/metadata.yaml create mode 100644 Published/tlbr/tlbr.bngl create mode 100644 Published/vilar2002/README.md create mode 100644 Published/vilar2002/metadata.yaml create mode 100644 Published/vilar2002/vilar_2002.bngl create mode 100644 Published/vilar2002b/README.md create mode 100644 Published/vilar2002b/metadata.yaml create mode 100644 Published/vilar2002b/vilar_2002b.bngl create mode 100644 Published/vilar2002c/README.md create mode 100644 Published/vilar2002c/metadata.yaml create mode 100644 Published/vilar2002c/vilar_2002c.bngl create mode 100644 Published/wnt/README.md create mode 100644 Published/wnt/metadata.yaml create mode 100644 Published/wnt/wnt.bngl create mode 100644 PyBioNetGen/HIVdynamics/pt303/README.md create mode 100644 PyBioNetGen/HIVdynamics/pt303/metadata.yaml create mode 100644 PyBioNetGen/HIVdynamics/pt303/pt303.bngl create mode 100644 PyBioNetGen/HIVdynamics/pt403/README.md create mode 100644 PyBioNetGen/HIVdynamics/pt403/metadata.yaml create mode 100644 PyBioNetGen/HIVdynamics/pt403/pt403.bngl create mode 100644 PyBioNetGen/HIVdynamics/pt409/README.md create mode 100644 PyBioNetGen/HIVdynamics/pt409/metadata.yaml create mode 100644 PyBioNetGen/HIVdynamics/pt409/pt409.bngl create mode 100644 PyBioNetGen/core/IGF1RModelreceptoractivationbnf/IGF1R_Model_receptor_activation_bnf.bngl create mode 100644 PyBioNetGen/core/IGF1RModelreceptoractivationbnf/README.md create mode 100644 PyBioNetGen/core/IGF1RModelreceptoractivationbnf/metadata.yaml create mode 100644 PyBioNetGen/core/RAFi/RAFi.bngl create mode 100644 PyBioNetGen/core/RAFi/README.md create mode 100644 PyBioNetGen/core/RAFi/metadata.yaml create mode 100644 PyBioNetGen/core/RAFiground/RAFi_ground.bngl create mode 100644 PyBioNetGen/core/RAFiground/README.md create mode 100644 PyBioNetGen/core/RAFiground/metadata.yaml create mode 100644 PyBioNetGen/core/degranulationmodel/README.md create mode 100644 PyBioNetGen/core/degranulationmodel/degranulation_model.bngl create mode 100644 PyBioNetGen/core/degranulationmodel/metadata.yaml create mode 100644 PyBioNetGen/core/egfr/README.md create mode 100644 PyBioNetGen/core/egfr/egfr.bngl create mode 100644 PyBioNetGen/core/egfr/metadata.yaml create mode 100644 PyBioNetGen/core/egfrground/README.md create mode 100644 PyBioNetGen/core/egfrground/egfr_ground.bngl create mode 100644 PyBioNetGen/core/egfrground/metadata.yaml create mode 100644 PyBioNetGen/core/egfrnf/README.md create mode 100644 PyBioNetGen/core/egfrnf/egfr_nf.bngl create mode 100644 PyBioNetGen/core/egfrnf/metadata.yaml create mode 100644 PyBioNetGen/core/egfrode/README.md create mode 100644 PyBioNetGen/core/egfrode/egfr_ode.bngl create mode 100644 PyBioNetGen/core/egfrode/metadata.yaml create mode 100644 PyBioNetGen/core/egfrode_published-models_PyBNG/README.md create mode 100644 PyBioNetGen/core/egfrode_published-models_PyBNG/egfr_ode.bngl create mode 100644 PyBioNetGen/core/egfrode_published-models_PyBNG/metadata.yaml create mode 100644 PyBioNetGen/core/example1/README.md create mode 100644 PyBioNetGen/core/example1/example1.bngl create mode 100644 PyBioNetGen/core/example1/metadata.yaml create mode 100644 PyBioNetGen/core/example2startingpoint/README.md create mode 100644 PyBioNetGen/core/example2startingpoint/example2_starting_point.bngl create mode 100644 PyBioNetGen/core/example2startingpoint/metadata.yaml create mode 100644 PyBioNetGen/core/fcerigamma2/README.md create mode 100644 PyBioNetGen/core/fcerigamma2/fceri_gamma2.bngl create mode 100644 PyBioNetGen/core/fcerigamma2/metadata.yaml create mode 100644 PyBioNetGen/core/fcerigamma2groundtruth/README.md create mode 100644 PyBioNetGen/core/fcerigamma2groundtruth/fceri_gamma2_ground_truth.bngl create mode 100644 PyBioNetGen/core/fcerigamma2groundtruth/metadata.yaml create mode 100644 PyBioNetGen/core/model/README.md create mode 100644 PyBioNetGen/core/model/metadata.yaml create mode 100644 PyBioNetGen/core/model/model.bngl create mode 100644 PyBioNetGen/core/model_Degranulation_aMCMC/README.md create mode 100644 PyBioNetGen/core/model_Degranulation_aMCMC/metadata.yaml create mode 100644 PyBioNetGen/core/model_Degranulation_aMCMC/model.bngl create mode 100644 PyBioNetGen/core/modeltofit/README.md create mode 100644 PyBioNetGen/core/modeltofit/metadata.yaml create mode 100644 PyBioNetGen/core/modeltofit/model_tofit.bngl create mode 100644 PyBioNetGen/core/parabola/README.md create mode 100644 PyBioNetGen/core/parabola/metadata.yaml create mode 100644 PyBioNetGen/core/parabola/parabola.bngl create mode 100644 PyBioNetGen/core/parabola_demo/README.md create mode 100644 PyBioNetGen/core/parabola_demo/metadata.yaml create mode 100644 PyBioNetGen/core/parabola_demo/parabola.bngl create mode 100644 PyBioNetGen/core/parabolaground/README.md create mode 100644 PyBioNetGen/core/parabolaground/metadata.yaml create mode 100644 PyBioNetGen/core/parabolaground/parabola_ground.bngl create mode 100644 PyBioNetGen/core/polynomial/README.md create mode 100644 PyBioNetGen/core/polynomial/metadata.yaml create mode 100644 PyBioNetGen/core/polynomial/polynomial.bngl create mode 100644 PyBioNetGen/core/polynomialground/README.md create mode 100644 PyBioNetGen/core/polynomialground/metadata.yaml create mode 100644 PyBioNetGen/core/polynomialground/polynomial_ground.bngl create mode 100644 PyBioNetGen/core/receptor/README.md create mode 100644 PyBioNetGen/core/receptor/metadata.yaml create mode 100644 PyBioNetGen/core/receptor/receptor.bngl create mode 100644 PyBioNetGen/core/receptornf/README.md create mode 100644 PyBioNetGen/core/receptornf/metadata.yaml create mode 100644 PyBioNetGen/core/receptornf/receptor_nf.bngl create mode 100644 PyBioNetGen/core/tcr/README.md create mode 100644 PyBioNetGen/core/tcr/metadata.yaml create mode 100644 PyBioNetGen/core/tcr/tcr.bngl create mode 100644 PyBioNetGen/core/tlbr/README.md create mode 100644 PyBioNetGen/core/tlbr/metadata.yaml create mode 100644 PyBioNetGen/core/tlbr/tlbr.bngl create mode 100644 PyBioNetGen/tests/ErrNoFrees/ErrNoFrees.bngl create mode 100644 PyBioNetGen/tests/ErrNoFrees/README.md create mode 100644 PyBioNetGen/tests/ErrNoFrees/metadata.yaml create mode 100644 PyBioNetGen/tests/LilyIgE/LilyIgE.bngl create mode 100644 PyBioNetGen/tests/LilyIgE/README.md create mode 100644 PyBioNetGen/tests/LilyIgE/metadata.yaml create mode 100644 PyBioNetGen/tests/NFmodel/NFmodel.bngl create mode 100644 PyBioNetGen/tests/NFmodel/README.md create mode 100644 PyBioNetGen/tests/NFmodel/metadata.yaml create mode 100644 PyBioNetGen/tests/ParamsEverywhere/ParamsEverywhere.bngl create mode 100644 PyBioNetGen/tests/ParamsEverywhere/README.md create mode 100644 PyBioNetGen/tests/ParamsEverywhere/metadata.yaml create mode 100644 PyBioNetGen/tests/Simple/README.md create mode 100644 PyBioNetGen/tests/Simple/Simple.bngl create mode 100644 PyBioNetGen/tests/Simple/metadata.yaml create mode 100644 PyBioNetGen/tests/SimpleAddActions/README.md create mode 100644 PyBioNetGen/tests/SimpleAddActions/Simple_AddActions.bngl create mode 100644 PyBioNetGen/tests/SimpleAddActions/metadata.yaml create mode 100644 PyBioNetGen/tests/SimpleAnswer/README.md create mode 100644 PyBioNetGen/tests/SimpleAnswer/Simple_Answer.bngl create mode 100644 PyBioNetGen/tests/SimpleAnswer/metadata.yaml create mode 100644 PyBioNetGen/tests/SimpleGenOnly/README.md create mode 100644 PyBioNetGen/tests/SimpleGenOnly/Simple_GenOnly.bngl create mode 100644 PyBioNetGen/tests/SimpleGenOnly/metadata.yaml create mode 100644 PyBioNetGen/tests/Simplenogen/README.md create mode 100644 PyBioNetGen/tests/Simplenogen/Simple_nogen.bngl create mode 100644 PyBioNetGen/tests/Simplenogen/metadata.yaml create mode 100644 PyBioNetGen/tests/Tricky/README.md create mode 100644 PyBioNetGen/tests/Tricky/Tricky.bngl create mode 100644 PyBioNetGen/tests/Tricky/metadata.yaml create mode 100644 PyBioNetGen/tests/TrickyUS/README.md create mode 100644 PyBioNetGen/tests/TrickyUS/TrickyUS.bngl create mode 100644 PyBioNetGen/tests/TrickyUS/metadata.yaml create mode 100644 PyBioNetGen/tests/actionssyntax/README.md create mode 100644 PyBioNetGen/tests/actionssyntax/actions_syntax.bngl create mode 100644 PyBioNetGen/tests/actionssyntax/metadata.yaml create mode 100644 PyBioNetGen/tests/bngerror/README.md create mode 100644 PyBioNetGen/tests/bngerror/bng_error.bngl create mode 100644 PyBioNetGen/tests/bngerror/metadata.yaml create mode 100644 PyBioNetGen/tests/egg/README.md create mode 100644 PyBioNetGen/tests/egg/egg.bngl create mode 100644 PyBioNetGen/tests/egg/metadata.yaml create mode 100644 PyBioNetGen/tests/freemissing/README.md create mode 100644 PyBioNetGen/tests/freemissing/free_missing.bngl create mode 100644 PyBioNetGen/tests/freemissing/metadata.yaml create mode 100644 PyBioNetGen/tests/nofrees/README.md create mode 100644 PyBioNetGen/tests/nofrees/metadata.yaml create mode 100644 PyBioNetGen/tests/nofrees/no_frees.bngl create mode 100644 PyBioNetGen/tests/nogeneratenetwork/README.md create mode 100644 PyBioNetGen/tests/nogeneratenetwork/metadata.yaml create mode 100644 PyBioNetGen/tests/nogeneratenetwork/no_generate_network.bngl create mode 100644 PyBioNetGen/tests/nosuffix/README.md create mode 100644 PyBioNetGen/tests/nosuffix/metadata.yaml create mode 100644 PyBioNetGen/tests/nosuffix/no_suffix.bngl create mode 100644 PyBioNetGen/tests/parabola/README.md create mode 100644 PyBioNetGen/tests/parabola/metadata.yaml create mode 100644 PyBioNetGen/tests/parabola/parabola.bngl create mode 100644 PyBioNetGen/tests/parabola2/README.md create mode 100644 PyBioNetGen/tests/parabola2/metadata.yaml create mode 100644 PyBioNetGen/tests/parabola2/parabola2.bngl create mode 100644 PyBioNetGen/tests/parabola_bngl_files/README.md create mode 100644 PyBioNetGen/tests/parabola_bngl_files/metadata.yaml create mode 100644 PyBioNetGen/tests/parabola_bngl_files/parabola.bngl create mode 100644 PyBioNetGen/tests/parabola_bngl_files_special_cases_model_check/README.md create mode 100644 PyBioNetGen/tests/parabola_bngl_files_special_cases_model_check/metadata.yaml create mode 100644 PyBioNetGen/tests/parabola_bngl_files_special_cases_model_check/parabola.bngl create mode 100644 PyBioNetGen/tests/polynomial/README.md create mode 100644 PyBioNetGen/tests/polynomial/metadata.yaml create mode 100644 PyBioNetGen/tests/polynomial/polynomial.bngl create mode 100644 PyBioNetGen/tests/polynomial_full_tests_T6-check/README.md create mode 100644 PyBioNetGen/tests/polynomial_full_tests_T6-check/metadata.yaml create mode 100644 PyBioNetGen/tests/polynomial_full_tests_T6-check/polynomial.bngl create mode 100644 PyBioNetGen/tests/receptornf/README.md create mode 100644 PyBioNetGen/tests/receptornf/metadata.yaml create mode 100644 PyBioNetGen/tests/receptornf/receptor_nf.bngl create mode 100644 PyBioNetGen/tests/simplenfseed/README.md create mode 100644 PyBioNetGen/tests/simplenfseed/metadata.yaml create mode 100644 PyBioNetGen/tests/simplenfseed/simple_nf_seed.bngl create mode 100644 PyBioNetGen/tests/trivial/README.md create mode 100644 PyBioNetGen/tests/trivial/metadata.yaml create mode 100644 PyBioNetGen/tests/trivial/trivial.bngl create mode 100644 Tutorials/General/chemistry/README.md create mode 100644 Tutorials/General/chemistry/chemistry.bngl create mode 100644 Tutorials/General/chemistry/metadata.yaml create mode 100644 Tutorials/General/polymer/README.md create mode 100644 Tutorials/General/polymer/metadata.yaml create mode 100644 Tutorials/General/polymer/polymer.bngl create mode 100644 Tutorials/General/polymerdraft/README.md create mode 100644 Tutorials/General/polymerdraft/metadata.yaml create mode 100644 Tutorials/General/polymerdraft/polymer_draft.bngl create mode 100644 Tutorials/General/quasiequilibrium/README.md create mode 100644 Tutorials/General/quasiequilibrium/metadata.yaml create mode 100644 Tutorials/General/quasiequilibrium/quasi_equilibrium.bngl create mode 100644 Tutorials/General/simple/README.md create mode 100644 Tutorials/General/simple/metadata.yaml create mode 100644 Tutorials/General/simple/simple.bngl create mode 100644 Tutorials/General/toy1/README.md create mode 100644 Tutorials/General/toy1/metadata.yaml create mode 100644 Tutorials/General/toy1/toy1.bngl create mode 100644 Tutorials/General/toy2/README.md create mode 100644 Tutorials/General/toy2/metadata.yaml create mode 100644 Tutorials/General/toy2/toy2.bngl create mode 100644 Tutorials/NativeTutorials/AB/AB.bngl create mode 100644 Tutorials/NativeTutorials/AB/README.md create mode 100644 Tutorials/NativeTutorials/AB/metadata.yaml create mode 100644 Tutorials/NativeTutorials/ABC/ABC.bngl create mode 100644 Tutorials/NativeTutorials/ABC/README.md create mode 100644 Tutorials/NativeTutorials/ABC/metadata.yaml create mode 100644 Tutorials/NativeTutorials/ABCscan/ABC_scan.bngl create mode 100644 Tutorials/NativeTutorials/ABCscan/README.md create mode 100644 Tutorials/NativeTutorials/ABCscan/metadata.yaml create mode 100644 Tutorials/NativeTutorials/ABCssa/ABC_ssa.bngl create mode 100644 Tutorials/NativeTutorials/ABCssa/README.md create mode 100644 Tutorials/NativeTutorials/ABCssa/metadata.yaml create mode 100644 Tutorials/NativeTutorials/ABp/ABp.bngl create mode 100644 Tutorials/NativeTutorials/ABp/README.md create mode 100644 Tutorials/NativeTutorials/ABp/metadata.yaml create mode 100644 Tutorials/NativeTutorials/ABpapprox/ABp_approx.bngl create mode 100644 Tutorials/NativeTutorials/ABpapprox/README.md create mode 100644 Tutorials/NativeTutorials/ABpapprox/metadata.yaml create mode 100644 Tutorials/NativeTutorials/BAB/BAB.bngl create mode 100644 Tutorials/NativeTutorials/BAB/README.md create mode 100644 Tutorials/NativeTutorials/BAB/metadata.yaml create mode 100644 Tutorials/NativeTutorials/BABcoop/BAB_coop.bngl create mode 100644 Tutorials/NativeTutorials/BABcoop/README.md create mode 100644 Tutorials/NativeTutorials/BABcoop/metadata.yaml create mode 100644 Tutorials/NativeTutorials/BABscan/BAB_scan.bngl create mode 100644 Tutorials/NativeTutorials/BABscan/README.md create mode 100644 Tutorials/NativeTutorials/BABscan/metadata.yaml create mode 100644 Tutorials/NativeTutorials/BLBR/BLBR.bngl create mode 100644 Tutorials/NativeTutorials/BLBR/README.md create mode 100644 Tutorials/NativeTutorials/BLBR/metadata.yaml create mode 100644 Tutorials/NativeTutorials/Chyleklibrary/Chylek_library.bngl create mode 100644 Tutorials/NativeTutorials/Chyleklibrary/README.md create mode 100644 Tutorials/NativeTutorials/Chyleklibrary/metadata.yaml create mode 100644 Tutorials/NativeTutorials/CircadianOscillator/CircadianOscillator.bngl create mode 100644 Tutorials/NativeTutorials/CircadianOscillator/README.md create mode 100644 Tutorials/NativeTutorials/CircadianOscillator/metadata.yaml create mode 100644 Tutorials/NativeTutorials/ComplexDegradation/ComplexDegradation.bngl create mode 100644 Tutorials/NativeTutorials/ComplexDegradation/README.md create mode 100644 Tutorials/NativeTutorials/ComplexDegradation/metadata.yaml create mode 100644 Tutorials/NativeTutorials/Creamer2012/Creamer_2012.bngl create mode 100644 Tutorials/NativeTutorials/Creamer2012/README.md create mode 100644 Tutorials/NativeTutorials/Creamer2012/metadata.yaml create mode 100644 Tutorials/NativeTutorials/FceRIji/FceRI_ji.bngl create mode 100644 Tutorials/NativeTutorials/FceRIji/README.md create mode 100644 Tutorials/NativeTutorials/FceRIji/metadata.yaml create mode 100644 Tutorials/NativeTutorials/FceRIviz/FceRI_viz.bngl create mode 100644 Tutorials/NativeTutorials/FceRIviz/README.md create mode 100644 Tutorials/NativeTutorials/FceRIviz/metadata.yaml create mode 100644 Tutorials/NativeTutorials/GK/GK.bngl create mode 100644 Tutorials/NativeTutorials/GK/README.md create mode 100644 Tutorials/NativeTutorials/GK/metadata.yaml create mode 100644 Tutorials/NativeTutorials/LR/LR.bngl create mode 100644 Tutorials/NativeTutorials/LR/README.md create mode 100644 Tutorials/NativeTutorials/LR/metadata.yaml create mode 100644 Tutorials/NativeTutorials/LRR/LRR.bngl create mode 100644 Tutorials/NativeTutorials/LRR/README.md create mode 100644 Tutorials/NativeTutorials/LRR/metadata.yaml create mode 100644 Tutorials/NativeTutorials/LRRcomp/LRR_comp.bngl create mode 100644 Tutorials/NativeTutorials/LRRcomp/README.md create mode 100644 Tutorials/NativeTutorials/LRRcomp/metadata.yaml create mode 100644 Tutorials/NativeTutorials/LRcomp/LR_comp.bngl create mode 100644 Tutorials/NativeTutorials/LRcomp/README.md create mode 100644 Tutorials/NativeTutorials/LRcomp/metadata.yaml create mode 100644 Tutorials/NativeTutorials/LV/LV.bngl create mode 100644 Tutorials/NativeTutorials/LV/README.md create mode 100644 Tutorials/NativeTutorials/LV/metadata.yaml create mode 100644 Tutorials/NativeTutorials/LVcomp/LV_comp.bngl create mode 100644 Tutorials/NativeTutorials/LVcomp/README.md create mode 100644 Tutorials/NativeTutorials/LVcomp/metadata.yaml create mode 100644 Tutorials/NativeTutorials/Lisman/Lisman.bngl create mode 100644 Tutorials/NativeTutorials/Lisman/README.md create mode 100644 Tutorials/NativeTutorials/Lisman/metadata.yaml create mode 100644 Tutorials/NativeTutorials/Lismanbifurcate/Lisman_bifurcate.bngl create mode 100644 Tutorials/NativeTutorials/Lismanbifurcate/README.md create mode 100644 Tutorials/NativeTutorials/Lismanbifurcate/metadata.yaml create mode 100644 Tutorials/NativeTutorials/Repressilator/README.md create mode 100644 Tutorials/NativeTutorials/Repressilator/Repressilator.bngl create mode 100644 Tutorials/NativeTutorials/Repressilator/metadata.yaml create mode 100644 Tutorials/NativeTutorials/SIR/README.md create mode 100644 Tutorials/NativeTutorials/SIR/SIR.bngl create mode 100644 Tutorials/NativeTutorials/SIR/metadata.yaml create mode 100644 Tutorials/NativeTutorials/Suderman2013/README.md create mode 100644 Tutorials/NativeTutorials/Suderman2013/Suderman_2013.bngl create mode 100644 Tutorials/NativeTutorials/Suderman2013/metadata.yaml create mode 100644 Tutorials/NativeTutorials/birthdeath/README.md create mode 100644 Tutorials/NativeTutorials/birthdeath/birth-death.bngl create mode 100644 Tutorials/NativeTutorials/birthdeath/metadata.yaml create mode 100644 Tutorials/NativeTutorials/cBNGLsimple/README.md create mode 100644 Tutorials/NativeTutorials/cBNGLsimple/cBNGL_simple.bngl create mode 100644 Tutorials/NativeTutorials/cBNGLsimple/metadata.yaml create mode 100644 Tutorials/NativeTutorials/egfrsimple/README.md create mode 100644 Tutorials/NativeTutorials/egfrsimple/egfr_simple.bngl create mode 100644 Tutorials/NativeTutorials/egfrsimple/metadata.yaml create mode 100644 Tutorials/NativeTutorials/organelletransport/README.md create mode 100644 Tutorials/NativeTutorials/organelletransport/metadata.yaml create mode 100644 Tutorials/NativeTutorials/organelletransport/organelle_transport.bngl create mode 100644 Tutorials/NativeTutorials/organelletransportstruct/README.md create mode 100644 Tutorials/NativeTutorials/organelletransportstruct/metadata.yaml create mode 100644 Tutorials/NativeTutorials/organelletransportstruct/organelle_transport_struct.bngl create mode 100644 Tutorials/NativeTutorials/toggle/README.md create mode 100644 Tutorials/NativeTutorials/toggle/metadata.yaml create mode 100644 Tutorials/NativeTutorials/toggle/toggle.bngl create mode 100644 Tutorials/NativeTutorials/translateSBML/README.md create mode 100644 Tutorials/NativeTutorials/translateSBML/metadata.yaml create mode 100644 Tutorials/NativeTutorials/translateSBML/translateSBML.bngl create mode 100644 Tutorials/NativeTutorials/visualize/README.md create mode 100644 Tutorials/NativeTutorials/visualize/metadata.yaml create mode 100644 Tutorials/NativeTutorials/visualize/visualize.bngl create mode 100644 manifest.json create mode 100644 metadata-schema.yaml create mode 100644 migration-summary.json create mode 100644 scripts/generate-manifest.js create mode 100644 scripts/validate-metadata.js diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml new file mode 100644 index 00000000..a872f64d --- /dev/null +++ b/.github/workflows/validate.yml @@ -0,0 +1,30 @@ +name: Validate RuleHub Metadata + +on: + pull_request: + push: + branches: + - master + - main + +jobs: + validate: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Validate metadata + run: node scripts/validate-metadata.js + + - name: Regenerate manifest + run: node scripts/generate-manifest.js --root . --output manifest.generated.json + + - name: Check manifest is up to date + run: diff -u manifest.json manifest.generated.json \ No newline at end of file diff --git a/AddingModels.md b/AddingModels.md index 1680359b..a187270e 100644 --- a/AddingModels.md +++ b/AddingModels.md @@ -4,9 +4,12 @@ 2. Name is determined by either first author or the contributor, followed by the year of publication or contribution. If there is already a model in either section with that name, add another descriptive keyword (must start with a letter not a number) to the name, e.g., Blinov2006EGFR. 3. Make a directory with the name of the model in the corresponding section. 4. Put all model files and (optionally) associated scripts in this directory. -5. Create a README.md file in the directory based on the template provided in the corresponding model section (Published or Contributed). -6. If there are multiple model files/scripts, provide a table in the README.md file that gives a brief description of each. -7. (optional) Provide additional annotation in each model file based on the annotation keywords provided in ... +5. Create a metadata.yaml file in the directory following the field names documented in metadata-schema.yaml. +6. Create a README.md file in the directory based on the template provided in the corresponding model section (Published or Contributed). +7. If there are multiple model files/scripts, provide a table in the README.md file that gives a brief description of each. +8. If there are multiple BNGL model files in a single directory, include a collection section in metadata.yaml describing the variant type and count. +9. Run node scripts/validate-metadata.js and node scripts/generate-manifest.js --root . --output manifest.json before opening a pull request. +10. (optional) Provide additional annotation in each model file based on the annotation keywords provided in ... ## Guidelines for journal articles linking to RuleHub diff --git a/Contributed/BNGPlayground_Examples/biology/aktsignaling/README.md b/Contributed/BNGPlayground_Examples/biology/aktsignaling/README.md new file mode 100644 index 00000000..deb087ce --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/aktsignaling/README.md @@ -0,0 +1,22 @@ +# akt signaling + +Signaling rates + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- akt-signaling.bngl + +## Tags + +akt, signaling, growthfactor, rtk, pi3k, mtorc2, mtorc1, s6k diff --git a/Contributed/BNGPlayground_Examples/biology/aktsignaling/akt-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/aktsignaling/akt-signaling.bngl new file mode 100644 index 00000000..d15f0f94 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/aktsignaling/akt-signaling.bngl @@ -0,0 +1,100 @@ +begin model +begin parameters + # Signaling rates + k_bind 1e-3 # RTK-GF binding + k_unbind 1e-4 # GF dissociation + k_rtk_act 0.5 # Autophosphorylation + k_pi3k 0.2 # PI3K recruitment/activation + k_akt_t308 0.5 # PDK1-mediated T308 phos + k_akt_s473 0.3 # mTORC2-mediated S473 phos + k_mtorc1 0.4 # Akt-mediated mTORC1 activation + k_s6k_act 0.2 # mTORC1-mediated S6K phos + + # Negative feedback / resetting + k_reset 0.1 # General phosphatase/deactivation + k_fb 0.05 # S6K-mediated inhibition of RTK signaling + + # Total concentrations + GF_tot 100 + RTK_tot 50 + PI3K_tot 40 + AKT_tot 100 + mTORC2_tot 20 + mTORC1_tot 50 + S6K_tot 30 +end parameters + +begin molecule types + GrowthFactor(r) + RTK(l,state~U~P,fb_site~open~closed) + PI3K(state~off~on) + # Akt has two critical phosphorylation sites + AKT(t308~U~P,s473~U~P) + mTORC2(state~on) + mTORC1(state~off~on) + S6K(state~U~P) +end molecule types + +begin seed species + GrowthFactor(r) GF_tot + RTK(l,state~U,fb_site~open) RTK_tot + PI3K(state~off) PI3K_tot + AKT(t308~U,s473~U) AKT_tot + mTORC2(state~on) mTORC2_tot + mTORC1(state~off) mTORC1_tot + S6K(state~U) S6K_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Active_RTK RTK(state~P) # Receptor tyrosine kinase activation + Molecules Active_PI3K PI3K(state~on) # PI3K recruitment to membrane + Molecules pAkt_T308 AKT(t308~P) # PDK1-mediated phosphorylation + Molecules pAkt_S473 AKT(s473~P) # mTORC2-mediated phosphorylation + Molecules Double_pAkt AKT(t308~P,s473~P) # Fully active Akt + Molecules Active_mTORC1 mTORC1(state~on) # Downstream growth effector +end observables + +begin reaction rules + ## RECEPTOR ACTIVATION & FEEDBACK + # Growth factor binds to open RTK + GrowthFactor(r) + RTK(l,fb_site~open) <-> GrowthFactor(r!1).RTK(l!1,fb_site~open) k_bind,k_unbind + + # Ligand-bound RTK becomes active + GrowthFactor(r!1).RTK(l!1,state~U) -> GrowthFactor(r!1).RTK(l!1,state~P) k_rtk_act + + ## PI3K / AKT PATHWAY + # Active RTK recruits and activates PI3K + RTK(state~P) + PI3K(state~off) -> RTK(state~P) + PI3K(state~on) k_pi3k + + # Active PI3K facilitates Akt phosphorylation at T308 (PDK1 proxy) + PI3K(state~on) + AKT(t308~U) -> PI3K(state~on) + AKT(t308~P) k_akt_t308 + + # Constitutive mTORC2 phosphorylates Akt at S473 + mTORC2() + AKT(s473~U) -> mTORC2() + AKT(s473~P) k_akt_s473 + + ## MTOR SIGNALING & FEEDBACK + # Double-phosphorylated Akt activates mTORC1 + AKT(t308~P,s473~P) + mTORC1(state~off) -> AKT(t308~P,s473~P) + mTORC1(state~on) k_mtorc1 + + # mTORC1 activates S6K,which mediates feedback + mTORC1(state~on) + S6K(state~U) -> mTORC1(state~on) + S6K(state~P) k_s6k_act + + # Negative feedback: pS6K inhibits RTK ligand binding by "closing" the feedback site + S6K(state~P) + RTK(fb_site~open) -> S6K(state~P) + RTK(fb_site~closed) k_fb + + ## RESETTING MECHANISMS + RTK(state~P) -> RTK(state~U) k_reset + PI3K(state~on) -> PI3K(state~off) k_reset + AKT(t308~P) -> AKT(t308~U) k_reset + AKT(s473~P) -> AKT(s473~U) k_reset + mTORC1(state~on) -> mTORC1(state~off) k_reset + S6K(state~P) -> S6K(state~U) k_reset + RTK(fb_site~closed) -> RTK(fb_site~open) k_reset +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>0,t_end=>500,n_steps=>250}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/aktsignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/aktsignaling/metadata.yaml new file mode 100644 index 00000000..c98f92ad --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/aktsignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "akt-signaling" +name: "akt signaling" +description: "Signaling rates" +contributors: + - name: "Achyudhan" +tags: ["akt", "signaling", "growthfactor", "rtk", "pi3k", "mtorc2", "mtorc1", "s6k"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/akt-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/allostericactivation/README.md b/Contributed/BNGPlayground_Examples/biology/allostericactivation/README.md new file mode 100644 index 00000000..ead1c43a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/allostericactivation/README.md @@ -0,0 +1,22 @@ +# allosteric activation + +Binding constants + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- allosteric-activation.bngl + +## Tags + +allosteric, activation, enzyme, substrate, activator, product diff --git a/Contributed/BNGPlayground_Examples/biology/allostericactivation/allosteric-activation.bngl b/Contributed/BNGPlayground_Examples/biology/allostericactivation/allosteric-activation.bngl new file mode 100644 index 00000000..2db6f5ba --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/allostericactivation/allosteric-activation.bngl @@ -0,0 +1,69 @@ +begin model +begin parameters + # Binding constants + k_on_S 2e-3 # Substrate binding to enzyme + k_off_S 5e-4 # Substrate dissociation + k_on_A 1.5e-3 # Activator binding (cooperative step 1) + k_off_A 3e-4 # Activator dissociation + + # Catalytic rates + k_cat_basal 0.02 # Catalysis by inactive/partially-active enzyme + k_cat_full 0.25 # Catalysis by fully activated enzyme + + # Feedback + k_inh 0.01 # Product-mediated feedback inhibition +end parameters + +begin molecule types + # Enzyme has a substrate site (s),two activator sites (a1,a2),and can be inhibited (i) + Enzyme(s,a1,a2,i~off~on) + Substrate(b) + Activator(b) + Product() +end molecule types + +begin seed species + Enzyme(s,a1,a2,i~off) 50 + Substrate(b) 500 + Activator(b) 200 + Product() 0 +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Free_Enzyme Enzyme(a1,a2,s,i~off) # Available enzyme + Molecules Single_Bound Enzyme(a1!1,a2).Activator(b!1) # Partially activated + Molecules Double_Bound Enzyme(a1!1,a2!2).Activator(b!1).Activator(b!2) # Fully activated + Molecules Product_Count Product() # Cumulative product + Molecules Inhibited_Enz Enzyme(i~on) # Enzyme sequestered by feedback +end observables + +begin reaction rules + ## ALLOSTERIC COOPERATIVITY + # First activator binding + Enzyme(a1,i~off) + Activator(b) <-> Enzyme(a1!1,i~off).Activator(b!1) k_on_A,k_off_A + + # Second activator binding (cooperative recruitment) + Enzyme(a1!+,a2,i~off) + Activator(b) <-> Enzyme(a1!+,a2!1,i~off).Activator(b!1) k_on_A*2,k_off_A/2 + + ## SUBSTRATE PROCESSING + # Substrate binds to enzyme (any state,but faster if active) + Enzyme(s,i~off) + Substrate(b) <-> Enzyme(s!1,i~off).Substrate(b!1) k_on_S,k_off_S + + # Basal catalysis (inactive or partially active) + Enzyme(s!1,a2,i~off).Substrate(b!1) -> Enzyme(s,a2,i~off) + Product() k_cat_basal + + # Enhanced catalysis (both allosteric sites bound) + Enzyme(s!1,a1!+,a2!+,i~off).Substrate(b!1) -> Enzyme(s,a1!+,a2!+,i~off) + Product() k_cat_full + + ## FEEDBACK REGULATION + # Product mediates negative feedback inhibition (e.g.,metabolic control) + Product() + Enzyme(i~off) -> Enzyme(i~on) k_inh + Enzyme(i~on) -> Enzyme(i~off) k_off_S +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>5000,n_steps=>300}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/allostericactivation/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/allostericactivation/metadata.yaml new file mode 100644 index 00000000..6e78ed52 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/allostericactivation/metadata.yaml @@ -0,0 +1,24 @@ +id: "allosteric-activation" +name: "allosteric activation" +description: "Binding constants" +contributors: + - name: "Achyudhan" +tags: ["allosteric", "activation", "enzyme", "substrate", "activator", "product"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/allosteric-activation.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/ampksignaling/README.md b/Contributed/BNGPlayground_Examples/biology/ampksignaling/README.md new file mode 100644 index 00000000..ef1aa8b0 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/ampksignaling/README.md @@ -0,0 +1,22 @@ +# ampk signaling + +AMPK signaling: The cellular energy sensor. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- ampk-signaling.bngl + +## Tags + +ampk, signaling, amp, lkb1, ca, sik, crtc diff --git a/Contributed/BNGPlayground_Examples/biology/ampksignaling/ampk-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/ampksignaling/ampk-signaling.bngl new file mode 100644 index 00000000..0704a369 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/ampksignaling/ampk-signaling.bngl @@ -0,0 +1,101 @@ +begin model +begin parameters + # AMPK signaling: The cellular energy sensor. + # Advanced features: SAT kinetics and wildcard dephosphorylation. + + # Energy Sensing (AMP/ATP ratio) + k_bind_amp 1e-4 # AMP binding + k_unbind_amp 0.1 + + # AMPK Activation (Phosphorylation at Thr172) + k_lkb1_act 0.5 # LKB1-mediated (Constitutive) + k_camkk_act 1.0 # CaMKK2-mediated (Calcium-dependent) + Km_ampk 150 # Half-saturation for activation + + # Feedback Control (SIK Pathway) + k_sik_phos 0.8 # pAMPK phosphorylates SIK + k_crtc_inh 1.2 # SIK inhibits CRTC translocation + + # Dephosphorylation + k_dephos 0.1 # Phos-independent basal reset + + # Initials + AMPK_tot 500 + AMP_tot 800 + LKB1_tot 50 + SIK_tot 100 + CRTC_tot 300 +end parameters + +begin molecule types + AMPK(amp,s~U~P) + AMP(b) + LKB1() + Ca() + SIK(s~U~P) + CRTC(loc~cyt~nuc) +end molecule types + +begin seed species + AMPK(amp,s~U) AMPK_tot + AMP(b) AMP_tot + LKB1() LKB1_tot + Ca() 0 + SIK(s~U) SIK_tot + CRTC(loc~nuc) CRTC_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Energy_Sensor AMPK(s~P) # Active AMPK pool + Molecules Low_Energy_Sig AMPK(amp!+) # AMP-detected fraction + Molecules SIK_Activity SIK(s~P) # Signaling branch + Molecules Nuclear_CRTC CRTC(loc~nuc) # Growth/Metabolism driver + Molecules Calcium_Stim Ca() # Input proxy + Molecules Active_AMPK AMPK(s~P) # Total energy sensor + Molecules Bound_AMPK_AMP AMPK(amp!+) # Activation status +end observables + +begin functions + # Saturable phosphorylation rate dependent on AMP binding + # AMP binding increases susceptibility to LKB1/CaMKK + v_act_amp() = k_lkb1_act * LKB1_tot * (Bound_AMPK_AMP / (Km_ampk + Bound_AMPK_AMP)) +end functions + +begin reaction rules + ## ACTIVATION + # AMP binding (Energy sensor) + AMPK(amp) + AMP(b) <-> AMPK(amp!1).AMP(b!1) k_bind_amp,k_unbind_amp + + # LKB1 activates AMPK (Faster when AMP is bound - functional rate) + # Wildcard !+ means AMP is bound + AMPK(s~U,amp!+) -> AMPK(s~P,amp!+) v_act_amp() + + # CaMKK2 activates AMPK (Calcium drive) + Ca() + AMPK(s~U) -> Ca() + AMPK(s~P) k_camkk_act + + ## DOWNSTREAM RELAY (SIK/CRTC) + # Active AMPK phosphorylates SIK + AMPK(s~P) + SIK(s~U) -> AMPK(s~P) + SIK(s~P) k_sik_phos + + # p-SIK phosphorylates CRTC,causing nuclear export + SIK(s~P) + CRTC(loc~nuc) -> SIK(s~P) + CRTC(loc~cyt) k_crtc_inh + + ## RECOVERY + # Wildcard !? for any AMP state during dephosphorylation + AMPK(s~P,amp!?) -> AMPK(s~U,amp!?) k_dephos + + SIK(s~P) -> SIK(s~U) 0.05 + CRTC(loc~cyt) -> CRTC(loc~nuc) 0.1 + + # Transient Calcium stimulus + 0 -> Ca() 5.0 + Ca() -> 0 0.1 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>60,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/ampksignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/ampksignaling/metadata.yaml new file mode 100644 index 00000000..1e89dd90 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/ampksignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "ampk-signaling" +name: "ampk signaling" +description: "AMPK signaling: The cellular energy sensor." +contributors: + - name: "Achyudhan" +tags: ["ampk", "signaling", "amp", "lkb1", "ca", "sik", "crtc"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/ampk-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/apoptosiscascade/README.md b/Contributed/BNGPlayground_Examples/biology/apoptosiscascade/README.md new file mode 100644 index 00000000..3fb4b60d --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/apoptosiscascade/README.md @@ -0,0 +1,22 @@ +# apoptosis cascade + +Apoptosis cascade: Integrated extrinsic and intrinsic death signaling. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- apoptosis-cascade.bngl + +## Tags + +apoptosis, cascade, deathligand, caspase8, bid, mito, apaf1, caspase3, xiap, smac diff --git a/Contributed/BNGPlayground_Examples/biology/apoptosiscascade/apoptosis-cascade.bngl b/Contributed/BNGPlayground_Examples/biology/apoptosiscascade/apoptosis-cascade.bngl new file mode 100644 index 00000000..b8a15fb8 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/apoptosiscascade/apoptosis-cascade.bngl @@ -0,0 +1,111 @@ +begin model +begin parameters + # Apoptosis cascade: Integrated extrinsic and intrinsic death signaling. + # Advanced features: Hill kinetics for MOMP and MoveConnected for CytoC. + + # Upstream Induction + k_ligand 0.8 # Death ligand drive + + # Mitochondrial Decision (MOMP) + k_bid_trunc 1.0 # BID -> tBID + k_momp_max 5.0 # Final mitochondrial commitment + Km_tbid 150 # Threshold for MOMP + n_hill 4.0 # Sharp switching behavior + + # Execution + k_apaf_act 1.5 # CytoC/Apaf-1 assembly + k_c3_act 2.5 # Caspase-3 execution + + # Regulation (Survival) + k_xiap_bind 5.0 # XIAP sequesters C3 + k_smac_rec 2.0 # SMAC inhibits XIAP + + # Initials + C8_tot 500 + Bid_tot 400 + MOMP_sites 100 # Mitochondrial surface proxy + Apaf1_tot 300 + C3_tot 1000 + XIAP_tot 200 + SMAC_tot 150 +end parameters + +begin molecule types + DeathLigand() + Caspase8(s~U~A) + Bid(s~U~T) + Mito(state~intact~leaky,loc~mit~cyt) + Apaf1(s~U~A) + Caspase3(b,s~U~A) + XIAP(b1,b2) + SMAC(b,loc~mit~cyt) +end molecule types + +begin seed species + DeathLigand() 10 + Caspase8(s~U) C8_tot + Bid(s~U) Bid_tot + Mito(state~intact,loc~mit) MOMP_sites + Apaf1(s~U) Apaf1_tot + Caspase3(b,s~U) C3_tot + XIAP(b1,b2) XIAP_tot + SMAC(b,loc~mit) SMAC_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Global_Death Caspase3(s~A) # Executioner activity + Molecules Mitochondrial_Fail Mito(state~leaky) # Irreversible commitment + Molecules CytoC_Released Mito(loc~cyt) # Spatial readout + Molecules Inhibitor_Sequest Caspase3(b!1).XIAP(b1!1) # Survival status + Molecules Mitochondria_Gate Mito(state~leaky) # Commitment marker + Molecules Active_Bid Bid(s~T) # Feedback driver status +end observables + +begin functions + # Sharp switch for mitochondrial collapse (MOMP) + v_momp() = k_momp_max * (Active_Bid^n_hill) / (Km_tbid^n_hill + Active_Bid^n_hill) +end functions + +begin reaction rules + ## RECEPTION & INITIATION (Extrinsic) + # Death ligand triggers Caspase-8 + DeathLigand() + Caspase8(s~U) -> DeathLigand() + Caspase8(s~A) k_ligand + + # Caspase-8 truncates Bid + Caspase8(s~A) + Bid(s~U) -> Caspase8(s~A) + Bid(s~T) k_bid_trunc + + ## MITOCHONDRIAL COLLAPSE (Intrinsic) + # tBid triggers MOMP (Functional Rate - Hill) + Mito(state~intact) -> Mito(state~leaky) v_momp() + + # MoveConnected: CytoC and SMAC move to cytosol upon MOMP + Mito(state~leaky,loc~mit) -> Mito(state~leaky,loc~cyt) 10.0 MoveConnected + SMAC(loc~mit) + Mito(state~leaky) -> SMAC(loc~cyt) + Mito(state~leaky) 10.0 + + ## EXECUTION + # CytoC (proxied by leaky mito) activates Apaf-1 + Mito(state~leaky,loc~cyt) + Apaf1(s~U) -> Mito(state~leaky,loc~cyt) + Apaf1(s~A) k_apaf_act + + # Initiators (C8,Apaf-C9) activate Caspase-3 + Caspase8(s~A) + Caspase3(s~U) -> Caspase8(s~A) + Caspase3(s~A) k_c3_act + Apaf1(s~A) + Caspase3(s~U) -> Apaf1(s~A) + Caspase3(s~A) k_c3_act + + ## REGULATION & SURVIVAL + # XIAP inhibits active C3 + Caspase3(s~A,b) + XIAP(b1) <-> Caspase3(s~A,b!1).XIAP(b1!1) k_xiap_bind,0.1 + + # SMAC inhibits XIAP,letting C3 free + SMAC(loc~cyt,b) + XIAP(b2) <-> SMAC(loc~cyt,b!1).XIAP(b2!1) k_smac_rec,0.1 + + ## RESET (Baseline recovery - failed apoptosis case) + Caspase3(s~A) -> Caspase3(s~U) 0.05 + Apaf1(s~A) -> Apaf1(s~U) 0.05 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>10,n_steps=>200}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/apoptosiscascade/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/apoptosiscascade/metadata.yaml new file mode 100644 index 00000000..ebc2b7ea --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/apoptosiscascade/metadata.yaml @@ -0,0 +1,24 @@ +id: "apoptosis-cascade" +name: "apoptosis cascade" +description: "Apoptosis cascade: Integrated extrinsic and intrinsic death signaling." +contributors: + - name: "Achyudhan" +tags: ["apoptosis", "cascade", "deathligand", "caspase8", "bid", "mito", "apaf1", "caspase3", "xiap", "smac"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/apoptosis-cascade.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/autoactivationloop/README.md b/Contributed/BNGPlayground_Examples/biology/autoactivationloop/README.md new file mode 100644 index 00000000..e704a384 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/autoactivationloop/README.md @@ -0,0 +1,22 @@ +# auto activation loop + +Auto-activation loop: A positive feedback circuit. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- auto-activation-loop.bngl + +## Tags + +auto, activation, loop, gene, mrna, protein, rbp diff --git a/Contributed/BNGPlayground_Examples/biology/autoactivationloop/auto-activation-loop.bngl b/Contributed/BNGPlayground_Examples/biology/autoactivationloop/auto-activation-loop.bngl new file mode 100644 index 00000000..f72fd1b1 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/autoactivationloop/auto-activation-loop.bngl @@ -0,0 +1,103 @@ +begin model +begin parameters + # Auto-activation loop: A positive feedback circuit. + # Advanced features: if function for pulsatile stimulation and TotalRate driver. + + # Transcription & Feedback + k_trans_basal 0.05 # Leakiness + k_trans_max 2.0 # Stimulated peak + k_bind_prom 1.0 # TF binding + + # Translation & Stability + k_translat_max 10.0 # Peak translation drive + k_deg_mrna 0.2 + k_deg_prot 0.05 + + # Complex Dynamics + k_dimer 1e-3 + k_dimer_off 0.1 + + # Regulatory Sequestration (RBP) + k_rbp_bind 2.0 # Sequesters mRNA + + # Initials + Gene_sites 1 + mRNA_init 0 + Prot_init 10 + RBP_tot 100 + v_stim_current 0.1 +end parameters + +begin molecule types + Gene(prom~off~on) + mRNA(b) + Protein(b) + RBP(b) +end molecule types + +begin seed species + Gene(prom~off) Gene_sites + mRNA(b) mRNA_init + Protein(b) Prot_init + RBP(b) RBP_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Active_Protein Protein(b) # Functional pool + Molecules Transcript_Mass mRNA() # RNA reservoir + Molecules Promoter_State Gene(prom~on) # Circuit status + Molecules Sequest_mRNA mRNA(b!1).RBP(b!1) # Regulation overhead + Species TF_Dimers Protein(b!1).Protein(b!1) # Active driver +end observables + + + +begin functions + # PoolConstraint function: modulates rate based on pool size vs capacity + Capacity 1000 + PoolConstraint() = 1 - (Sequest_mRNA + Transcript_Mass)/Capacity + v_translat() = k_translat_max * v_stim_current * PoolConstraint() +end functions + +begin reaction rules + ## TRANSCRIPTION + # Basal and TF-mediated production + Gene(prom~off) -> Gene(prom~off) + mRNA(b) k_trans_basal + Gene(prom~on) -> Gene(prom~on) + mRNA(b) k_trans_max + + ## TRANSLATION (Driver-dependent) + # Uses PoolConstraint to avoid explosive growth + mRNA(b) -> mRNA(b) + Protein(b) v_translat() + + ## FEEDBACK & ASSEMBLY + # Protein dimerization to form TF + Protein(b) + Protein(b) <-> Protein(b!1).Protein(b!1) k_dimer,k_dimer_off + + # TF binds promoter + Protein(b!1).Protein(b!1) + Gene(prom~off) <-> Protein(b!1).Protein(b!1).Gene(prom~on) k_bind_prom,0.1 + + ## SEQUESTRATION + # RBP binds and silences mRNA (Anti-feedback) + mRNA(b) + RBP(b) <-> mRNA(b!1).RBP(b!1) k_rbp_bind,0.2 + + ## RESET + mRNA() -> 0 k_deg_mrna + Protein(b) -> 0 k_deg_prot + RBP() -> 0 0.01 # Slow turnover +end reaction rules + +begin actions + generate_network({overwrite=>1}) + # Phase 1: Basal (0-10s) + simulate({method=>"ode",t_end=>10,n_steps=>20}) + + # Phase 2: Pulsatile Stimulation (10-40s) + setParameter("v_stim_current",5.0) + simulate({method=>"ode",t_start=>10,t_end=>40,n_steps=>60,continue=>1}) + + # Phase 3: Relaxation (40-100s) + setParameter("v_stim_current",0.1) + simulate({method=>"ode",t_start=>40,t_end=>100,n_steps=>120,continue=>1}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/autoactivationloop/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/autoactivationloop/metadata.yaml new file mode 100644 index 00000000..c4479468 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/autoactivationloop/metadata.yaml @@ -0,0 +1,24 @@ +id: "auto-activation-loop" +name: "auto activation loop" +description: "Auto-activation loop: A positive feedback circuit." +contributors: + - name: "Achyudhan" +tags: ["auto", "activation", "loop", "gene", "mrna", "protein", "rbp"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/auto-activation-loop.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/autophagyregulation/README.md b/Contributed/BNGPlayground_Examples/biology/autophagyregulation/README.md new file mode 100644 index 00000000..a37a8895 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/autophagyregulation/README.md @@ -0,0 +1,22 @@ +# autophagy regulation + +Autophagy regulation: mTOR and AMPK competition on the ULK1 switch. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- autophagy-regulation.bngl + +## Tags + +autophagy, regulation, mtor, ampk, ulk1, lc3, p62 diff --git a/Contributed/BNGPlayground_Examples/biology/autophagyregulation/autophagy-regulation.bngl b/Contributed/BNGPlayground_Examples/biology/autophagyregulation/autophagy-regulation.bngl new file mode 100644 index 00000000..e0308cb7 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/autophagyregulation/autophagy-regulation.bngl @@ -0,0 +1,102 @@ +begin model +begin parameters + # Autophagy regulation: mTOR and AMPK competition on the ULK1 switch. + # Advanced features: exclude_reactants and wildcards (!?) for phosphorylation. + + # Sensing + k_nutrients 0.8 # Sustained mTOR drive + k_stress 1.5 # Starvation trigger + k_stress_multiplier 0.1 + + # Kinase Competition + k_mtor_ulk 2.0 # mTOR inhibits ULK1 + k_ampk_ulk 1.8 # AMPK activates ULK1 + + # Autophagosome Formation + k_p62_bind 1.0 # Cargo recognition + Km_vps34 300 # Metabolic bottleneck + + # Reset + k_reset 0.2 # General recovery + + # Initials + AMPK_tot 800 + ULK1_tot 400 + LC3_tot 2000 + p62_tot 500 +end parameters + +begin molecule types + mTOR(s~on~off) + AMPK(s~U~P) + ULK1(s~U~P_mTOR~active) + LC3(s~I~II) # Soluble vs Lipid-bound + p62(b) # Cargo sensor +end molecule types + +begin seed species + mTOR(s~on) 100 + AMPK(s~U) AMPK_tot + ULK1(s~U) ULK1_tot + LC3(s~I) LC3_tot + p62(b) p62_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Autophagy_Drive LC3(s~II) # Structural marker (LC3-II) + Molecules Stress_Sensor AMPK(s~P) # Energy status + Molecules Growth_Sensor mTOR(s~on) # Nutrient status + Molecules Primed_ULK1 ULK1(s~active) # Initiator status + Molecules Cargo_Capture p62(b!+) # Functional clearance +end observables + +begin functions + v_stress_inh() = k_stress * k_stress_multiplier +end functions + +begin reaction rules + ## SENSING (Stress/Nutrient competition) + # Nutrients keep mTOR active + 0 -> mTOR(s~on) k_nutrients + # Induction using stress multiplier + mTOR(s~on) -> mTOR(s~off) v_stress_inh() + + # Stress activates AMPK + AMPK(s~U) -> AMPK(s~P) k_stress + + ## ULK1 SWITCHBOARD + # Competition: mTOR inhibits ULK1 + # exclude_reactants: mTOR cannot inhibit if AMPK has already primed ULK1 (Simplified logic) + mTOR(s~on) + ULK1(s~U) -> mTOR(s~on) + ULK1(s~P_mTOR) k_mtor_ulk + + # AMPK activates ULK1 + AMPK(s~P) + ULK1(s~U) -> AMPK(s~P) + ULK1(s~active) k_ampk_ulk + + ## DOWNSTREAM EXECUTION (Phagophore elongation) + # Active ULK1 promotes LC3 lipidation (uses Primed_ULK1 observable) + LC3(s~I) -> LC3(s~II) 1.0 * (Primed_ULK1/(Km_vps34 + Primed_ULK1)) + + # LC3-II recruits p62 (Cargo selection) + LC3(s~II) + p62(b) <-> LC3(s~II!1).p62(b!1) k_p62_bind,0.5 + + ## RECOVERY + # Wildcard dephosphorylation (!?) + ULK1(s~P_mTOR) -> ULK1(s~U) k_reset + ULK1(s~active) -> ULK1(s~U) k_reset + LC3(s~II) -> LC3(s~I) 0.1 + AMPK(s~P) -> AMPK(s~U) k_reset + mTOR(s~off) -> mTOR(s~on) 0.05 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + # Phase 1: Basal (Normal Nutrients) + setParameter("k_stress_multiplier", 0.1) + simulate({method=>"ode",t_end=>50,n_steps=>100}) + # Phase 2: Stress (Starvation pulse) + setParameter("k_stress_multiplier", 2.0) + simulate({method=>"ode",t_end=>150,n_steps=>200,continue=>1}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/autophagyregulation/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/autophagyregulation/metadata.yaml new file mode 100644 index 00000000..e552850e --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/autophagyregulation/metadata.yaml @@ -0,0 +1,24 @@ +id: "autophagy-regulation" +name: "autophagy regulation" +description: "Autophagy regulation: mTOR and AMPK competition on the ULK1 switch." +contributors: + - name: "Achyudhan" +tags: ["autophagy", "regulation", "mtor", "ampk", "ulk1", "lc3", "p62"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/autophagy-regulation.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/bcrsignaling/README.md b/Contributed/BNGPlayground_Examples/biology/bcrsignaling/README.md new file mode 100644 index 00000000..0d150421 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/bcrsignaling/README.md @@ -0,0 +1,22 @@ +# bcr signaling + +BCR signaling: The B-cell antigen receptor cascade. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- bcr-signaling.bngl + +## Tags + +bcr, signaling, antigen, syk, plcg2, cd22, shp1, calcium diff --git a/Contributed/BNGPlayground_Examples/biology/bcrsignaling/bcr-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/bcrsignaling/bcr-signaling.bngl new file mode 100644 index 00000000..cdd768dc --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/bcrsignaling/bcr-signaling.bngl @@ -0,0 +1,112 @@ +begin model +begin parameters + # BCR signaling: The B-cell antigen receptor cascade. + # Advanced features: Hill kinetics for calcium and DeleteMolecules for clearance. + + # Recognition & Initiation + k_bind_ag 1e-4 # BCR-Antigen binding + k_lyn_phos 2.0 # Lyn-mediated ITAM phos + + # Signal Relay (Syk/PLCg2) + k_syk_act 1.5 # Syk recruitment and activation + k_plcg_act 1.0 # PLCgamma2 activation + + # Downstream Messengers (Calcium Phase) + k_ca_max 10.0 # Peak calcium flux + Km_ca 300 # Threshold for calcium response + n_hill 3.0 # Sharp trigger mechanics + + # Negative Feedback (CD22/SHP-1) + k_shp_rec 1.2 # SHP-1 recruitment to CD22 + k_dephos_bcr 5.0 # SHP-1 mediated dephosphorylation (Fast) + + # Clearance + k_endo 0.2 # Receptor internalisation + + # Initials + BCR_tot 500 + Antigen_tot 50 + Syk_tot 120 + PLCg2_tot 100 + CD22_tot 150 + SHP1_tot 150 + Ca_cyt 10 # Basal calcium +end parameters + +begin molecule types + BCR(Y~U~P,b) + Antigen(b) + Syk(s~U~A) + PLCg2(s~U~A) + CD22(Y~U~P,b) + SHP1(b) + Calcium() +end molecule types + +begin seed species + BCR(Y~U,b) BCR_tot + Antigen(b) Antigen_tot + Syk(s~U) Syk_tot + PLCg2(s~U) PLCg2_tot + CD22(Y~U,b) CD22_tot + SHP1(b) SHP1_tot + Calcium() Ca_cyt +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Calcium_Signal Calcium() # Secondary relay status + Molecules Active_PLCg2 PLCg2(s~A) # Flux driver status + Molecules Active_Relay Syk(s~A) # Initiator kinase status + Molecules Effector_Load PLCg2(s~A) # Metabolic trigger level + Molecules Negative_Brake SHP1(b!+) # Feedback intensity + Molecules Sync_Antigen Antigen(b!+) # Engagement metrics +end observables + +begin functions + # Sharp calcium flux (Hill kinetics) + v_ca() = k_ca_max * (Active_PLCg2^n_hill) / (Km_ca^n_hill + Active_PLCg2^n_hill) +end functions + +begin reaction rules + ## ACTIVATION PHASE + # Antigen binds BCR and triggers ITAM phos (Syk platform) + BCR(b) + Antigen(b) <-> BCR(b!1).Antigen(b!1) k_bind_ag,0.1 + BCR(Y~U,b!+) -> BCR(Y~P,b!+) k_lyn_phos + + # p-BCR recruits and activates Syk + BCR(Y~P) + Syk(s~U) -> BCR(Y~P) + Syk(s~A) k_syk_act + + ## EFFECTOR PHASE + # Syk activates PLCgamma2 + Syk(s~A) + PLCg2(s~U) -> Syk(s~A) + PLCg2(s~A) k_plcg_act + + # PLCg2 triggers Calcium flux (Functional Rate) + 0 -> Calcium() v_ca() + + ## NEGATIVE FEEDBACK + # CD22 gets phosphorylated (Slow) + CD22(Y~U) -> CD22(Y~P) 0.1 + + # p-CD22 recruits SHP-1 + CD22(Y~P) + SHP1(b) <-> CD22(Y~P!1).SHP1(b!1) k_shp_rec,0.2 + + # SHP-1 dephosphorylates BCR ITAM (Brake) + SHP1(b!+) + BCR(Y~P) -> SHP1(b!+) + BCR(Y~U) k_dephos_bcr + + ## CLEARANCE + # DeleteMolecules: Clear signaled receptors + BCR(b!1).Antigen(b!1) -> 0 k_endo DeleteMolecules + + ## RESET + Calcium() -> 0 0.2 # Calcium pumps + Syk(s~A) -> Syk(s~U) 0.1 + PLCg2(s~A) -> PLCg2(s~U) 0.1 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>80,n_steps=>160}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/bcrsignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/bcrsignaling/metadata.yaml new file mode 100644 index 00000000..ff9f2856 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/bcrsignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "bcr-signaling" +name: "bcr signaling" +description: "BCR signaling: The B-cell antigen receptor cascade." +contributors: + - name: "Achyudhan" +tags: ["bcr", "signaling", "antigen", "syk", "plcg2", "cd22", "shp1", "calcium"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/bcr-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/betaadrenergicresponse/README.md b/Contributed/BNGPlayground_Examples/biology/betaadrenergicresponse/README.md new file mode 100644 index 00000000..f9a3a8c6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/betaadrenergicresponse/README.md @@ -0,0 +1,22 @@ +# beta adrenergic response + +Beta-adrenergic signaling: GPCR pathway and desensitization. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- beta-adrenergic-response.bngl + +## Tags + +beta, adrenergic, response, epi, betar, gs, ac, arr, camp diff --git a/Contributed/BNGPlayground_Examples/biology/betaadrenergicresponse/beta-adrenergic-response.bngl b/Contributed/BNGPlayground_Examples/biology/betaadrenergicresponse/beta-adrenergic-response.bngl new file mode 100644 index 00000000..f6f78339 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/betaadrenergicresponse/beta-adrenergic-response.bngl @@ -0,0 +1,109 @@ +begin model +begin parameters + # Beta-adrenergic signaling: GPCR pathway and desensitization. + # Advanced features: MoveConnected and Hill-like cAMP drive. + + # Activation + k_bind_epi 1e-3 # Epinephrine binding + k_g_act 2.0 # Gs activation (GEF) + k_ac_act 1.5 # AC activation + + # cAMP Dynamics + k_camp_max 20.0 # Peak cAMP rate + Km_camp 200 # Structural constraint + n_hill 2.0 # Cooperativity in cyclase activation + + # Desensitization (GRK/Arrestin) + k_grk_phos 0.5 # Occupancy-dependent phosphorylation + k_arr_bind 2.0 # Arrestin binding to pR + k_internal 0.8 # Complex sequestration + + # Recovery + k_reset 0.1 # Dephosphorylation + k_pde_deg 0.2 # cAMP degradation + k_recycle 0.05 # Receptor return + + # Initials + BetaR_tot 500 + Gs_tot 800 + AC_tot 100 + Arr_tot 200 + cAMP_init 0 +end parameters + +begin molecule types + Epi(r) + BetaR(l,g,s~U~P,loc~cyt~mem) + Gs(r,s~GDP~GTP) + AC(g,s~off~on) + Arr(b) + cAMP() +end molecule types + +begin seed species + Epi(r) 0 + BetaR(l,g,s~U,loc~mem) BetaR_tot + Gs(r,s~GDP) Gs_tot + AC(g,s~off) AC_tot + Arr(b) Arr_tot + cAMP() cAMP_init +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Signal_Peak cAMP() # Secondary messenger readout + Molecules Active_GS Gs(s~GTP) # Relay driver intensity + Molecules Surface_Availability BetaR(loc~mem) # Receptor density + Molecules Desensitized_Frac BetaR(s~P) # Inhibition status + Molecules Sequest_Complex BetaR(s!1).Arr(b!1) # Arrestin-bound metrics + Molecules Active_AC AC(s~on) # Cyclase status +end observables + +begin functions + # Hill-like cAMP production from active Adenylyl Cyclase + v_camp() = k_camp_max * (Active_AC^n_hill) / (Km_camp^n_hill + Active_AC^n_hill) +end functions + +begin reaction rules + ## RECEPTION & G-PROTEIN COUPLING + # Epinephrine binds BetaR + Epi(r) + BetaR(l) <-> Epi(r!1).BetaR(l!1) k_bind_epi,0.1 + + # Bound BetaR activates Gs (Exchange) + # MoveConnected: Gs moves between states while complexed (Simplified) + BetaR(l!+,g) + Gs(r,s~GDP) -> BetaR(l!+,g) + Gs(r,s~GTP) k_g_act + + ## CYCLASE ACTIVATION + # Active Gs activates AC + Gs(s~GTP) + AC(s~off) -> Gs(s~GTP) + AC(s~on) k_ac_act + + # AC produces cAMP (Functional Rate) + 0 -> cAMP() v_camp() + + ## DESENSITIZATION + # Ligand-bound BetaR is phosphorylated by GRK + BetaR(l!+,s~U) -> BetaR(l!+,s~P) k_grk_phos + + # p-BetaR recruits Arrestin (Blocks G-protein access) + BetaR(s~P,g) + Arr(b) <-> BetaR(s~P!1,g).Arr(b!1) k_arr_bind,0.2 + + # Internalisation (Spatial move) + BetaR(loc~mem,s~P!1).Arr(b!1) -> BetaR(loc~cyt,s~P!1).Arr(b!1) k_internal + + ## RECOVERY + cAMP() -> 0 k_pde_deg + Gs(s~GTP) -> Gs(s~GDP) 0.5 + AC(s~on) -> AC(s~off) 0.2 + BetaR(l,g,loc~cyt) -> BetaR(l,g,loc~mem,s~U) k_recycle + BetaR(s~P) -> BetaR(s~U) k_reset +end reaction rules + +begin actions + generate_network({overwrite=>1}) + + # Simple stimulatory simulation for parity + setConcentration("Epi(r)", 100) + simulate({method=>"ode",t_end=>200,n_steps=>200}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/betaadrenergicresponse/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/betaadrenergicresponse/metadata.yaml new file mode 100644 index 00000000..74619187 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/betaadrenergicresponse/metadata.yaml @@ -0,0 +1,24 @@ +id: "beta-adrenergic-response" +name: "beta adrenergic response" +description: "Beta-adrenergic signaling: GPCR pathway and desensitization." +contributors: + - name: "Achyudhan" +tags: ["beta", "adrenergic", "response", "epi", "betar", "gs", "ac", "arr", "camp"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/beta-adrenergic-response.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/bistabletoggleswitch/README.md b/Contributed/BNGPlayground_Examples/biology/bistabletoggleswitch/README.md new file mode 100644 index 00000000..9cdf6ad9 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/bistabletoggleswitch/README.md @@ -0,0 +1,22 @@ +# bistable toggle switch + +Genetic Toggle Switch: Mutual repression circuit. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- bistable-toggle-switch.bngl + +## Tags + +bistable, toggle, switch, proml, promr, tf_l, tf_r, ind_l, ind_r diff --git a/Contributed/BNGPlayground_Examples/biology/bistabletoggleswitch/bistable-toggle-switch.bngl b/Contributed/BNGPlayground_Examples/biology/bistabletoggleswitch/bistable-toggle-switch.bngl new file mode 100644 index 00000000..ca4edf24 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/bistabletoggleswitch/bistable-toggle-switch.bngl @@ -0,0 +1,110 @@ +begin model +begin parameters + # Genetic Toggle Switch: Mutual repression circuit. + # Advanced features: if function for switching and exclusion logic. + + # Production + k_synth_low 0.2 # Basal leakiness + k_synth_high 8.0 # Full expression + + # Repression (Hill-like explicitly) + k_bind_dna 1.0 # TF binding to promoter + k_unbind_dna 0.1 + + # Stability + k_deg 0.08 # Protein turnover + + # Switching (Inducers) + k_ind_bind 2.0 # Inducer sequesters TF + k_ind_off 0.2 + + # Thresholds + Ind_switch 200 # Pulse level + k_ind_L_synth 0.1 # Current Ind_L synthesis rate + k_ind_R_synth 0.1 # Current Ind_R synthesis rate +end parameters + +begin molecule types + PromL(s~on~off) + PromR(s~on~off) + TF_L(b,i) # Left TF (Represses Right) + TF_R(b,i) # Right TF (Represses Left) + Ind_L(b) # Turns ON Right side by removing L + Ind_R(b) # Turns ON Left side by removing R +end molecule types + +begin seed species + PromL(s~on) 1 + PromR(s~on) 1 + TF_L(b,i) 0 + TF_R(b,i) 50 # Start biased to "R high" + Ind_L(b) 0 + Ind_R(b) 0 +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules State_L_Level TF_L() # System state A + Molecules State_R_Level TF_R() # System state B + Molecules Active_Prom_L PromL(s~on) # Promoter status A + Molecules Active_Prom_R PromR(s~on) # Promoter status B + Molecules Locked_TF_L TF_L(i!+) # Neutralized factor +end observables + +begin functions + v_ind_L() = k_ind_L_synth + v_ind_R() = k_ind_R_synth +end functions + +begin reaction rules + ## PRODUCTION + # Mutual exclusion: Left produces TF_L (which will inhibit Right) + PromL(s~on) -> PromL(s~on) + TF_L(b,i) k_synth_high + PromL(s~off) -> PromL(s~off) + TF_L(b,i) k_synth_low + + # Right produces TF_R (which will inhibit Left) + PromR(s~on) -> PromR(s~on) + TF_R(b,i) k_synth_high + PromR(s~off) -> PromR(s~off) + TF_R(b,i) k_synth_low + + ## REPRESSION LOGIC (The Mutual Inhibition) + # TF_L represses PromR + # exclude_reactants: Only free TF_L (not inducer-bound) can repress + TF_L(b,i) + PromR(s~on) <-> TF_L(b!1,i).PromR(s~off!1) k_bind_dna,k_unbind_dna + + # TF_R represses PromL + TF_R(b,i) + PromL(s~on) <-> TF_R(b!1,i).PromL(s~off!1) k_bind_dna,k_unbind_dna + + ## INDUCTION (External Control) + # Pulses of inducer sequester local TFs + 0 -> Ind_L(b) v_ind_L() + Ind_L(b) + TF_L(i) <-> Ind_L(b!1).TF_L(i!1) k_ind_bind,k_ind_off + + 0 -> Ind_R(b) v_ind_R() + Ind_R(b) + TF_R(i) <-> Ind_R(b!1).TF_R(i!1) k_ind_bind,k_ind_off + + ## RESET + TF_L() -> 0 k_deg + TF_R() -> 0 k_deg + Ind_L(b) -> 0 0.5 + Ind_R(b) -> 0 0.5 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + # Phase 1: Basal (0-100) + simulate({method=>"ode",t_end=>100,n_steps=>100}) + # Phase 2: Pulse L begins (100-120) + setParameter("k_ind_L_synth",200) + simulate({continue=>1,method=>"ode",t_end=>120,n_steps=>20,continue=>1}) + # Phase 3: Intermediate (120-160) - Truncated at Steady State + setParameter("k_ind_L_synth",0.1) + simulate({continue=>1,method=>"ode",t_end=>160,n_steps=>40,continue=>1}) + # Phase 4: Pulse R begins (160-180) + setParameter("k_ind_R_synth",200) + simulate({continue=>1,method=>"ode",t_end=>180,n_steps=>20,continue=>1}) + # Phase 5: Final Recovery (180-260) - Truncated at Steady State + setParameter("k_ind_R_synth",0.1) + simulate({continue=>1,method=>"ode",t_end=>260,n_steps=>80,continue=>1}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/bistabletoggleswitch/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/bistabletoggleswitch/metadata.yaml new file mode 100644 index 00000000..b02f01a6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/bistabletoggleswitch/metadata.yaml @@ -0,0 +1,24 @@ +id: "bistable-toggle-switch" +name: "bistable toggle switch" +description: "Genetic Toggle Switch: Mutual repression circuit." +contributors: + - name: "Achyudhan" +tags: ["bistable", "toggle", "switch", "proml", "promr", "tf_l", "tf_r", "ind_l", "ind_r"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/bistable-toggle-switch.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/bloodcoagulationthrombin/README.md b/Contributed/BNGPlayground_Examples/biology/bloodcoagulationthrombin/README.md new file mode 100644 index 00000000..fa4ff427 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/bloodcoagulationthrombin/README.md @@ -0,0 +1,22 @@ +# blood coagulation thrombin + +Blood coagulation: Thrombin burst and feedback propagation. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- blood-coagulation-thrombin.bngl + +## Tags + +blood, coagulation, thrombin, tf, factorx, factorv, prothrombin, fibrinogen, at diff --git a/Contributed/BNGPlayground_Examples/biology/bloodcoagulationthrombin/blood-coagulation-thrombin.bngl b/Contributed/BNGPlayground_Examples/biology/bloodcoagulationthrombin/blood-coagulation-thrombin.bngl new file mode 100644 index 00000000..f228e348 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/bloodcoagulationthrombin/blood-coagulation-thrombin.bngl @@ -0,0 +1,102 @@ +begin model +begin parameters + # Blood coagulation: Thrombin burst and feedback propagation. + # Advanced features: TotalRate for clotting and DeleteMolecules for inhibition. + + # Initiation (Tissue Factor Pathway) + k_tf_vii 0.1 # Tissue Factor + FVIIa + k_xa_act 1.0 # Initial Xa generation + + # Amplification Loop (Thrombin Burst) + k_v_act 1.2 # Thrombin activates FV + k_viii_act 1.0 # Thrombin activates FVIII + k_complex_va_xa 5.0 # Prothrombinase assembly + k_pt_burst 50.0 # Efficient Thrombin generation by complex + + # Fibrin Formation + k_fibrin_synth 2.0 # Thrombin converts Fibrinogen + Km_clot 500 # Surface limit + + # Anticoagulation (Neutralization) + k_at_inh 1.5 # Antithrombin-III neutralizing factors + k_tpi_inh 1.0 # TFPI inhibition + k_deg_complex 10.0 # Rapid removal of inhibited complexes + + # Initials + Prothrom_tot 1200 + Fibrino_tot 2000 + FactorX_tot 100 + FactorV_tot 50 + ATIII_tot 300 + TF_sites 20 # Vascular injury signal +end parameters + +begin molecule types + TF(b,s~active) + FactorX(b,s~U~A) + FactorV(b,s~U~A) + Prothrombin(s~U~A) + Thrombin(s~U~A) + Fibrinogen(s~S~F) # Soluble vs Fibrin + AT(b) # Antithrombin +end molecule types + +begin seed species + TF(b,s~active) TF_sites + FactorX(b,s~U) FactorX_tot + FactorV(b,s~U) FactorV_tot + Prothrombin(s~U) Prothrom_tot + Fibrinogen(s~S) Fibrino_tot + AT(b) ATIII_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Clot_Mass Fibrinogen(s~F) # Final functional output + Molecules Active_Thrombin Thrombin(s~A) # Feedback driver + Molecules Proth_Complex FactorX(b!1).FactorV(b!1) # Assembly platform + Molecules Feedback_Factors FactorV(s~A) # Priming status + Molecules Inhibitor_Work AT(b!+) # Clearance efficiency +end observables + +begin reaction rules + ## INITIATION Phase + # Tissue Factor activates Factor X + TF(s~active) + FactorX(s~U) -> TF(s~active) + FactorX(s~A) k_xa_act + + ## AMPLIFICATION Phase (Thrombin Burst) + # Initial Xa produces some Thrombin + FactorX(s~A) + Prothrombin(s~U) -> FactorX(s~A) + Thrombin(s~A) 0.5 + + # Feedback: Thrombin activates Factor V and VIII (Amplification) + Thrombin(s~A) + FactorV(s~U) -> Thrombin(s~A) + FactorV(s~A) k_v_act + FactorX(s~A) + FactorV(s~U) -> FactorX(s~A) + FactorV(s~A) k_v_act # Added starter_act + + # Va and Xa form Prothrombinase complex + FactorV(s~A,b) + FactorX(s~A,b) <-> FactorV(s~A,b!1).FactorX(s~A,b!1) k_complex_va_xa,0.5 + + # Burst: Prothrombinase produces Thrombin rapidly + FactorV(s~A,b!1).FactorX(s~A,b!1) + Prothrombin(s~U) -> FactorV(s~A,b!1).FactorX(s~A,b!1) + Thrombin(s~A) k_pt_burst + + ## PROPAGATION Phase + # Thrombin converts Fibrinogen to Fibrin (TotalRate: aggregate-dependent) + # Wildcard: Enabled if thrombin is active (!?) + Fibrinogen(s~S) -> Fibrinogen(s~F) k_fibrin_synth * (Active_Thrombin/(Km_clot + Active_Thrombin)) TotalRate + + ## TERMINATION Phase (Inhibition) + # Antithrombin neutralizing active Thrombin + # Replaced DeleteMolecules with complex formation to track Inhibitor_Work + Thrombin(s~A) + AT(b) -> Thrombin(s~A!1).AT(b!1) k_at_inh + Thrombin(s~A!1).AT(b!1) -> 0 k_deg_complex + + # Factor clearing + FactorX(s~A) -> FactorX(s~U) 0.01 + FactorV(s~A) -> FactorV(s~U) 0.01 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>20,n_steps=>200}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/bloodcoagulationthrombin/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/bloodcoagulationthrombin/metadata.yaml new file mode 100644 index 00000000..8f270650 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/bloodcoagulationthrombin/metadata.yaml @@ -0,0 +1,24 @@ +id: "blood-coagulation-thrombin" +name: "blood coagulation thrombin" +description: "Blood coagulation: Thrombin burst and feedback propagation." +contributors: + - name: "Achyudhan" +tags: ["blood", "coagulation", "thrombin", "tf", "factorx", "factorv", "prothrombin", "fibrinogen", "at"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/blood-coagulation-thrombin.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/bmpsignaling/README.md b/Contributed/BNGPlayground_Examples/biology/bmpsignaling/README.md new file mode 100644 index 00000000..2802be79 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/bmpsignaling/README.md @@ -0,0 +1,22 @@ +# bmp signaling + +BMP-Smad signaling: Developmental gradient relay. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- bmp-signaling.bngl + +## Tags + +bmp, signaling, noggin, receptor1, receptor2, smad1, smad4, smad6 diff --git a/Contributed/BNGPlayground_Examples/biology/bmpsignaling/bmp-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/bmpsignaling/bmp-signaling.bngl new file mode 100644 index 00000000..fd2d3e78 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/bmpsignaling/bmp-signaling.bngl @@ -0,0 +1,106 @@ +begin model +begin parameters + # BMP-Smad signaling: Developmental gradient relay. + # Advanced features: exclude_reactants for Smad6 inhibitor logic. + + # Extracellular Gating + k_noggin_bind 1e-3 # Noggin sequesters BMP (Sink) + k_bmp_bind 1.0 # BMP binds Type II R + + # Receptor Assembly + k_complex 2.0 # Assembly of Type II and Type I + k_smad_phos 3.0 # Phosphorylation of R-Smad (Smad1/5/8) + + # Feedback & Regulation + k_smad6_inh 5.0 # Smad6 inhibits Smad1 recruitment + k_smad6_synth 0.5 # Nuclear signal induces Smad6 + + # Transport + k_import 1.0 # pSmad-Smad4 complex entry + k_export 0.2 + + # Initials + BMP_tot 100 + Noggin_init 50 + R1_tot 150 + R2_tot 150 + Smad1_tot 500 + Smad4_tot 300 + Smad6_init 10 +end parameters + +begin molecule types + BMP(r1,r2,b) + Noggin(b) + Receptor1(l,s~U~P) + Receptor2(l,r,s~U~A) + Smad1(r,s~U~P,loc~cyt~nuc) + Smad4(b,loc~cyt~nuc) + Smad6(b) +end molecule types + +begin seed species + BMP(r1,r2,b) BMP_tot + Noggin(b) Noggin_init + Receptor1(l,s~U) R1_tot + Receptor2(l,r,s~U) R2_tot + Smad1(r,s~U,loc~cyt) Smad1_tot + Smad4(b,loc~cyt) Smad4_tot + Smad6(b) Smad6_init +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules SMAD_Output Smad1(loc~nuc) # Transcription pool + Molecules Active_Nuclear_Smad1 Smad1(loc~nuc,s~P) # Feedback drive status + Molecules Surface_Engage Receptor2(s~A) # Active complex metrics + Molecules Noggin_Sink BMP(b!+) # Sequestration status + Molecules Feedback_Brake Smad6() # Inhibitor levels + Molecules Signal_Complex Smad1(s~P!1).Smad4(b!1) # Functional relay +end observables + +begin functions + # Saturable Smad6 synthesis based on nuclear signal + v_feedback() = k_smad6_synth * (Active_Nuclear_Smad1 / (100 + Active_Nuclear_Smad1)) +end functions + +begin reaction rules + ## EXTRACELLULAR GATING + # Noggin sequesters BMP ligand + BMP(r1,r2,b) + Noggin(b) <-> BMP(r1,r2,b!1).Noggin(b!1) k_noggin_bind,0.05 + + ## RECEPTION + # BMP binds Type II R,then recruits Type I + BMP(r2,b) + Receptor2(l,s~U) <-> BMP(r2!1,b).Receptor2(l!1,s~A) k_bmp_bind,0.1 + Receptor2(l!+,r,s~A) + Receptor1(l,s~U) <-> Receptor2(l!+,r!1,s~A).Receptor1(l!1,s~P) k_complex,0.1 + + ## SIGNAL RELAY + # Active complex phosphorylates Smad1 + # exclude_reactants: Smad1 cannot be phosphorylated if Smad6 is present (Simplified) + Receptor1(s~P) + Smad1(r,s~U) -> Receptor1(s~P) + Smad1(r,s~P) k_smad_phos + + # Inhibitor Smad6 interferes (Sequestration of Smad1) + Smad6(b) + Smad1(r,s~U) <-> Smad6(b!1).Smad1(r!1,s~U) k_smad6_inh,0.2 + + ## TRANSPORT + # pSmad1 dimerizes and translocates + Smad1(s~P,loc~cyt) + Smad4(b,loc~cyt) <-> Smad1(s~P!1,loc~cyt).Smad4(b!1,loc~cyt) 2.0,0.1 + Smad1(loc~cyt,s~U)!+ -> Smad1(loc~nuc,s~U)!+ k_import + + ## FEEDBACK INDUCTION + # Nuclear factor induces Smad6 + Smad1(loc~nuc,s~P) -> Smad1(loc~nuc,s~P) + Smad6(b) v_feedback() + + ## RESET + Smad1(r,loc~nuc,s~P) -> Smad1(r,loc~cyt,s~U) 0.1 + Smad1(loc~nuc) -> Smad1(loc~cyt) k_export + Smad6() -> 0 0.05 + Receptor1(s~P) -> Receptor1(s~U) 0.05 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>200,n_steps=>400}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/bmpsignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/bmpsignaling/metadata.yaml new file mode 100644 index 00000000..b643dc89 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/bmpsignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "bmp-signaling" +name: "bmp signaling" +description: "BMP-Smad signaling: Developmental gradient relay." +contributors: + - name: "Achyudhan" +tags: ["bmp", "signaling", "noggin", "receptor1", "receptor2", "smad1", "smad4", "smad6"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/bmp-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/brusselatoroscillator/README.md b/Contributed/BNGPlayground_Examples/biology/brusselatoroscillator/README.md new file mode 100644 index 00000000..afe84f5e --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/brusselatoroscillator/README.md @@ -0,0 +1,22 @@ +# brusselator oscillator + +The Brusselator: Auto-catalytic chemical oscillator. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- brusselator-oscillator.bngl + +## Tags + +brusselator, oscillator, a, b, x, y diff --git a/Contributed/BNGPlayground_Examples/biology/brusselatoroscillator/brusselator-oscillator.bngl b/Contributed/BNGPlayground_Examples/biology/brusselatoroscillator/brusselator-oscillator.bngl new file mode 100644 index 00000000..369cc25c --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/brusselatoroscillator/brusselator-oscillator.bngl @@ -0,0 +1,95 @@ +begin model +begin parameters + # The Brusselator: Auto-catalytic chemical oscillator. + # Advanced features: Saturable kinetics and if function for phase control. + + # Supply and Decay (Saturable/Michaelis-Menten) + v_supply_max 2.0 # Max input of A + Km_a 0.5 # Reservoir threshold + k_decay_max 1.5 # Max output of X + Km_x 1.2 # Exit threshold + + # Oscillation Drive + k_cross 3.0 # B + X -> Y + k_auto 1.0 # 2X + Y -> 3X (The Positive Feedback) + + # Environmental Control + k_temp_mod 1.0 # Base temp effect + v_temp_current 2.5 + A_pool 100 # Reservoir + B_drive 2.5 # Force + X_init 1.0 + Y_init 1.5 +end parameters + +begin molecule types + A() # Feedstock + B() # Driver + X() # Activator + Y() # Inhibitor/Substrate +end molecule types + +begin seed species + A() A_pool + B() B_drive + X() X_init + Y() Y_init +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Activator_X X() # Fast variable + Molecules Inhibitor_Y Y() # Slow variable + Molecules Feed_Status A() # Resource levels + Molecules Drive_Force B() # Control parameter + Molecules Ratio_XY X(),Y() # Phase space metrics + Molecules A_Level A() # Function substrate status + Molecules X_Level X() # Function substrate status +end observables + +begin functions + # Saturable supply from reservoir A + v_supply() = v_supply_max * A_Level / (Km_a + A_Level) + + # Saturable decay of activator X + v_decay() = k_decay_max * X_Level / (Km_x + X_Level) + + + v_auto() = k_auto * v_temp_current +end functions + +begin reaction rules + ## ACTIVATION (Input) + # A -> X (Input flux) + 0 -> X() v_supply() + + ## OSCILLATION Core + # B + X -> Y (Conversion to inhibitor) + B() + X() -> Y() k_cross + + # 2X + Y -> 3X (Auto-catalysis with "Temp" modulation) + # ternary rule - standard Brusselator + X() + X() + Y() -> X() + X() + X() v_auto() + + ## DECAY (Output) + # X -> 0 (Clearance) + X() -> 0 v_decay() + + # Slow resource depletion + A() -> 0 0.05 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + # Phase 1: Cool (0-20) + setParameter("v_temp_current", 2.5) + simulate({method=>"ode",t_end=>20,n_steps=>200}) + # Phase 2: Heat Pulse (20-40) + setParameter("v_temp_current", 5.0) + simulate({method=>"ode",t_end=>40,n_steps=>200,continue=>1}) + # Phase 3: Recovery (40-60) + setParameter("v_temp_current", 2.5) + simulate({method=>"ode",t_end=>60,n_steps=>200,continue=>1}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/brusselatoroscillator/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/brusselatoroscillator/metadata.yaml new file mode 100644 index 00000000..4a7e0bfc --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/brusselatoroscillator/metadata.yaml @@ -0,0 +1,24 @@ +id: "brusselator-oscillator" +name: "brusselator oscillator" +description: "The Brusselator: Auto-catalytic chemical oscillator." +contributors: + - name: "Achyudhan" +tags: ["brusselator", "oscillator", "a", "b", "x", "y"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/brusselator-oscillator.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/calcineurinnfatpathway/README.md b/Contributed/BNGPlayground_Examples/biology/calcineurinnfatpathway/README.md new file mode 100644 index 00000000..647656c8 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/calcineurinnfatpathway/README.md @@ -0,0 +1,22 @@ +# calcineurin nfat pathway + +NFAT Signaling: Calcium-dependent nuclear translocation. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- calcineurin-nfat-pathway.bngl + +## Tags + +calcineurin, nfat, pathway, ca, cam, can, rcan1 diff --git a/Contributed/BNGPlayground_Examples/biology/calcineurinnfatpathway/calcineurin-nfat-pathway.bngl b/Contributed/BNGPlayground_Examples/biology/calcineurinnfatpathway/calcineurin-nfat-pathway.bngl new file mode 100644 index 00000000..1d2f3011 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/calcineurinnfatpathway/calcineurin-nfat-pathway.bngl @@ -0,0 +1,107 @@ +begin model +begin parameters + # NFAT Signaling: Calcium-dependent nuclear translocation. + # Advanced features: MoveConnected for complex translocation and SAT feedback. + + # Activation + k_ca_flux 1.5 # Stimulation + k_cam_bind 1e-3 # CaM binding + k_can_act 1.2 # Calcineurin activation + Ca_Stim 0.5 # Basal calcium level + + # NFAT Dynamics + k_nfat_dephos 5.0 # CaN-mediated (Fast) + k_import 1.0 # Entry rate + k_export 0.2 # Basal export + + # Re-phosphorylation (Nuclear export drive) + k_dyrk_phos 0.8 # DYRK-mediated (Nuclear kinase) + k_gsk3_phos 0.5 # GSK3-mediated + + # Feedback (RCAN1) + k_rcan_synth 0.5 # NFAT-induced production + Km_rcan 150 # Saturation threshold + k_can_inh 2.0 # RCAN1 inhibits CaN + + # Initials + Ca_tot 200 + CaN_tot 100 + NFAT_tot 500 + RCAN_tot 10 + DYRK_nuc 50 +end parameters + +begin molecule types + Ca() + CaM(s~U~A) + CaN(b,s~off~on) + NFAT(b,s~U~P,loc~cyt~nuc) + RCAN1(b) +end molecule types + +begin seed species + Ca() 10 + CaM(s~U) 100 + CaN(b,s~off) CaN_tot + NFAT(b,s~P,loc~cyt) NFAT_tot + RCAN1(b) RCAN_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Nuclear_Factor NFAT(loc~nuc) # Transcription drive + Molecules Active_NFAT NFAT(loc~nuc,s~U) # Feedback drive status + Molecules Phospho_NFAT NFAT(s~P) # Inactive/Exported reservoir + Molecules Active_CaN CaN(s~on) # Phosphatase relay intensity + Molecules Feedback_Protein RCAN1() # Inhibitor levels + Molecules NFAT_CaN_Binding NFAT(b!1).CaN(b!1) # Complex formation status +end observables + +begin functions + # Saturable production of RCAN1 feedback inhibitor + v_feedback() = k_rcan_synth * (Active_NFAT / (Km_rcan + Active_NFAT)) +end functions + +begin reaction rules + ## ACTIVATION + # Calcium activates CaN (via CaM proxy) + Ca() + CaN(b,s~off) <-> Ca() + CaN(b,s~on) 1.0,0.1 + + # Active CaN binds and dephosphorylates NFAT + CaN(b,s~on) + NFAT(b,s~P,loc~cyt) <-> CaN(b!1,s~on).NFAT(b!1,s~P,loc~cyt) 2.0,0.5 + CaN(b!1,s~on).NFAT(b!1,s~P) -> CaN(b,s~on) + NFAT(b,s~U) k_nfat_dephos + + ## TRANSLOCATION + # MoveConnected: Dephosphorylated NFAT (and any bound partner) enters nucleus + NFAT(b,s~U,loc~cyt) <-> NFAT(b,s~U,loc~nuc) k_import,k_export MoveConnected + + ## NUCLEAR DYNAMICS & EXPORT + # Nuclear kinases re-phosphorylate NFAT (Export trigger) + NFAT(b,s~U,loc~nuc) -> NFAT(b,s~P,loc~nuc) k_dyrk_phos + NFAT(b,loc~nuc,s~P) -> NFAT(b,loc~cyt,s~P) 5.0 # Rapid exclusion + + ## FEEDBACK + # Nuclear NFAT induces RCAN1 (Functional Rate) + 0 -> RCAN1(b) v_feedback() + + # RCAN1 inhibits CaN + RCAN1(b) + CaN(b,s~on) <-> RCAN1(b!1).CaN(b!1,s~on) k_can_inh,0.1 + + ## RESET + Ca() -> 0 0.1 + RCAN1(b) -> 0 0.05 + 0 -> Ca() Ca_Stim +end reaction rules + +begin actions + generate_network({overwrite=>1}) + # Phase 1: Basal (0-20) + simulate({method=>"ode",t_end=>20,n_steps=>40}) + # Phase 2: Stimulus (20-80) + setParameter("Ca_Stim",5.0) + simulate({method=>"ode",t_end=>80,n_steps=>120,continue=>1}) + # Phase 3: Recovery (80-150) + setParameter("Ca_Stim",0.5) + simulate({method=>"ode",t_end=>150,n_steps=>140,continue=>1}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/calcineurinnfatpathway/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/calcineurinnfatpathway/metadata.yaml new file mode 100644 index 00000000..4043cf15 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/calcineurinnfatpathway/metadata.yaml @@ -0,0 +1,24 @@ +id: "calcineurin-nfat-pathway" +name: "calcineurin nfat pathway" +description: "NFAT Signaling: Calcium-dependent nuclear translocation." +contributors: + - name: "Achyudhan" +tags: ["calcineurin", "nfat", "pathway", "ca", "cam", "can", "rcan1"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/calcineurin-nfat-pathway.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/calciumspikesignaling/README.md b/Contributed/BNGPlayground_Examples/biology/calciumspikesignaling/README.md new file mode 100644 index 00000000..1210b3b8 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/calciumspikesignaling/README.md @@ -0,0 +1,22 @@ +# calcium spike signaling + +Calcium spikes: Oscillations driven by IP3R and CICR feedback. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- calcium-spike-signaling.bngl + +## Tags + +calcium, spike, signaling, plc, ip3, ca, stim1 diff --git a/Contributed/BNGPlayground_Examples/biology/calciumspikesignaling/calcium-spike-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/calciumspikesignaling/calcium-spike-signaling.bngl new file mode 100644 index 00000000..b713526e --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/calciumspikesignaling/calcium-spike-signaling.bngl @@ -0,0 +1,130 @@ +begin model +begin parameters + # Calcium spikes: Oscillations driven by IP3R and CICR feedback. + # Advanced features: Compartments (ER/Cytosol) and Hill kinetics. + + # Volumes (Understanding spatial scale) + + # IP3 Production (Stimulus-gated) + k_p_act 0.8 + k_ip3_synth 2.0 + k_ip3_deg 0.5 + + # ER Dynamics (Channel Gating) + k_release_basal 0.5 + k_cicr_max 10.0 # Peak CICR flux + Km_ca_back 200 # Threshold for feedback + n_hill 4.0 # Cooperative gating behavior + + # Transport & Clearance + k_serca_pump 2.0 # ER Refilling + k_pmca_extr 0.8 # Extrusion from cell + k_leaks 0.05 + + # SOCE (Store-Operated Calcium Entry) + k_soce_max 1.5 + Km_er_depletion 300 + + # STIM1 Dynamics + k_stim_fast 10.0 + STIM1_Tot 200 + + # Initials + Ca_cyt_init 50 + Ca_er_init 1200 + IP3_init 10 + v_stim_current 0.2 + + # Compartment Parameters + Vol_EC 100 + Vol_PM 1 + Vol_Cyt 10 + Vol_ERM 1 + Vol_ER 1 +end parameters + +begin compartments + EC 3 Vol_EC + PM 2 Vol_PM EC + Cyt 3 Vol_Cyt PM + ER_M 2 Vol_ERM Cyt + ER 3 Vol_ER ER_M +end compartments + +begin molecule types + PLC(s~off~on) + IP3() + Ca() + STIM1(s~off~on) +end molecule types + +begin seed species + PLC(s~off)@Cyt 100 + IP3()@Cyt IP3_init + Ca()@Cyt Ca_cyt_init + Ca()@ER Ca_er_init + STIM1(s~off)@ER_M 200 +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Spiking_Ca Ca()@Cyt # Dynamic signal + Molecules ER_Reserve Ca()@ER # Store status + Molecules IP3_Driver IP3()@Cyt # Channel opening intensity + Molecules SOCE_Sensor STIM1(s~on)@ER_M # Refilling drive + Molecules Total_Mass Ca() # Conservation metric +end observables + +begin functions + v_stim() = v_stim_current * k_ip3_synth +end functions + +begin reaction rules + ## ACTIVATION + # Stimulus triggers IP3 + 0 -> IP3()@Cyt v_stim() + IP3()@Cyt -> 0 k_ip3_deg + + ## STIM1 SENSOR DYNAMICS (Added to fix 0 observable) + # STIM1 activates when ER Ca is low, deactivates when high + # f_low_er() = Km_er_depletion / (Km_er_depletion + (ER_Reserve/Vol_ER)) + STIM1(s~off)@ER_M -> STIM1(s~on)@ER_M k_stim_fast * (Km_er_depletion / (Km_er_depletion + (ER_Reserve/Vol_ER))) + # f_high_er() = (ER_Reserve/Vol_ER) / (Km_er_depletion + (ER_Reserve/Vol_ER)) + STIM1(s~on)@ER_M -> STIM1(s~off)@ER_M k_stim_fast * ((ER_Reserve/Vol_ER) / (Km_er_depletion + (ER_Reserve/Vol_ER))) + + ## CHANNEL DYNAMICS + # IP3 facilitates release (Transport ER -> Cyt) + IP3()@Cyt + Ca()@ER -> IP3()@Cyt + Ca()@Cyt k_release_basal + + # CICR: Cytosolic Ca triggers more release (Functional Plate) + Ca()@ER -> Ca()@Cyt k_cicr_max * (Spiking_Ca / Vol_Cyt)^n_hill / (Km_ca_back^n_hill + (Spiking_Ca / Vol_Cyt)^n_hill) + + ## RECOVERY & ENTRY + # SERCA Pump (ER Refilling: Cyt -> ER) + Ca()@Cyt -> Ca()@ER k_serca_pump + + # SOCE: Entry from extracellular (proxied as creation in cyt) + # Original: v_soce() = k_soce_max * (Km_er_depletion / (Km_er_depletion + (ER_Reserve / Vol_ER))) + 0 -> Ca()@Cyt k_soce_max * (SOCE_Sensor / STIM1_Tot) + + # PMCA: Extrusion (Clearance from system) + Ca()@Cyt -> 0 k_pmca_extr + + ## RESET + # Leak from ER to Cyt + Ca()@ER -> Ca()@Cyt k_leaks +end reaction rules + +begin actions + generate_network({overwrite=>1}) + # Phase 1: Basal + setParameter("v_stim_current",0.2) + simulate({method=>"ode",t_end=>100,n_steps=>200}) + # Phase 2: High Stimulus + setParameter("v_stim_current",5.0) + simulate({method=>"ode",t_end=>120,n_steps=>200,continue=>1,suffix=>"2"}) + # Phase 3: Recovery + setParameter("v_stim_current",0.2) + simulate({method=>"ode",t_end=>1000,n_steps=>200,continue=>1,suffix=>"3"}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/calciumspikesignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/calciumspikesignaling/metadata.yaml new file mode 100644 index 00000000..7224be7d --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/calciumspikesignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "calcium-spike-signaling" +name: "calcium spike signaling" +description: "Calcium spikes: Oscillations driven by IP3R and CICR feedback." +contributors: + - name: "Achyudhan" +tags: ["calcium", "spike", "signaling", "plc", "ip3", "ca", "stim1"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/calcium-spike-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/caspaseactivationloop/README.md b/Contributed/BNGPlayground_Examples/biology/caspaseactivationloop/README.md new file mode 100644 index 00000000..5f34510a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/caspaseactivationloop/README.md @@ -0,0 +1,22 @@ +# caspase activation loop + +Caspase activation loop: The executioner feedback system. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- caspase-activation-loop.bngl + +## Tags + +caspase, activation, loop, deathligand, caspase8, caspase3, iap, flip diff --git a/Contributed/BNGPlayground_Examples/biology/caspaseactivationloop/caspase-activation-loop.bngl b/Contributed/BNGPlayground_Examples/biology/caspaseactivationloop/caspase-activation-loop.bngl new file mode 100644 index 00000000..32f78176 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/caspaseactivationloop/caspase-activation-loop.bngl @@ -0,0 +1,92 @@ +begin model +begin parameters + # Caspase activation loop: The executioner feedback system. + # Advanced features: Hill kinetics for activation threshold and wildcards (!?). + + # Initiation + k_ligand 0.8 # Input drive + k_c8_act 1.2 # Initiator trigger + + # Thresholding (Switching behavior) + k_c3_max 5.0 # Max effector activation + Km_c8 200 # Threshold of C8 for C3 + n_hill 3.0 # Cooperative response + + # Feedback + k_fb_loop 1.5 # C3 -> C8 amplification + + # Inhibition (Life signals) + k_iap_bind 5.0 # XIAP neutralization + k_flip_inh 2.0 # c-FLIP inhibits C8 (Competitive) + + # Reset + k_degrade 0.1 # Clearance + + # Initials + C8_tot 500 + C3_tot 1000 + IAP_tot 400 + FLIP_tot 200 +end parameters + +begin molecule types + DeathLigand() + Caspase8(b,s~U~A) + Caspase3(b,s~U~A) + IAP(b) + FLIP(b) +end molecule types + +begin seed species + DeathLigand() 10 + Caspase8(b,s~U) C8_tot + Caspase3(b,s~U) C3_tot + IAP(b) IAP_tot + FLIP(b) FLIP_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + # Molecules Effector_Pore Mitochondria(s~open) # Commitment marker (Removed: Not in rules) + Molecules Active_Caspase8 Caspase8(s~A) # Feedback driver status + Molecules XIAP_Brake Caspase3(b!1).IAP(b!1) # Inhibition status + Molecules Flip_Inhibited Caspase8(b!1).FLIP(b!1) # Competitive blockade + Molecules Total_Execution Caspase3(s~A!?) # Aggregated execution pool +end observables + +begin functions + # Sharp switch for effector activation + v_trigger() = k_c3_max * (Active_Caspase8^n_hill) / (Km_c8^n_hill + Active_Caspase8^n_hill) +end functions + +begin reaction rules + ## INITIATION + # Ligand triggers C8 + DeathLigand() + Caspase8(s~U) -> DeathLigand() + Caspase8(s~A) k_ligand + + # c-FLIP competes for C8 activation (Inhibition) + FLIP(b) + Caspase8(b,s~U) <-> FLIP(b!1).Caspase8(b!1,s~U) k_flip_inh,0.5 + + ## EFFECTOR PHASE + # C8 activates C3 (Functional Rate - Hill) + Caspase3(s~U) -> Caspase3(s~A) v_trigger() + + ## FEEDBACK LOOP + # C3 amplifies C8 activation + Caspase3(s~A) + Caspase8(s~U) -> Caspase3(s~A) + Caspase8(s~A) k_fb_loop + + ## REGULATION + # XIAP inhibits active C3 (Wildcard !? for any partner) + Caspase3(s~A,b) + IAP(b) <-> Caspase3(s~A,b!1).IAP(b!1) k_iap_bind,0.1 + + ## RESET + Caspase3(s~A) -> Caspase3(s~U) k_degrade + Caspase8(s~A) -> Caspase8(s~U) k_degrade + DeathLigand() -> 0 0.05 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>80,n_steps=>200}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/caspaseactivationloop/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/caspaseactivationloop/metadata.yaml new file mode 100644 index 00000000..fa898543 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/caspaseactivationloop/metadata.yaml @@ -0,0 +1,24 @@ +id: "caspase-activation-loop" +name: "caspase activation loop" +description: "Caspase activation loop: The executioner feedback system." +contributors: + - name: "Achyudhan" +tags: ["caspase", "activation", "loop", "deathligand", "caspase8", "caspase3", "iap", "flip"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/caspase-activation-loop.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/cd40signaling/README.md b/Contributed/BNGPlayground_Examples/biology/cd40signaling/README.md new file mode 100644 index 00000000..596748aa --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/cd40signaling/README.md @@ -0,0 +1,22 @@ +# cd40 signaling + +CD40 Signaling: B-cell activation and TRAF-mediated relay. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- cd40-signaling.bngl + +## Tags + +cd40, signaling, cd40l, traf, ikk, nik, nfkb, relb diff --git a/Contributed/BNGPlayground_Examples/biology/cd40signaling/cd40-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/cd40signaling/cd40-signaling.bngl new file mode 100644 index 00000000..cd89e574 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/cd40signaling/cd40-signaling.bngl @@ -0,0 +1,99 @@ +begin model +begin parameters + # CD40 Signaling: B-cell activation and TRAF-mediated relay. + # Advanced features: TotalRate for IKK assembly and DeleteMolecules clearance. + + # Recognition + k_bind_l 1e-3 # CD40L binding + k_traf_rec 1.2 # TRAF recruitment + + # Canonical Pathway (IKK) + k_ikk_synth 1.0 # IKK complex assembly + k_nfkb_trigger 2.0 # Nuclear translocation + + # Non-canonical Pathway (NIK) + k_nik_stab 0.8 # NIK stabilization (triggered by CD40) + k_p100_proc 1.5 # NIK-mediated p100 processing + + # Regulation & Clearance + k_traf_deg 2.5 # Activated TRAF degradation (Feedback) + k_reset 0.1 # Basal recovery + + # Initials + CD40_tot 500 + CD40L_tot 100 + TRAF_tot 300 + IKK_pool 200 + NFkB_tot 120 + NIK_basal 10 + RELB_tot 100 +end parameters + +begin molecule types + CD40(l,t) + CD40L(r) + TRAF(b,s~U~A) + IKK(s~off~on) + NIK(s~U~S) # Unstable vs Stable + NFkB(loc~cyt~nuc) + RelB(loc~cyt~nuc) # Non-canonical effector +end molecule types + +begin seed species + CD40(l,t) CD40_tot + CD40L(r) CD40L_tot + TRAF(b,s~U) TRAF_tot + IKK(s~off) IKK_pool + NFkB(loc~cyt) NFkB_tot + NIK(s~U) NIK_basal + RelB(loc~cyt) RELB_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Canonical_NFB NFkB(loc~nuc) # Fast inflammatory relay + Molecules NonCanonical_NFB RelB(loc~nuc) # Sustained developmental relay + Molecules Active_IKK IKK(s~on) # Kinase status + Molecules NIK_Stabilized NIK(s~S) # Regulatory node + Molecules TRAF_Sequest CD40(t!1).TRAF(b!1) # Surface engagement +end observables + +begin reaction rules + ## RECEPTION Phase + # CD40-CD40L binding + CD40(l) + CD40L(r) <-> CD40(l!1).CD40L(r!1) k_bind_l,0.1 + + # TRAF recruitment + CD40(l!1,t).CD40L(r!1) + TRAF(b,s~U) <-> CD40(l!1,t!2).CD40L(r!1).TRAF(b!2,s~U) k_traf_rec,0.1 + + ## CANONICAL SIGNALING (IKK) + # CD40-TRAF complex drives IKK assembly (TotalRate: drive-dependent) + CD40(t!1).TRAF(b!1) + IKK(s~off) -> CD40(t!1).TRAF(b!1) + IKK(s~on) k_ikk_synth TotalRate + + # IKK triggers NFkB import + IKK(s~on) + NFkB(loc~cyt) -> IKK(s~on) + NFkB(loc~nuc) k_nfkb_trigger + + ## NON-CANONICAL SIGNALING (NIK) + # CD40 activation stabilizes NIK + CD40(l!+) + NIK(s~U) -> CD40(l!+) + NIK(s~S) k_nik_stab + + # Stable NIK triggers RelB import + NIK(s~S) + RelB(loc~cyt) -> NIK(s~S) + RelB(loc~nuc) k_p100_proc + + ## REGULATION Phase (Clearance) + # DeleteMolecules: Degrade signaling TRAF to terminate signal + CD40(l!?,t!1).TRAF(b!1,s~U) -> CD40(l,t) k_traf_deg DeleteMolecules + + # Basal reset + NFkB(loc~nuc) -> NFkB(loc~cyt) k_reset + RelB(loc~nuc) -> RelB(loc~cyt) k_reset + NIK(s~S) -> NIK(s~U) 0.5 + IKK(s~on) -> IKK(s~off) 0.2 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>150,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/cd40signaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/cd40signaling/metadata.yaml new file mode 100644 index 00000000..7b2144a8 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/cd40signaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "cd40-signaling" +name: "cd40 signaling" +description: "CD40 Signaling: B-cell activation and TRAF-mediated relay." +contributors: + - name: "Achyudhan" +tags: ["cd40", "signaling", "cd40l", "traf", "ikk", "nik", "nfkb", "relb"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/cd40-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/cellcyclecheckpoint/README.md b/Contributed/BNGPlayground_Examples/biology/cellcyclecheckpoint/README.md new file mode 100644 index 00000000..8a9719b3 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/cellcyclecheckpoint/README.md @@ -0,0 +1,22 @@ +# cell cycle checkpoint + +Cell cycle checkpoint: Mitotic entry switch (CDK1). + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- cell-cycle-checkpoint.bngl + +## Tags + +cell, cycle, checkpoint, cyclin, cdk, cdc25, wee1, apc, p21 diff --git a/Contributed/BNGPlayground_Examples/biology/cellcyclecheckpoint/cell-cycle-checkpoint.bngl b/Contributed/BNGPlayground_Examples/biology/cellcyclecheckpoint/cell-cycle-checkpoint.bngl new file mode 100644 index 00000000..bf446159 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/cellcyclecheckpoint/cell-cycle-checkpoint.bngl @@ -0,0 +1,118 @@ +begin model +begin parameters + # Cell cycle checkpoint: Mitotic entry switch (CDK1). + # Advanced features: Hill kinetics for APC/C and exclusion logic for Wee1/CDC25. + + # Growth & Synthesis + k_synth 0.15 # Cyclin production + k_deg_basal 0.05 + + # CDK1 Switch + k_bind_cdk 1.0 # Cyclin-CDK assembly + k_act_cdc25 2.0 # CDC25-mediated dephosphorylation + k_inh_wee1 1.0 # Wee1-mediated phosphorylation + + # Feedback Control + k_cdc25_fb 5.0 # CDK1 activates CDC25 + k_wee1_fb 5.0 # CDK1 inhibits Wee1 + + # Mitotic Exit (Sharp negative feedback) + k_apc_synth 2.0 # CDK1 activates APC/C + k_apc_deg 15.0 # APC/C destroys Cyclin (Fast) + Km_apc 400 # Threshold for cycle termination + n_hill 5.0 # Ultra-sharp exit switch + + # Damage Block (p21 proxy) + k_p21_inh 3.0 # Sequesters active Cyclin-CDK + + # Initials + Cyclin_init 20 + CDK_tot 500 + CDC25_tot 100 + Wee1_tot 100 + APC_tot 150 + p21_tot 50 # DNA damage level +end parameters + +begin molecule types + Cyclin(b) + CDK(b,s~U~P,act~off~on) # s~P is inhibitory phos + CDC25(s~off~on) + Wee1(s~off~on) + APC(s~off~on) + p21(b) +end molecule types + +begin seed species + Cyclin(b) Cyclin_init + CDK(b,s~U,act~off) CDK_tot + CDC25(s~off) CDC25_tot + Wee1(s~on) Wee1_tot + APC(s~off) APC_tot + p21(b) p21_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Mitotic_Engine CDK(act~on) # Active CDK1-Cyclin pool + Molecules Total_Mass Cyclin() # Total cyclin (Synthesis-balanced) + Molecules Exit_Signal APC(s~on) # Mitotic exit activity + Molecules Primed_Engine CDK(s~P) # Inhibited/Primed status + Molecules Active_CycB Cyclin(b!1).CDK(b!1) # Phase status + Molecules Active_APC APC(s~on) # Exit driver status + Molecules Damage_Block Cyclin(b!1).p21(b!1) # Arrest status +end observables + +begin functions + # Sharp switch for APC/C-mediated exit + v_exit() = k_apc_deg * (Active_APC^n_hill) / (Km_apc^n_hill + Active_APC^n_hill) +end functions + +begin reaction rules + ## ASSEMBLY Phase + # Cyclin binds CDK + Cyclin(b) + CDK(b) <-> Cyclin(b!1).CDK(b!1) k_bind_cdk,0.1 + + # DNA damage (p21) sequesters Cyclin-CDK + p21(b) + Cyclin(b!1).CDK(b!1) <-> p21(b!2).Cyclin(b!1!2).CDK(b!1) k_p21_inh,0.2 + + ## INHIBITORY Phosphorylation (The Brake) + # Wee1 phosphorylates CDK1 + # exclude_reactants: Wee1 cannot phosphorylate if CDC25 is actively opposing (Simulated by high rate competition) + Wee1(s~on) + CDK(s~U) -> Wee1(s~on) + CDK(s~P) k_inh_wee1 + + # CDC25 removes inhibitory phosphate (The Accelerator) + CDC25(s~on) + CDK(s~P) -> CDC25(s~on) + CDK(s~U) k_act_cdc25 + + # Activation once unphosphorylated + CDK(b,s~U) -> CDK(b,s~U,act~on) 10.0 + + ## FEEDBACK Phase + # Active CDK1 activates its own activator (CDC25) + CDK(act~on) + CDC25(s~off) -> CDK(act~on) + CDC25(s~on) k_cdc25_fb + + # Active CDK1 inhibits its own inhibitor (Wee1) + CDK(act~on) + Wee1(s~on) -> CDK(act~on) + Wee1(s~off) k_wee1_fb + + ## EXIT Phase (Negative Feedback) + # CDK1 activates APC/C + CDK(act~on) + APC(s~off) -> CDK(act~on) + APC(s~on) k_apc_synth + + # APC/C destroys Cyclin (Functional Rate - Hill) + Cyclin() -> 0 v_exit() + + ## RECOVERY + 0 -> Cyclin(b) k_synth + Cyclin() -> 0 k_deg_basal + CDC25(s~on) -> CDC25(s~off) 0.1 + Wee1(s~off) -> Wee1(s~on) 0.1 + APC(s~on) -> APC(s~off) 0.1 + CDK(act~on) -> CDK(act~off) 0.5 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>100,n_steps=>400}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/cellcyclecheckpoint/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/cellcyclecheckpoint/metadata.yaml new file mode 100644 index 00000000..93b0b1c8 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/cellcyclecheckpoint/metadata.yaml @@ -0,0 +1,24 @@ +id: "cell-cycle-checkpoint" +name: "cell cycle checkpoint" +description: "Cell cycle checkpoint: Mitotic entry switch (CDK1)." +contributors: + - name: "Achyudhan" +tags: ["cell", "cycle", "checkpoint", "cyclin", "cdk", "cdc25", "wee1", "apc", "p21"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/cell-cycle-checkpoint.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/checkpointkinasesignaling/README.md b/Contributed/BNGPlayground_Examples/biology/checkpointkinasesignaling/README.md new file mode 100644 index 00000000..9dd5f58a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/checkpointkinasesignaling/README.md @@ -0,0 +1,22 @@ +# checkpoint kinase signaling + +DNA Checkpoint: ATM/ATR mediated damage sensing. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- checkpoint-kinase-signaling.bngl + +## Tags + +checkpoint, kinase, signaling, dna, atm, atr, chk1, chk2, p53, cdc25 diff --git a/Contributed/BNGPlayground_Examples/biology/checkpointkinasesignaling/checkpoint-kinase-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/checkpointkinasesignaling/checkpoint-kinase-signaling.bngl new file mode 100644 index 00000000..68909bc3 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/checkpointkinasesignaling/checkpoint-kinase-signaling.bngl @@ -0,0 +1,109 @@ +begin model +begin parameters + # DNA Checkpoint: ATM/ATR mediated damage sensing. + # Advanced features: Hill kinetics for Chk1/2 thresholds and wildcard damage sensing. + + # Damage Induction + k_dsb 0.2 # DSB formation (ATM trigger) + k_ssb 0.5 # Replication stress (ATR trigger) + k_repair 0.1 # Resection/Ligation + + # Kinase Cascades + k_atm_act 1.0 # ATM recruitment + k_atr_act 1.2 # ATR recruitment + k_chk_phos_max 2.5 # Peak checkpoint kinase activation + Km_damage 150 # Threshold for signaling + n_hill 2.0 # Cooperative activation + + # Effectors + k_p53_stab 0.8 # stabilization relay + k_cdc25_inh 1.5 # Cell cycle arrest trigger + + # Reset + k_reset 0.05 + + # Initials + DNA_sites 1000 + ATM_tot 100 + ATR_tot 100 + Chk1_tot 200 + Chk2_tot 200 + p53_tot 300 + Cdc25_tot 100 +end parameters + +begin molecule types + DNA(s~intact~dsb~ssb) + ATM(s~U~A) + ATR(s~U~A) + Chk1(s~U~P) + Chk2(s~U~P) + p53(s~U~A) + Cdc25(s~on~off) +end molecule types + +begin seed species + DNA(s~intact) DNA_sites + ATM(s~U) ATM_tot + ATR(s~U) ATR_tot + Chk1(s~U) Chk1_tot + Chk2(s~U) Chk2_tot + p53(s~U) p53_tot + Cdc25(s~on) Cdc25_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Active_Checkpt Chk1(s~P),Chk2(s~P) # Integrated signal relay + Molecules Total_Damage DNA(s~dsb),DNA(s~ssb) # Input sensor status + Molecules DSB_Signal ATM(s~A) # DSB pathway intensity + Molecules Replication_Stress ATR(s~A) # SSB/Stall intensity + Molecules Arrest_Status Cdc25(s~off) # Biological functional halt +end observables + +begin functions + # Sharp Hill switch for checkpoint activation + v_chk_phos() = k_chk_phos_max * (Total_Damage^n_hill) / (Km_damage^n_hill + Total_Damage^n_hill) +end functions + +begin reaction rules + ## SENSING Phase + # Spontaneous or induced damage + DNA(s~intact) -> DNA(s~dsb) k_dsb + DNA(s~intact) -> DNA(s~ssb) k_ssb + + # DSB activates ATM; SSB/Stalls activate ATR + DNA(s~dsb) + ATM(s~U) -> DNA(s~dsb) + ATM(s~A) 1.0 + DNA(s~ssb) + ATR(s~U) -> DNA(s~ssb) + ATR(s~A) 1.0 + + ## CASCADE Phase + # Active sensors phosphorylate Chk1/2 (Functional Rate) + # Wildcard (!?) for any damage state - expanded to explicit states + DNA(s~dsb) + Chk1(s~U) -> DNA(s~dsb) + Chk1(s~P) v_chk_phos() + DNA(s~ssb) + Chk1(s~U) -> DNA(s~ssb) + Chk1(s~P) v_chk_phos() + DNA(s~dsb) + Chk2(s~U) -> DNA(s~dsb) + Chk2(s~P) v_chk_phos() + DNA(s~ssb) + Chk2(s~U) -> DNA(s~ssb) + Chk2(s~P) v_chk_phos() + + ## EFFECTOR Phase + # Chk kinases inactivate Cdc25 (Arresting the cycle) + Chk1(s~P) + Cdc25(s~on) -> Chk1(s~P) + Cdc25(s~off) k_cdc25_inh + Chk2(s~P) + Cdc25(s~on) -> Chk2(s~P) + Cdc25(s~off) k_cdc25_inh + + # p53 stabilization relay + Chk2(s~P) + p53(s~U) -> Chk2(s~P) + p53(s~A) k_p53_stab + + ## RECOVERY + DNA(s~dsb) -> DNA(s~intact) k_repair + DNA(s~ssb) -> DNA(s~intact) k_repair + ATM(s~A) -> ATM(s~U) k_reset + ATR(s~A) -> ATR(s~U) k_reset + Chk1(s~P) -> Chk1(s~U) k_reset + Chk2(s~P) -> Chk2(s~U) k_reset + Cdc25(s~off) -> Cdc25(s~on) k_reset +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>80,n_steps=>300}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/checkpointkinasesignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/checkpointkinasesignaling/metadata.yaml new file mode 100644 index 00000000..d596c065 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/checkpointkinasesignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "checkpoint-kinase-signaling" +name: "checkpoint kinase signaling" +description: "DNA Checkpoint: ATM/ATR mediated damage sensing." +contributors: + - name: "Achyudhan" +tags: ["checkpoint", "kinase", "signaling", "dna", "atm", "atr", "chk1", "chk2", "p53", "cdc25"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/checkpoint-kinase-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/chemotaxissignaltransduction/README.md b/Contributed/BNGPlayground_Examples/biology/chemotaxissignaltransduction/README.md new file mode 100644 index 00000000..0369de22 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/chemotaxissignaltransduction/README.md @@ -0,0 +1,22 @@ +# chemotaxis signal transduction + +Bacterial Chemotaxis: Adaptation through methylation. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- chemotaxis-signal-transduction.bngl + +## Tags + +chemotaxis, signal, transduction, attr, mcp, chea, chey, cheb, motor diff --git a/Contributed/BNGPlayground_Examples/biology/chemotaxissignaltransduction/chemotaxis-signal-transduction.bngl b/Contributed/BNGPlayground_Examples/biology/chemotaxissignaltransduction/chemotaxis-signal-transduction.bngl new file mode 100644 index 00000000..a4069cb8 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/chemotaxissignaltransduction/chemotaxis-signal-transduction.bngl @@ -0,0 +1,105 @@ +begin model +begin parameters + # Bacterial Chemotaxis: Adaptation through methylation. + # Advanced features: TotalRate for cluster drive and saturable adaptation. + + # Sensing + k_bind_attr 1e-4 # Attracant binding + k_cluster_drive 2.5 # Peak catalytic activity of MCP cluster + + # Core Relay + k_transfer 2.0 # CheA-P to CheY/CheB + k_chez_max 5.0 # CheZ-mediated dephosphorylation + Km_chey 200 # Saturation of reset mechanism + + # Adaptation Cycle + k_che_r 0.5 # Methylation by CheR (Constitutive) + k_che_b 1.2 # Demethylation by p-CheB (Signal-dependent) + + # Behavioral Output + k_run_to_tumble 2.0 + k_tumble_to_run 2.0 + + # Initials + Attr_tot 100 + MCP_sites 500 + CheA_tot 100 + CheY_tot 300 + CheZ_tot 100 + CheR_tot 50 + CheB_tot 50 +end parameters + +begin molecule types + Attr(b) + MCP(b,s~U~M) # s: methylation status + CheA(s~U~P) + CheY(s~U~P) + CheB(s~U~P) + Motor(s~CCW~CW) +end molecule types + +begin seed species + Attr(b) Attr_tot + MCP(b,s~U) MCP_sites + CheA(s~U) CheA_tot + CheY(s~U) CheY_tot + CheB(s~U) CheB_tot + Motor(s~CCW) 1 +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Motor_State Motor(s~CW) # Tumble frequency (Behavior) + Molecules Methylation_Status MCP(s~M) # System adaptation state + Molecules Signaling_Effector CheY(s~P) # Relay driver intensity + Molecules Environmental_Bias Attr(b!+) # Receptor occupancy + Molecules Adaptation_Drive CheB(s~P) # Feedback intensity + Molecules Active_MCP MCP(b,s~U) # Activity drive status +end observables + +begin functions + # Cluster activity: Unbound MCP promotes CheA phos + # TotalRate: driven by total local cluster composition + v_cluster() = k_cluster_drive * (Active_MCP / MCP_sites) + + # Saturable CheY reset + v_chey_reset() = k_chez_max * (Signaling_Effector / (Km_chey + Signaling_Effector)) +end functions + +begin reaction rules + ## SENSING Phase + # Attracant binds and inactivates MCP signaling + Attr(b) + MCP(b,s~U) <-> Attr(b!1).MCP(b!1,s~U) k_bind_attr,0.1 + + ## RELAY Phase + # Cluster drives CheA autophosphorylation (TotalRate) + CheA(s~U) -> CheA(s~P) v_cluster() TotalRate + + # Phosphotransfer to effectors + CheA(s~P) + CheY(s~U) -> CheA(s~U) + CheY(s~P) k_transfer + CheA(s~P) + CheB(s~U) -> CheA(s~U) + CheB(s~P) k_transfer + + # Behavioral shift + CheY(s~P) + Motor(s~CCW) -> CheY(s~P) + Motor(s~CW) k_run_to_tumble + Motor(s~CW) -> Motor(s~CCW) k_tumble_to_run + + ## ADAPTATION Phase + # CheR methylates MCP (Restores activity - slow) + MCP(s~U) -> MCP(s~M) k_che_r + + # p-CheB demethylates MCP (Adaptation - fast) + CheB(s~P) + MCP(s~M) -> CheB(s~P) + MCP(s~U) k_che_b + + ## RESET Phase + # CheZ-mediated dephos (Functional Rate) + CheY(s~P) -> CheY(s~U) v_chey_reset() + CheB(s~P) -> CheB(s~U) 0.2 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>60,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/chemotaxissignaltransduction/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/chemotaxissignaltransduction/metadata.yaml new file mode 100644 index 00000000..3d8d8dd6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/chemotaxissignaltransduction/metadata.yaml @@ -0,0 +1,24 @@ +id: "chemotaxis-signal-transduction" +name: "chemotaxis signal transduction" +description: "Bacterial Chemotaxis: Adaptation through methylation." +contributors: + - name: "Achyudhan" +tags: ["chemotaxis", "signal", "transduction", "attr", "mcp", "chea", "chey", "cheb", "motor"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/chemotaxis-signal-transduction.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/circadianoscillator/README.md b/Contributed/BNGPlayground_Examples/biology/circadianoscillator/README.md new file mode 100644 index 00000000..de6ecd28 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/circadianoscillator/README.md @@ -0,0 +1,22 @@ +# circadian oscillator + +title: Vilar Circadian Oscillator Model + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- circadian-oscillator.bngl + +## Tags + +circadian, oscillator, a, r, pa, pr, mrna_a, mrna_r diff --git a/Contributed/BNGPlayground_Examples/biology/circadianoscillator/circadian-oscillator.bngl b/Contributed/BNGPlayground_Examples/biology/circadianoscillator/circadian-oscillator.bngl new file mode 100644 index 00000000..062f3e41 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/circadianoscillator/circadian-oscillator.bngl @@ -0,0 +1,93 @@ +## title: Vilar Circadian Oscillator Model +## author: Jim Faeder +## date: 31Mar2016 +## Reference: Vilar, JMG et al. PNAS, 99:5988-5992 (2002) + +begin parameters + alpha_A 50 # 1/h + alpha_Ap 500 # + alpha_R 0.01 + alpha_Rp 50 + beta_A 50 + beta_R 5 + delta_MA 10 + delta_MR 0.5 + delta_A 1 + delta_R 0.2/4 + gamma_A 1 # 1/molec 1/h + gamma_R 1 + gamma_C 2 + theta_A 50 # 1/h + theta_R 100 +end parameters + +begin molecule types + A(r,d) + R(a) + pA(a) + pR(a) + mRNA_A() + mRNA_R() +end molecule types + +begin seed species + A(r,d) 0 + R(a) 0 + pA(a) 1 + pR(a) 1 +end seed species + +begin observables + Molecules Afree A(r,d) # note: These are the observables reported in the paper + Molecules Rfree R(a) # + Molecules Atot A() + Molecules Rtot R() +end observables + +begin reaction rules +# Transcription +Atransc_basal: \ + pA(a) -> pA(a) + mRNA_A() alpha_A +Atransc_active: \ + pA(a!+) -> pA(a!+) + mRNA_A() alpha_Ap +Rtransc_basal: \ + pR(a) -> pR(a) + mRNA_R() alpha_R +Rtransc_active: \ + pR(a!+) -> pR(a!+) + mRNA_R() alpha_Rp + +# Translation +Atransl: \ + mRNA_A() -> mRNA_A() + A(r,d) beta_A +Rtransl: \ + mRNA_R() -> mRNA_R() + R(a) beta_R + +# Activation-Promoter binding +A_binds_pA: \ + A(r,d) + pA(a) <-> A(r,d!1).pA(a!1) gamma_A, theta_A +A_binds_pR: \ + A(r,d) + pR(a) <-> A(r,d!1).pR(a!1) gamma_R, theta_R + +# Repressor-Activator binding +A_binds_R: \ + A(r,d) + R(a) -> A(r!1,d).R(a!1) gamma_C + +# Degradation + +# mRNA +mRNA_Adeg:\ + mRNA_A() -> 0 delta_MA +mRNA_Rdeg:\ + mRNA_R() -> 0 delta_MR + +# Protein +# A degrades unless bound to DNA +Afreedeg: \ + A(d,r) -> 0 delta_A +Abounddeg: \ + A(d,r!1).R(a!1) -> R(a) delta_A +Rdeg: \ + R(a) -> 0 delta_R + +end reaction rules + +simulate({method=>"ode",t_end=>400,n_steps=>800}) diff --git a/Contributed/BNGPlayground_Examples/biology/circadianoscillator/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/circadianoscillator/metadata.yaml new file mode 100644 index 00000000..f5f60fbb --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/circadianoscillator/metadata.yaml @@ -0,0 +1,24 @@ +id: "circadian-oscillator" +name: "circadian oscillator" +description: "title: Vilar Circadian Oscillator Model" +contributors: + - name: "Achyudhan" +tags: ["circadian", "oscillator", "a", "r", "pa", "pr", "mrna_a", "mrna_r"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/circadian-oscillator.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/clockbmal1genecircuit/README.md b/Contributed/BNGPlayground_Examples/biology/clockbmal1genecircuit/README.md new file mode 100644 index 00000000..3a72373f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/clockbmal1genecircuit/README.md @@ -0,0 +1,22 @@ +# clock bmal1 gene circuit + +BMAL1-CLOCK: The master activator of the circadian circuit. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- clock-bmal1-gene-circuit.bngl + +## Tags + +clock, bmal1, gene, circuit, ror, reverb, dna diff --git a/Contributed/BNGPlayground_Examples/biology/clockbmal1genecircuit/clock-bmal1-gene-circuit.bngl b/Contributed/BNGPlayground_Examples/biology/clockbmal1genecircuit/clock-bmal1-gene-circuit.bngl new file mode 100644 index 00000000..ab0467bf --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/clockbmal1genecircuit/clock-bmal1-gene-circuit.bngl @@ -0,0 +1,99 @@ +begin model +begin parameters + # BMAL1-CLOCK: The master activator of the circadian circuit. + # Advanced features: MoveConnected for nuclear export and saturable turnover. + + # Assembly + k_bind_act 2.5 # CLOCK:BMAL1 heterodimerization + k_transcribe 2.0 # Functional driver + k_bind_dna 1.0 # DNA binding + k_unbind_dna 0.1 + + # Negative Loops (Secondary rev-erba/ror) + k_ror_synth 0.5 # BMAL1-mediated ROR production + k_rev_synth 0.8 # BMAL1-mediated REV-ERB production + k_bmal_rep 5.0 # REV-ERB represses BMAL1 transcription + + # Spatial Transport + k_export 1.0 # Nuclear exclusion rate + k_import 1.5 # Nuclear import (Active) + + # Stability + k_deg_basal 0.1 + Km_clearance 200 # Saturation threshold for UPS + + # Initials + Clock_tot 100 + Bmal1_tot 400 + ROR_tot 20 + Rev_tot 10 +end parameters + +begin molecule types + Clock(b) + Bmal1(b1,b2,loc~cyt~nuc) + ROR(b) + RevErb(b) + DNA(p) +end molecule types + +begin seed species + Clock(b) Clock_tot + Bmal1(b1,b2,loc~cyt) Bmal1_tot + ROR(b) ROR_tot + RevErb(b) Rev_tot + DNA(p) 10 +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Activator_Comp Clock(b!1).Bmal1(b1!1) # Active TF heteromer + Molecules Nuclear_Bmal1 Bmal1(loc~nuc) # Spatial driver status + Molecules RevErb_Brake RevErb() # Negative inhibitor levels + Molecules ROR_Accelerator ROR() # Positive activator levels + Molecules Transcription_ON Bmal1(b2!+) # Engagement with DNA + Molecules Bmal1_Total_Obs Bmal1() # Substrate status +end observables + +begin functions + # Saturable degradation (Clearance bottleneck) + v_clear() = k_deg_basal * (Bmal1_Total_Obs / (Km_clearance + Bmal1_Total_Obs)) +end functions + +begin reaction rules + ## ACTIVATION + # Bmal1 moves to nucleus + Bmal1(b1,b2,loc~cyt) <-> Bmal1(b1,b2,loc~nuc) k_import,k_export + + # Heterodimerization (The Engine) + Clock(b) + Bmal1(b1,loc~nuc) <-> Clock(b!1).Bmal1(b1!1,loc~nuc) k_bind_act,0.2 + + # DNA Binding (Transcription ON) + Clock(b!1).Bmal1(b1!1,b2,loc~nuc) + DNA(p) <-> Clock(b!1).Bmal1(b1!1,b2!2,loc~nuc).DNA(p!2) k_bind_dna,k_unbind_dna + + ## SECONDARY LOOP (The Tuning) + # Active complex induces RevErb and ROR + Clock(b!1).Bmal1(b1!1) -> Clock(b!1).Bmal1(b1!1) + RevErb(b) k_rev_synth + Clock(b!1).Bmal1(b1!1) -> Clock(b!1).Bmal1(b1!1) + ROR(b) k_ror_synth + + # RevErb represses Bmal1 production (Negative) + # (Modeled as active degradation of Bmal1 mRNA proxy or turnover) + RevErb(b) + Bmal1() -> RevErb(b) + 0 k_bmal_rep + + # ROR promotes Bmal1 production (Positive) + ROR(b) -> ROR(b) + Bmal1(b1,b2,loc~cyt) 2.0 + + ## RESET Phase + # Functional Rate for saturable clearance + Bmal1() -> 0 v_clear() + + RevErb() -> 0 0.1 + ROR() -> 0 0.1 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>120,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/clockbmal1genecircuit/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/clockbmal1genecircuit/metadata.yaml new file mode 100644 index 00000000..41006966 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/clockbmal1genecircuit/metadata.yaml @@ -0,0 +1,24 @@ +id: "clock-bmal1-gene-circuit" +name: "clock bmal1 gene circuit" +description: "BMAL1-CLOCK: The master activator of the circadian circuit." +contributors: + - name: "Achyudhan" +tags: ["clock", "bmal1", "gene", "circuit", "ror", "reverb", "dna"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/clock-bmal1-gene-circuit.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/competitiveenzymeinhibition/README.md b/Contributed/BNGPlayground_Examples/biology/competitiveenzymeinhibition/README.md new file mode 100644 index 00000000..50c56875 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/competitiveenzymeinhibition/README.md @@ -0,0 +1,22 @@ +# competitive enzyme inhibition + +Competitive inhibition: Inhibitor (I) and Substrate (S) compete for the same + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- competitive-enzyme-inhibition.bngl + +## Tags + +competitive, enzyme, inhibition, substrate1, substrate2, inhibitor, product diff --git a/Contributed/BNGPlayground_Examples/biology/competitiveenzymeinhibition/competitive-enzyme-inhibition.bngl b/Contributed/BNGPlayground_Examples/biology/competitiveenzymeinhibition/competitive-enzyme-inhibition.bngl new file mode 100644 index 00000000..6f4b28a7 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/competitiveenzymeinhibition/competitive-enzyme-inhibition.bngl @@ -0,0 +1,73 @@ +begin model +begin parameters + # Competitive inhibition: Inhibitor (I) and Substrate (S) compete for the same + # active site of Enzyme (E). + + # Reaction rates + k_bind_s 1e-3 # Substrate binding + k_unbind_s 0.1 # Substrate dissociation + k_cat 1.0 # Catalysis (Product formation) + + k_bind_i 1e-4 # Inhibitor binding (Higher affinity proxy) + k_unbind_i 0.01 # Inhibitor dissociation + k_recovery 0.05 # Product clearance + + # Multi-substrate extension + k_bind_s2 5e-4 # Competitor substrate + + # Initials + Enzyme_tot 100 + Substrate_tot 1000 + Substrate2_tot 0 + Inhibitor_tot 500 + Product_init 0 +end parameters + +begin molecule types + Enzyme(s,state~free~bound) + Substrate1(b) + Substrate2(b) + Inhibitor(b) + Product() +end molecule types + +begin seed species + Enzyme(s,state~free) Enzyme_tot + Substrate1(b) Substrate_tot + Substrate2(b) Substrate2_tot + Inhibitor(b) Inhibitor_tot + Product() Product_init +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Free_Enzyme Enzyme(state~free) # Working capacity + Molecules ES_Complex Enzyme(s!1).Substrate1(b!1) # Catalytic intermediate + Molecules EI_Complex Enzyme(s!1).Inhibitor(b!1) # Sequestrated/Inhibited enzyme + Molecules Total_Product Product() # Reaction velocity proxy + Molecules S_Remaining Substrate1() # Mass balance +end observables + +begin reaction rules + ## CLASSIC COMPETITION + # Enzyme + Substrate <-> ES -> Enzyme + Product + Enzyme(s,state~free) + Substrate1(b) <-> Enzyme(s!1,state~bound).Substrate1(b!1) k_bind_s,k_unbind_s + Enzyme(s!1,state~bound).Substrate1(b!1) -> Enzyme(s,state~free) + Product() k_cat + + # Enzyme + Inhibitor <-> EI (Dead end complex) + Enzyme(s,state~free) + Inhibitor(b) <-> Enzyme(s!1,state~bound).Inhibitor(b!1) k_bind_i,k_unbind_i + + ## MULTI-SUBSTRATE EXTENSION + # Enzyme + Substrate2 <-> ES2 + Enzyme(s,state~free) + Substrate2(b) <-> Enzyme(s!1,state~bound).Substrate2(b!1) k_bind_s2,k_unbind_s + + ## CLEARANCE + Product() -> 0 k_recovery +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>150,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/competitiveenzymeinhibition/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/competitiveenzymeinhibition/metadata.yaml new file mode 100644 index 00000000..0b825fc4 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/competitiveenzymeinhibition/metadata.yaml @@ -0,0 +1,24 @@ +id: "competitive-enzyme-inhibition" +name: "competitive enzyme inhibition" +description: "Competitive inhibition: Inhibitor (I) and Substrate (S) compete for the same" +contributors: + - name: "Achyudhan" +tags: ["competitive", "enzyme", "inhibition", "substrate1", "substrate2", "inhibitor", "product"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/competitive-enzyme-inhibition.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/complementactivationcascade/README.md b/Contributed/BNGPlayground_Examples/biology/complementactivationcascade/README.md new file mode 100644 index 00000000..0ddf1f65 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/complementactivationcascade/README.md @@ -0,0 +1,22 @@ +# complement activation cascade + +Complement System: Pathogen opsonization and the Alternative Pathway. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- complement-activation-cascade.bngl + +## Tags + +complement, activation, cascade, c3, fb, c5, mac, surf diff --git a/Contributed/BNGPlayground_Examples/biology/complementactivationcascade/complement-activation-cascade.bngl b/Contributed/BNGPlayground_Examples/biology/complementactivationcascade/complement-activation-cascade.bngl new file mode 100644 index 00000000..44aa7df2 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/complementactivationcascade/complement-activation-cascade.bngl @@ -0,0 +1,103 @@ +begin model +begin parameters + # Complement System: Pathogen opsonization and the Alternative Pathway. + # Advanced features: DeleteMolecules for factor cleavage and Hill kinetics for MAC. + + # AP Initiation (Tick-over & Surface stabilization) + k_tickover 0.5 # C3(H2O) formation + k_bind_surf 1.0 # C3b covalent attachment + + # Amplification (Convertase Relay) + k_c3_conv_max 50.0 # Max C3 cleavage by convertase + k_bind_fb 20.0 # Factor B recruitment + k_act_fd 5.0 # Factor D catalytic trigger + + # Terminal Pathway (Lysis) + k_mac_max 10.0 # Membrane Attack Complex assembly + Km_c5b 800 # Threshold for MAC formation + n_hill 4.0 # Non-linear pore formation threshold + + # Regulation (Factor H/I) + k_inh_fh 1.5 # Factor H dissociation + k_inh_fi 2.0 # Factor I cleavage (Inactivation) + + # Initials + C3_tot 5000 + FB_tot 500 + FD_tot 50 + C5_tot 1000 + Pathogen_sites 500 +end parameters + +begin molecule types + C3(s~U~b~i,loc~free~surf) + FB(b,s~U~Bb) + C5(s~U~b) + MAC() + Surf(b) +end molecule types + +begin seed species + C3(s~U,loc~free) C3_tot + FB(b,s~U) FB_tot + C5(s~U) C5_tot + Surf(b) Pathogen_sites +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Opsonization_C3b C3(s~b) # Phagocytosis flag + Molecules C5b_Active C5(s~b) # C5b status + Molecules MAC_Intensity MAC() # Final lytic effector + Molecules C3_Convertase C3(s~b!1).FB(b!1,s~Bb) # Amplification node + Molecules C5_Generated C5(s~b) # Terminal trigger relay + Molecules FB_Consumed FB(b!+,s~Bb) # Resource depletion +end observables + +begin functions + # Sharp Hill switch for MAC formation (Lysis trigger) + v_mac() = k_mac_max * (C5b_Active^n_hill) / (Km_c5b^n_hill + (C5b_Active^n_hill)) +end functions + +begin reaction rules + ## INITIATION Phase + # Tickover: C3 -> C3b (Fluid phase) + C3(s~U,loc~free) -> C3(s~b,loc~free) k_tickover + + # Surface attachment (Opsonization) + C3(s~b,loc~free) + Surf(b) <-> C3(s~b,loc~surf!1).Surf(b!1) k_bind_surf,0.1 + + ## AMPLIFICATION Phase + # C3b recruits Factor B + C3(s~b) + FB(s~U,b) <-> C3(s~b!1).FB(s~U,b!1) k_bind_fb,0.5 + + # Factor D cleaves B -> Bb (Active Convertase) + C3(s~b!1).FB(s~U,b!1) -> C3(s~b!1).FB(s~Bb,b!1) k_act_fd + + # Convertase cleaves more C3 (Negative feedback on C3 reservoir) + C3(s~b!1).FB(s~Bb,b!1) + C3(s~U,loc~free) -> C3(s~b!1).FB(s~Bb,b!1) + C3(s~b,loc~free) k_c3_conv_max + + ## TERMINAL Phase + # C3bBb also acts as C5 convertase (Simplified) + C3(s~b!1).FB(s~Bb,b!1) + C5(s~U) -> C3(s~b!1).FB(s~Bb,b!1) + C5(s~b) 1.0 + + # C5b triggers MAC formation (Functional Rate - Hill) + 0 -> MAC() v_mac() + + ## REGULATION Stage + # Factor I cleaves C3b to iC3b (Inactive) + # DeleteMolecules: Final removal of the active signaling factor + C3(s~b) -> C3(s~i) k_inh_fi + + # Reset + FB(s~Bb) -> 0 0.1 + C5(s~b) -> 0 0.1 + MAC() -> 0 0.05 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>100,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/complementactivationcascade/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/complementactivationcascade/metadata.yaml new file mode 100644 index 00000000..b196d9b9 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/complementactivationcascade/metadata.yaml @@ -0,0 +1,24 @@ +id: "complement-activation-cascade" +name: "complement activation cascade" +description: "Complement System: Pathogen opsonization and the Alternative Pathway." +contributors: + - name: "Achyudhan" +tags: ["complement", "activation", "cascade", "c3", "fb", "c5", "mac", "surf"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/complement-activation-cascade.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/contactinhibitionhippoyap/README.md b/Contributed/BNGPlayground_Examples/biology/contactinhibitionhippoyap/README.md new file mode 100644 index 00000000..682c7691 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/contactinhibitionhippoyap/README.md @@ -0,0 +1,22 @@ +# contact inhibition hippo yap + +Hippo Pathway: Contact inhibition and YAP regulation. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- contact-inhibition-hippo-yap.bngl + +## Tags + +contact, inhibition, hippo, yap, mst, lats, tead diff --git a/Contributed/BNGPlayground_Examples/biology/contactinhibitionhippoyap/contact-inhibition-hippo-yap.bngl b/Contributed/BNGPlayground_Examples/biology/contactinhibitionhippoyap/contact-inhibition-hippo-yap.bngl new file mode 100644 index 00000000..11e200ad --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/contactinhibitionhippoyap/contact-inhibition-hippo-yap.bngl @@ -0,0 +1,102 @@ +begin model +begin parameters + # Hippo Pathway: Contact inhibition and YAP regulation. + # Advanced features: MoveConnected for YAP-TEAD complex and SAT kinetics. + + # Contact & Polarity + k_contact 0.5 # Density stimulus + k_mst_act 2.0 # MST1/2 activation relay + k_mst_reset 0.1 # Basal reset + + # MST-LATS Axis + k_lats_phos 3.0 # LATS1/2 phosphorylation (MST-mediated) + Km_lats 200 # Saturable kinase activity + + # YAP Dynamics + k_yap_phos 5.0 # LATS-driven inactivation + k_nuclear 1.0 # Unphosphorylated import + k_export 0.2 # Sequestration/Export + + # TEAD Interaction + k_tead_bind 10.0 # Fast nuclear partner recruitment + + # Inhibitors + k_nf2_act 0.8 # Merlin/NF2 stabilization + k_reset 0.05 # General turnover + + # Initials + MST_tot 200 + LATS_tot 200 + YAP_tot 500 + TEAD_tot 150 + NF2_tot 100 + k_contact_pulse 1.0 # Density-dependent activation triggernal rate +end parameters + +begin molecule types + Contact(s~low~high) + MST(s~U~A) + LATS(s~U~P) + YAP(b,s~U~P,loc~cyt~nuc) + TEAD(b,loc~nuc) +end molecule types + +begin seed species + Contact(s~low) 1000 + MST(s~U) MST_tot + LATS(s~U) LATS_tot + YAP(b,s~U,loc~cyt) YAP_tot + TEAD(b,loc~nuc) TEAD_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Transcript_Active YAP(b!1).TEAD(b!1) # Functional effector + Molecules YAP_Sequested YAP(s~P,loc~cyt) # Inhibited reservoir + Molecules Active_LATS LATS(s~P) # Signaling relay status + Molecules MST_Trigger MST(s~A) # Top-level drive + Molecules Nuclear_YAP YAP(loc~nuc) # Transcription drive + Molecules Active_MST MST(s~A) # Upstream signal status +end observables + +begin functions + # Saturable LATS activation by MST + v_lats_act() = k_lats_phos * (Active_MST / (Km_lats + Active_MST)) +end functions + +begin reaction rules + ## ACTIVATION + # High density stimulus activates MST (via contact proxy) + Contact(s~high) + MST(s~U) -> Contact(s~high) + MST(s~A) k_mst_act + + # MST activates LATS (Functional Rate - Saturation) + LATS(s~U) -> LATS(s~P) v_lats_act() + + ## YAP REGULATION + # Active LATS phosphorylates cytosolic YAP + LATS(s~P) + YAP(loc~cyt,s~U) -> LATS(s~P) + YAP(loc~cyt,s~P) k_yap_phos + + # Unphosphorylated YAP translocates (MoveConnected: partner stays) + YAP(s~U,loc~cyt) <-> YAP(s~U,loc~nuc) k_nuclear,0.1 + + # Nuclear YAP binds TEAD + YAP(loc~nuc,s~U,b) + TEAD(b) <-> YAP(loc~nuc,s~U,b!1).TEAD(b!1) k_tead_bind,0.5 + + # Phospho-YAP is excluded/exported + YAP(s~P,loc~nuc) -> YAP(s~P,loc~cyt) 5.0 + + ## DYNAMICS Stage + # Density stimulus (Self-induction over time) + Contact(s~low) -> Contact(s~high) k_contact_pulse + + # Reset + YAP(s~P) -> YAP(s~U) k_reset + MST(s~A) -> MST(s~U) k_mst_reset + LATS(s~P) -> LATS(s~U) k_reset +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>150,n_steps=>300}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/contactinhibitionhippoyap/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/contactinhibitionhippoyap/metadata.yaml new file mode 100644 index 00000000..73118783 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/contactinhibitionhippoyap/metadata.yaml @@ -0,0 +1,24 @@ +id: "contact-inhibition-hippo-yap" +name: "contact inhibition hippo yap" +description: "Hippo Pathway: Contact inhibition and YAP regulation." +contributors: + - name: "Achyudhan" +tags: ["contact", "inhibition", "hippo", "yap", "mst", "lats", "tead"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/contact-inhibition-hippo-yap.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/cooperativebinding/README.md b/Contributed/BNGPlayground_Examples/biology/cooperativebinding/README.md new file mode 100644 index 00000000..4003756a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/cooperativebinding/README.md @@ -0,0 +1,22 @@ +# cooperative binding + +Cooperative binding: The binding of the first ligand molecule increases + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- cooperative-binding.bngl + +## Tags + +cooperative, binding, receptor, ligand, competitor diff --git a/Contributed/BNGPlayground_Examples/biology/cooperativebinding/cooperative-binding.bngl b/Contributed/BNGPlayground_Examples/biology/cooperativebinding/cooperative-binding.bngl new file mode 100644 index 00000000..3d7ca074 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/cooperativebinding/cooperative-binding.bngl @@ -0,0 +1,67 @@ +begin model +begin parameters + # Cooperative binding: The binding of the first ligand molecule increases + # the affinity for the second ligand molecule (Positive Cooperativity). + + # Reaction rates + k_on_1 1e-4 # Binding of 1st ligand + k_off_1 0.1 # Dissociation of 1st ligand + + k_coop 10.0 # Cooperativity factor (A_2nd = k_on_1 * k_coop) + k_off_2 0.01 # Dissociation of 2nd ligand (often slower in positive coop) + + # Competition extension + k_on_comp 5e-5 # Competitive (non-cooperative) ligand + + # Initials + Receptor_tot 500 # Bivalent receptor + Ligand_tot 1000 + Competitor_tot 0 +end parameters + +begin molecule types + Receptor(l1,l2) + Ligand(b) + Competitor(b) +end molecule types + +begin seed species + Receptor(l1,l2) Receptor_tot + Ligand(b) Ligand_tot + Competitor(b) Competitor_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Free_Rec Receptor(l1,l2) # Unbound state + Molecules Mono_Bound Receptor(l1!+,l2),Receptor(l1,l2!+) # Single occupancy + Molecules Fully_Occupied Receptor(l1!+,l2!+) # Dual occupancy (Signaling state) + Molecules Total_Bound Ligand(b!+) # Mass balance + Molecules Half_Life Receptor(l1!1).Ligand(b!1) # For monitoring stability +end observables + +begin reaction rules + ## COOPERATIVE BINDING SCHEME (BIVALENT) + + # Binding to first site (l1) + Receptor(l1,l2) + Ligand(b) <-> Receptor(l1!1,l2).Ligand(b!1) k_on_1,k_off_1 + + # Binding to first site (l2) + Receptor(l1,l2) + Ligand(b) <-> Receptor(l1,l2!1).Ligand(b!1) k_on_1,k_off_1 + + # Cooperative binding to second site (if l1 is occupied,bind l2) + Receptor(l1!+,l2) + Ligand(b) <-> Receptor(l1!+,l2!1).Ligand(b!1) k_on_1*k_coop,k_off_2 + + # Cooperative binding to second site (if l2 is occupied,bind l1) + Receptor(l1,l2!+) + Ligand(b) <-> Receptor(l1!1,l2!+).Ligand(b!1) k_on_1*k_coop,k_off_2 + + ## COMPETITION (NON-COOPERATIVE) + Receptor(l1) + Competitor(b) <-> Receptor(l1!1).Competitor(b!1) k_on_comp,0.1 + Receptor(l2) + Competitor(b) <-> Receptor(l2!1).Competitor(b!1) k_on_comp,0.1 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>500,n_steps=>200}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/cooperativebinding/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/cooperativebinding/metadata.yaml new file mode 100644 index 00000000..8224a84a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/cooperativebinding/metadata.yaml @@ -0,0 +1,24 @@ +id: "cooperative-binding" +name: "cooperative binding" +description: "Cooperative binding: The binding of the first ligand molecule increases" +contributors: + - name: "Achyudhan" +tags: ["cooperative", "binding", "receptor", "ligand", "competitor"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/cooperative-binding.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/dnadamagerepair/README.md b/Contributed/BNGPlayground_Examples/biology/dnadamagerepair/README.md new file mode 100644 index 00000000..7402f9f4 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/dnadamagerepair/README.md @@ -0,0 +1,22 @@ +# dna damage repair + +DNA damage sensing and repair pathway (ATM-CHK2-p53 axis) + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- dna-damage-repair.bngl + +## Tags + +dna, damage, repair, mrn, atm, chk2, repaircomplex diff --git a/Contributed/BNGPlayground_Examples/biology/dnadamagerepair/dna-damage-repair.bngl b/Contributed/BNGPlayground_Examples/biology/dnadamagerepair/dna-damage-repair.bngl new file mode 100644 index 00000000..10b721bb --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/dnadamagerepair/dna-damage-repair.bngl @@ -0,0 +1,91 @@ +begin model +begin parameters + # DNA damage sensing and repair pathway (ATM-CHK2-p53 axis) + + # Damage induction + k_damage 0.1 # DNA lesion formation (e.g. UV,ROS) + + # Sensing & Signaling + k_sense 1.5 # MRN complex sensing lesions + k_atm_act 10.0 # ATM activation by MRN/DNA complexes + k_chk2_phos 10.0 # Chk2 phosphorylation by active ATM + + # Effector activation + k_repair_rec 100.0 # Recruitment of PARP/Ligase complexes + k_repair_act 10.0 # Actual repair execution + + # Recovery + k_reset 0.05 # Phosphatase relay + k_turnover 0.02 # Basal protein degradation + + # Initials + DNA_intact 100 + MRN_tot 50 # Sensor complex + ATM_tot 100 # Master kinase + Chk2_tot 150 # Transducer kinase + Repair_tot 80 # Effector machinery +end parameters + +begin molecule types + DNA(state~intact~damaged~repaired) + MRN(b,r,state~U~A) + ATM(b,state~U~A) + Chk2(b,state~U~P) + RepairComplex(b,state~avail~engaged) +end molecule types + +begin seed species + DNA(state~intact) DNA_intact + MRN(b,r,state~U) MRN_tot + ATM(b,state~U) ATM_tot + Chk2(b,state~U) Chk2_tot + RepairComplex(b,state~avail) Repair_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Lesion_Load DNA(state~damaged) # Unrepaired damage count + Molecules Active_Sensor MRN(state~A) # Detection signal + Molecules Kinase_Relay ATM(state~A),Chk2(state~P) # Signaling intensity + Molecules Repair_In_Work RepairComplex(state~engaged) # Effector engagement + Molecules Final_Integrity DNA(state~repaired) # Success metric +end observables + +begin reaction rules + ## SENSING PHASE + # DNA damage occurs + DNA(state~intact) -> DNA(state~damaged) k_damage + + # MRN complex senses damage and becomes active + DNA(state~damaged) + MRN(b,state~U) <-> DNA(state~damaged!1).MRN(b!1,state~U) 1.0,0.1 + DNA(state~damaged!1).MRN(b!1,state~U) -> DNA(state~damaged!1).MRN(b!1,state~A) k_sense # Conformational activation + + ## SIGNALING PHASE + # Active MRN recruits and activates ATM + MRN(state~A,r) + ATM(state~U,b) <-> MRN(state~A,r!2).ATM(state~U,b!2) k_atm_act,0.1 + MRN(state~A,r!2).ATM(state~U,b!2) -> MRN(state~A,r!2).ATM(state~A,b!2) 1.0 + + # ATM phosphorylates Chk2 + ATM(state~A) + Chk2(state~U) -> ATM(state~A) + Chk2(state~P) k_chk2_phos + + ## REPAIR PHASE + # Activated signaling recruits repair machinery + Chk2(state~P) + RepairComplex(state~avail,b) <-> Chk2(state~P!1).RepairComplex(state~avail,b!1) k_repair_rec,0.1 + Chk2(state~P!1).RepairComplex(state~avail,b!1) -> Chk2(state~P!1).RepairComplex(state~engaged,b!1) 1.0 + + # Engaged repair machinery fixes DNA + RepairComplex(state~engaged) + DNA(state~damaged) -> RepairComplex(state~engaged) + DNA(state~repaired) k_repair_act + + ## CLEARANCE + ATM(state~A) -> ATM(state~U) k_reset + Chk2(state~P) -> Chk2(state~U) k_reset + RepairComplex(state~engaged) -> RepairComplex(state~avail) k_reset + MRN(state~A) -> MRN(state~U) k_reset +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>100,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/dnadamagerepair/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/dnadamagerepair/metadata.yaml new file mode 100644 index 00000000..c8850ee0 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/dnadamagerepair/metadata.yaml @@ -0,0 +1,24 @@ +id: "dna-damage-repair" +name: "dna damage repair" +description: "DNA damage sensing and repair pathway (ATM-CHK2-p53 axis)" +contributors: + - name: "Achyudhan" +tags: ["dna", "damage", "repair", "mrn", "atm", "chk2", "repaircomplex"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/dna-damage-repair.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/dnamethylationdynamics/README.md b/Contributed/BNGPlayground_Examples/biology/dnamethylationdynamics/README.md new file mode 100644 index 00000000..acdc4aeb --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/dnamethylationdynamics/README.md @@ -0,0 +1,22 @@ +# dna methylation dynamics + +DNA Methylation: Maintenance and de novo dynamics. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- dna-methylation-dynamics.bngl + +## Tags + +dna, methylation, dynamics, cpg, dnmt1, tet, v_maint, v_erase diff --git a/Contributed/BNGPlayground_Examples/biology/dnamethylationdynamics/dna-methylation-dynamics.bngl b/Contributed/BNGPlayground_Examples/biology/dnamethylationdynamics/dna-methylation-dynamics.bngl new file mode 100644 index 00000000..9628f22f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/dnamethylationdynamics/dna-methylation-dynamics.bngl @@ -0,0 +1,102 @@ +begin model +begin parameters + # DNA Methylation: Maintenance and de novo dynamics. + # Advanced features: Michaelis-Menten kinetics and wildcard site sensing. + + # Maintenance DNMT1 + k_maint_max 10.0 # Fast hemi-to-full conversion + Km_hemi 500 # Substrate threshold + + # De Novo Writing (DNMT3A/B) + k_denovo 0.05 # Slow initial mark + + # Passive Dilution (Replication drive) + k_div 0.1 # Cell division frequency + + # Active Erasing (TET) + k_tet_max 1.5 # Functional drive + Km_meth 800 # Threshold for erasers + + # Regulation + k_uhrf1_bind 5.0 # Recruiter for maintenance + k_reset 0.01 + + # TET Regulation + k_tet_inact 0.1 + k_tet_act 0.05 + + # Initials + CpG_sites 2000 # Genome sites proxy + DNMT1_tot 200 + TET_tot 100 +end parameters + +begin molecule types + CpG(s~U~H~M) # Unmethylated,Hemi,Methylated + DNMT1(b) # Maintenance writer + TET(s~off~on) # Eraser +end molecule types + +begin seed species + CpG(s~U) 2000 + DNMT1(b) DNMT1_tot + TET(s~on) TET_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Silenced_Marks CpG(s~M) # Heavy methylation level + Molecules Maintain_Burden CpG(s~H) # Intermediate/Repl. status + Molecules Methyl_Status CpG(s~M) # Genomic state proxy + Molecules Hemi_CpG CpG(s~H) # Maintenance substrate + Molecules Methyl_CpG CpG(s~M) # Demethylation substrate + Molecules Open_Chromatin CpG(s~U) # Accessibility proxy + Molecules Active_Eraser TET(s~on) # TET activity status + Molecules DNMT_Attached DNMT1(b!+) # Recruited maintenance machinery +end observables + +begin functions + # Michaelis-Menten for maintenance efficiency + v_maint() = k_maint_max * (Hemi_CpG / (Km_hemi + Hemi_CpG)) + + # Michaelis-Menten for active erasure + # Michaelis-Menten for active erasure, scaled by TET activity + v_erase() = k_tet_max * (Methyl_CpG / (Km_meth + Methyl_CpG)) * (Active_Eraser / TET_tot) +end functions + +begin reaction rules + ## METHYLATION Phase + # De Novo: Random writing (Slow) + CpG(s~U) -> CpG(s~H) k_denovo + + # Maintenance: DNMT1 targets Hemi sites (Functional Rate) + # Wildcard (!?) for any methyl state sensing (Simplified) + CpG(s~H) -> CpG(s~M) v_maint() + + ## DEMETHYLATION Phase + # Active: TET erases Methyl (M -> H) + CpG(s~M) -> CpG(s~H) v_erase() + + # Passive Dilution during division (Proxied as conversion) + # Methylated sites become Hemi in daughter cells + CpG(s~M) -> CpG(s~H) k_div + # Hemi sites become Unmethylated + CpG(s~H) -> CpG(s~U) k_div + + ## RECRUITMENT Stage + # DNMT1 binds Hemi-methylated DNA (UHRF1-mediated recruitment) + CpG(s~H) + DNMT1(b) <-> CpG(s~H!1).DNMT1(b!1) k_uhrf1_bind,0.5 + + ## RESET + CpG(s~U) -> CpG(s~U) k_reset + CpG(s~H) -> CpG(s~U) k_reset + + ## TET DYNAMICS + TET(s~on) <-> TET(s~off) k_tet_inact, k_tet_act +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>400,n_steps=>200}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/dnamethylationdynamics/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/dnamethylationdynamics/metadata.yaml new file mode 100644 index 00000000..cc3160ba --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/dnamethylationdynamics/metadata.yaml @@ -0,0 +1,24 @@ +id: "dna-methylation-dynamics" +name: "dna methylation dynamics" +description: "DNA Methylation: Maintenance and de novo dynamics." +contributors: + - name: "Achyudhan" +tags: ["dna", "methylation", "dynamics", "cpg", "dnmt1", "tet", "v_maint", "v_erase"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/dna-methylation-dynamics.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/dr5apoptosissignaling/README.md b/Contributed/BNGPlayground_Examples/biology/dr5apoptosissignaling/README.md new file mode 100644 index 00000000..fd57ad18 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/dr5apoptosissignaling/README.md @@ -0,0 +1,22 @@ +# dr5 apoptosis signaling + +DR5 (TRAIL) Signaling: Extrinsic apoptosis and DISC formation. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- dr5-apoptosis-signaling.bngl + +## Tags + +dr5, apoptosis, signaling, trail, fadd, caspase8, flip, death_signal diff --git a/Contributed/BNGPlayground_Examples/biology/dr5apoptosissignaling/dr5-apoptosis-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/dr5apoptosissignaling/dr5-apoptosis-signaling.bngl new file mode 100644 index 00000000..5616177e --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/dr5apoptosissignaling/dr5-apoptosis-signaling.bngl @@ -0,0 +1,96 @@ +begin model +begin parameters + # DR5 (TRAIL) Signaling: Extrinsic apoptosis and DISC formation. + # Advanced features: DeleteMolecules for clearance and Hill kinetics for activation. + + # Reception + k_bind_trail 1e-3 + k_trim 0.8 # Receptor clustering + + # DISC Activation + k_c8_act_max 10.0 # Peak Casp-8 activation + Km_disc 200 # Threshold for apoptotic drive + n_hill 3.0 # Cooperative recruitment threshold + + # Inhibition (Life signals) + k_flip_inh 5.0 # c-FLIP isoforms (Competitive) + k_trail_clear 0.2 # Ligand neutralization (Decoy R) + + # Terminal Clearance + k_internal 1.5 # Internalisation (Spatial removal) + k_deg 0.1 # Post-activation degradation + + # Initials + TRAIL_tot 100 + DR5_tot 500 + FADD_tot 300 + Caspase8_tot 600 + FLIP_tot 200 +end parameters + +begin molecule types + TRAIL(b) + DR5(l,f,s~U~T,loc~mem~cyt) # s: trimer status + FADD(d,c) + Caspase8(b) + FLIP(b) + Death_Signal() +end molecule types + +begin seed species + TRAIL(b) TRAIL_tot + DR5(l,f,s~U,loc~mem) DR5_tot + FADD(d,c) FADD_tot + Caspase8(b) Caspase8_tot + FLIP(b) FLIP_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Apoptotic_Drive Death_Signal() # Final cell death effector + Molecules Active_DISC DR5(s~T,f!1).FADD(d!1) # Recruitment platform + Molecules Surface_DR5 DR5(loc~mem) # Receptive pool + Molecules FLIP_Block FADD(c!1).FLIP(b!1) # Inhibition presence + # Molecules Caspase8_Active Caspase8(s~active) # Effector drive (Removed: State not modeled) + Molecules Trimer_DR5 DR5(s~T,f!+) # Active platform status +end observables + +begin functions + # Sharp Hill switch for Caspase-8 activation at the DISC + v_burst() = k_c8_act_max * (Trimer_DR5 / (Km_disc + Trimer_DR5))^n_hill +end functions + +begin reaction rules + ## RECEPTION Phase + # TRAIL binds DR5 + TRAIL(b) + DR5(l) <-> TRAIL(b!1).DR5(l!1) k_bind_trail,0.1 + + # Trimerization (Active signaling status) + DR5(l!+,s~U) -> DR5(l!+,s~T) k_trim + + ## DISC Stage + # DR5 clusters recruit FADD and partners + DR5(s~T,f) + FADD(d) <-> DR5(s~T,f!1).FADD(d!1) 2.0,0.5 + FADD(d!+,c) + Caspase8(b) <-> FADD(d!+,c!1).Caspase8(b!1) 1.0,0.1 + FADD(d!+,c) + FLIP(b) <-> FADD(d!+,c!1).FLIP(b!1) k_flip_inh,0.1 + + # Caspase-8 Activation (Functional Rate) + 0 -> Death_Signal() v_burst() + + ## CLEARANCE Phase + # Active trimers internalise and are degraded + # DeleteMolecules: Signal termination + DR5(l,f,s~T,loc~mem) -> DR5(l,f,s~T,loc~cyt) k_internal + DR5(loc~cyt) -> 0 k_deg DeleteMolecules + + # Reset + TRAIL(b!+) -> 0 k_trail_clear + Death_Signal() -> 0 0.1 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>150,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/dr5apoptosissignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/dr5apoptosissignaling/metadata.yaml new file mode 100644 index 00000000..77dd9806 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/dr5apoptosissignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "dr5-apoptosis-signaling" +name: "dr5 apoptosis signaling" +description: "DR5 (TRAIL) Signaling: Extrinsic apoptosis and DISC formation." +contributors: + - name: "Achyudhan" +tags: ["dr5", "apoptosis", "signaling", "trail", "fadd", "caspase8", "flip", "death_signal"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/dr5-apoptosis-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/dualsitephosphorylation/README.md b/Contributed/BNGPlayground_Examples/biology/dualsitephosphorylation/README.md new file mode 100644 index 00000000..d46f68d1 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/dualsitephosphorylation/README.md @@ -0,0 +1,22 @@ +# dual site phosphorylation + +Dual-site phosphorylation: Requires two sequential modifications for activity. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- dual-site-phosphorylation.bngl + +## Tags + +dual, site, phosphorylation, kinase, phosphatase, substrate diff --git a/Contributed/BNGPlayground_Examples/biology/dualsitephosphorylation/dual-site-phosphorylation.bngl b/Contributed/BNGPlayground_Examples/biology/dualsitephosphorylation/dual-site-phosphorylation.bngl new file mode 100644 index 00000000..54be6bd9 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/dualsitephosphorylation/dual-site-phosphorylation.bngl @@ -0,0 +1,74 @@ +begin model +begin parameters + # Dual-site phosphorylation: Requires two sequential modifications for activity. + # Exhibits ultrasensitivity and bistability in specific contexts. + + # Kinase kinetics (Writing) + k_bind_k 1.0 # Kinase binding to substrate + k_unbind_k 0.1 # Kinase dissociation + k_phos_1 0.5 # 1st phosphorylation rate (U -> P1) + k_phos_2 0.8 # 2nd phosphorylation rate (P1 -> PP) + + # Phosphatase kinetics (Eraser) + k_bind_p 1.0 # Phosphatase binding + k_unbind_p 0.1 + k_dephos_1 0.4 # 1st dephosphorylation (PP -> P1) + k_dephos_2 0.4 # 2nd dephosphorylation (P1 -> U) + + # Cooperative influence (Allosteric proxy) + k_coop 2.0 # Speed-up of second modification + + # Initials + Kinase_tot 50 # The writer + Phosphatase_tot 50 # The eraser + Substrate_tot 200 # The target +end parameters + +begin molecule types + Kinase(b,state~off~on) + Phosphatase(b,state~off~on) + Substrate(y1~U~P,y2~U~P,b) +end molecule types + +begin seed species + Kinase(b,state~on) Kinase_tot + Phosphatase(b,state~on) Phosphatase_tot + Substrate(y1~U,y2~U,b) Substrate_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Unmodified Substrate(y1~U,y2~U) # Basal state + Molecules Mono_Phos Substrate(y1~P,y2~U),Substrate(y1~U,y2~P) # Primed + Molecules Fully_Phos Substrate(y1~P,y2~P) # ACTIVE species + Molecules Kinase_Bound Substrate(b!+) # Enzyme-substrate proxy + Molecules Phos_Level Substrate(y1~P),Substrate(y2~P) # Total stoichiometry +end observables + +begin reaction rules + ## PHOSPHORYLATION CHAIN + # Kinase binds substrate + Kinase(state~on,b) + Substrate(b) <-> Kinase(state~on,b!1).Substrate(b!1) k_bind_k,k_unbind_k + + # Phosphorylation at site y1 + Kinase(b!1).Substrate(b!1,y1~U) -> Kinase(b,state~on) + Substrate(b,y1~P) k_phos_1 + + # Phosphorylation at site y2 + Kinase(b!1).Substrate(b!1,y2~U) -> Kinase(b,state~on) + Substrate(b,y2~P) k_phos_1 + + # Accelerated second phosphorylation (The "Ultrasensitivity" requirement) + Kinase(b!1).Substrate(b!1,y1~P,y2~U) -> Kinase(b,state~on) + Substrate(b,y1~P,y2~P) k_phos_2*k_coop + Kinase(b!1).Substrate(b!1,y1~U,y2~P) -> Kinase(b,state~on) + Substrate(b,y1~P,y2~P) k_phos_2*k_coop + + ## DEPHOSPHORYLATION CHAIN + # Phosphatase removes phosphates (Stochastic preference proxy) + Phosphatase(state~on) + Substrate(y1~P) -> Phosphatase(state~on) + Substrate(y1~U) k_dephos_2 + Phosphatase(state~on) + Substrate(y2~P) -> Phosphatase(state~on) + Substrate(y2~U) k_dephos_2 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>5,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/dualsitephosphorylation/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/dualsitephosphorylation/metadata.yaml new file mode 100644 index 00000000..0c8f6c22 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/dualsitephosphorylation/metadata.yaml @@ -0,0 +1,24 @@ +id: "dual-site-phosphorylation" +name: "dual site phosphorylation" +description: "Dual-site phosphorylation: Requires two sequential modifications for activity." +contributors: + - name: "Achyudhan" +tags: ["dual", "site", "phosphorylation", "kinase", "phosphatase", "substrate"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/dual-site-phosphorylation.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/e2frbcellcycleswitch/README.md b/Contributed/BNGPlayground_Examples/biology/e2frbcellcycleswitch/README.md new file mode 100644 index 00000000..9fdc1c01 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/e2frbcellcycleswitch/README.md @@ -0,0 +1,22 @@ +# e2f rb cell cycle switch + +E2F/Rb Switch: The G1/S transition gate. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- e2f-rb-cell-cycle-switch.bngl + +## Tags + +e2f, rb, cell, cycle, switch, mitogen, cycd, cyce, p27 diff --git a/Contributed/BNGPlayground_Examples/biology/e2frbcellcycleswitch/e2f-rb-cell-cycle-switch.bngl b/Contributed/BNGPlayground_Examples/biology/e2frbcellcycleswitch/e2f-rb-cell-cycle-switch.bngl new file mode 100644 index 00000000..38aa45e4 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/e2frbcellcycleswitch/e2f-rb-cell-cycle-switch.bngl @@ -0,0 +1,100 @@ +begin model +begin parameters + # E2F/Rb Switch: The G1/S transition gate. + # Advanced features: Hill kinetics for the E2F loop and exclusion logic. + + # Growth Trigger (Mitogen/CycD) + k_synth_mit 0.5 # Drive from outside + k_phos_cycd 1.0 # Rb phosphorylation by CycD-CDK + + # E2F Amplification (Self-locking) + k_cyce_synth_max 5.0 + Km_e2f 150 # Threshold for CycE induction + n_hill 3.0 # Nonlinearity of the switch + + # Rb Control + k_rb_bind 5.0 # Rb sequesters E2F + k_phos_cyce 2.0 # Rb phosphorylation by CycE-CDK (Feedback) + + # Arrest / Stability + k_p27_inh 2.5 # CKI inhibition of CDK + k_deg_cyce 0.2 # Proteolytic clearance + k_reset 0.05 + + # Initials + Rb_tot 500 + E2F_tot 200 + p27_tot 100 + Mitogens 0 # Input drive + k_cycd_synth 0.05 # Current CycD production rate +end parameters + +begin molecule types + Mitogen() + Rb(b,s~U~P) # U: Binds E2F,P: Released + E2F(b) + CycD() + CycE(b) + p27(b) +end molecule types + +begin seed species + Mitogen() 0 + Rb(b,s~U) Rb_tot + E2F(b) E2F_tot + CycD() 0 + CycE(b) 10 + p27(b) p27_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules S_Phase_Drive E2F(b) # Free activators + Molecules CycE_Level CycE() # Positive feedback marker + Molecules Rb_Sequest Rb(b!1).E2F(b!1) # The cell cycle brake + Molecules CKI_Inhibition CycE(b!1).p27(b!1) # Arrest status + Molecules CyclinE_Count CycE() # Phase driver status + Molecules E2F_Active E2F(b) # Freedom status + Molecules HyperPhos_Rb Rb(s~P) # Inactive brake +end observables + +begin functions + # Sharp switch for E2F-mediated Cyclin E induction + v_switch() = k_cyce_synth_max * (E2F_Active^n_hill) / (Km_e2f^n_hill + E2F_Active^n_hill) +end functions + +begin reaction rules + ## REPRESSION Stage + # Rb sequesters E2F + Rb(b,s~U) + E2F(b) <-> Rb(b!1,s~U).E2F(b!1) k_rb_bind,0.1 + + ## ACTIVATION (Mitogen) + # Mitogen produces CycD,which phosphorylates Rb + 0 -> CycD() k_cycd_synth + CycD() + Rb(b!1,s~U).E2F(b!1) -> CycD() + Rb(b,s~P) + E2F(b) k_phos_cycd + + ## AMPLIFICATION (Feedback) + # Free E2F induces CycE (Functional Rate - Hill) + 0 -> CycE(b) v_switch() + + # CycE-CDK also phosphorylates Rb (Positive Feedback) + CycE(b) + Rb(b!1,s~U).E2F(b!1) -> CycE(b) + Rb(b,s~P) + E2F(b) k_phos_cyce + + ## ARREST Phase + p27(b) + CycE(b) <-> p27(b!1).CycE(b!1) k_p27_inh,0.1 + + ## RESET + Rb(s~P) -> Rb(s~U) k_reset + CycD() -> 0 k_deg_cyce + CycE() -> 0 k_deg_cyce +end reaction rules + +begin actions + generate_network({overwrite=>1}) + # Phase 1: Basal (0-20) + simulate({method=>"ode",t_end=>20,n_steps=>40}) + # Phase 2: Mitogen Stimulation (20-150) + setParameter("k_cycd_synth",0.5) + simulate({method=>"ode",t_end=>150,n_steps=>260,continue=>1}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/e2frbcellcycleswitch/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/e2frbcellcycleswitch/metadata.yaml new file mode 100644 index 00000000..718ef889 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/e2frbcellcycleswitch/metadata.yaml @@ -0,0 +1,24 @@ +id: "e2f-rb-cell-cycle-switch" +name: "e2f rb cell cycle switch" +description: "E2F/Rb Switch: The G1/S transition gate." +contributors: + - name: "Achyudhan" +tags: ["e2f", "rb", "cell", "cycle", "switch", "mitogen", "cycd", "cyce", "p27"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/e2f-rb-cell-cycle-switch.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/egfrsignalingpathway/README.md b/Contributed/BNGPlayground_Examples/biology/egfrsignalingpathway/README.md new file mode 100644 index 00000000..595a5153 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/egfrsignalingpathway/README.md @@ -0,0 +1,22 @@ +# egfr signaling pathway + +Enhanced EGFR Signaling: Combinatorial complexity with multiple phosphorylation sites. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- egfr-signaling-pathway.bngl + +## Tags + +egfr, signaling, pathway, egf, grb2, shc diff --git a/Contributed/BNGPlayground_Examples/biology/egfrsignalingpathway/egfr-signaling-pathway.bngl b/Contributed/BNGPlayground_Examples/biology/egfrsignalingpathway/egfr-signaling-pathway.bngl new file mode 100644 index 00000000..280bd2c2 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/egfrsignalingpathway/egfr-signaling-pathway.bngl @@ -0,0 +1,94 @@ +begin model +begin parameters + # Enhanced EGFR Signaling: Combinatorial complexity with multiple phosphorylation sites. + # Advanced features: Wildcards (!+, !?) and component states. + + # Binding + k_lig_bind 1.0 + k_lig_off 0.1 + k_dimer 0.5 + k_dimer_off 0.05 + + # Phosphorylation (Trans-activation) + k_phos 2.0 + k_dephos 0.5 + + # Adaptor Recruitment + k_grb2_bind 1.5 + k_grb2_off 0.2 + k_shc_bind 1.0 + k_shc_off 0.2 + + # Initials + EGF_tot 100 + EGFR_tot 200 + Grb2_tot 150 + Shc_tot 100 +end parameters + +begin molecule types + EGF(r) + # EGFR has two specific tyrosine sites + EGFR(l,d,Y1068~U~P,Y1173~U~P) + Grb2(SH2,SH3) # Binds Y1068 + Shc(PTB,Y317~U~P) # Binds Y1173 +end molecule types + +begin seed species + EGF(r) EGF_tot + EGFR(l,d,Y1068~U,Y1173~U) EGFR_tot + Grb2(SH2,SH3) Grb2_tot + Shc(PTB,Y317~U) Shc_tot +end seed species + +begin observables + Molecules Bound_EGFR EGFR(l!+) + Molecules Dimers EGFR(d!+) + + # Wildcard usage: Check phosphorylation regardless of binding status (!?) + Molecules pY1068 EGFR(Y1068~P!?) + Molecules pY1173 EGFR(Y1173~P!?) + + # Combinatorial: Phosphorylated on ANY site + Molecules Total_Phos EGFR(Y1068~P!?), EGFR(Y1173~P!?) + + Molecules Grb2_Recruited Grb2(SH2!+) + Molecules Shc_Recruited Shc(PTB!+) +end observables + +begin reaction rules + # 1. Ligand Binding + EGF(r) + EGFR(l,d) <-> EGF(r!1).EGFR(l!1,d) k_lig_bind,k_lig_off + + # 2. Dimerization + # Only ligand-bound receptors dimerize + # Don't care about phosphorylation state of Y sites yet (implicit wildcards on Y states) + EGF(r!1).EGFR(l!1,d) + EGF(r!2).EGFR(l!2,d) <-> EGF(r!1).EGFR(l!1,d!3).EGF(r!2).EGFR(l!2,d!3) k_dimer,k_dimer_off + + # 3. Trans-Phosphorylation + # Active dimer phosphorylates its sites + # Use wildcards to indicate we don't care if the OTHER site is phosphorylated + # d!1 means part of a dimer + EGFR(d!1).EGFR(d!1,Y1068~U) -> EGFR(d!1).EGFR(d!1,Y1068~P) k_phos + EGFR(d!1).EGFR(d!1,Y1173~U) -> EGFR(d!1).EGFR(d!1,Y1173~P) k_phos + + # 4. Dephosphorylation + # Access limited: Only dephosphorylate if UNBOUND (no adaptor) + EGFR(Y1068~P) -> EGFR(Y1068~U) k_dephos + EGFR(Y1173~P) -> EGFR(Y1173~U) k_dephos + + # 5. Adaptor Recruitment + # Grb2 binds pY1068 + # Use !? on d and l to show independence of those sites (though biologically linked) + # Actually standard BNG implies independence unless specified. + EGFR(Y1068~P) + Grb2(SH2) <-> EGFR(Y1068~P!1).Grb2(SH2!1) k_grb2_bind,k_grb2_off + + # Shc binds pY1173 + EGFR(Y1173~P) + Shc(PTB) <-> EGFR(Y1173~P!1).Shc(PTB!1) k_shc_bind,k_shc_off +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>100,n_steps=>200}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/egfrsignalingpathway/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/egfrsignalingpathway/metadata.yaml new file mode 100644 index 00000000..676b1ee2 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/egfrsignalingpathway/metadata.yaml @@ -0,0 +1,24 @@ +id: "egfr-signaling-pathway" +name: "egfr signaling pathway" +description: "Enhanced EGFR Signaling: Combinatorial complexity with multiple phosphorylation sites." +contributors: + - name: "Achyudhan" +tags: ["egfr", "signaling", "pathway", "egf", "grb2", "shc"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/egfr-signaling-pathway.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/eif2astressresponse/README.md b/Contributed/BNGPlayground_Examples/biology/eif2astressresponse/README.md new file mode 100644 index 00000000..40860336 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/eif2astressresponse/README.md @@ -0,0 +1,22 @@ +# eif2a stress response + +Integrated Stress Response: eIF2alpha and the translational gate. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- eif2a-stress-response.bngl + +## Tags + +eif2a, stress, response, eif2b, perk, gadd34 diff --git a/Contributed/BNGPlayground_Examples/biology/eif2astressresponse/eif2a-stress-response.bngl b/Contributed/BNGPlayground_Examples/biology/eif2astressresponse/eif2a-stress-response.bngl new file mode 100644 index 00000000..e556db8b --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/eif2astressresponse/eif2a-stress-response.bngl @@ -0,0 +1,98 @@ +begin model +begin parameters + # Integrated Stress Response: eIF2alpha and the translational gate. + # Advanced features: if function for pulsatile stress and eIF2B sequestration logic. + + # Stress Stimulus + k_stress_amp 5.0 + k_perk_act 1.0 + + # eIF2a Signaling + k_phos 2.0 # Kinase-mediated phosphorylation + k_dephos_basal 0.1 + k_dephos_fb 0.8 # GADD34-mediated (Feedback) + + # Sequestration (The inhibitory mechanism) + k_eif2b_bind 10.0 # p-eIF2a binds eIF2B (Fast/Tight) + k_eif2b_off 0.01 # Near-irreversible competitive inhibition + + # Recovery feedback + k_gadd34_synth 0.2 + k_reset 0.05 + + # Initials + eIF2a_tot 1000 + eIF2B_tot 200 # Limiting GEF factor + PERK_tot 100 + GADD34_pool 10 + k_stress_pulse 0.1 # Current stress level +end parameters + +begin molecule types + Stress() + eIF2a(b,s~U~P) + eIF2B(b,s~Active~Inactive) # The rate-limiting GEF + PERK(s~off~on) + GADD34() +end molecule types + +begin seed species + Stress() 0 + eIF2a(b,s~U) eIF2a_tot + eIF2B(b,s~Active) eIF2B_tot + PERK(s~off) PERK_tot + GADD34() GADD34_pool +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Transl_Sequest eIF2a(b!1).eIF2B(b!1) # Core inhibitory complex + Molecules Active_GEF eIF2B(s~Active) # Available translational drive + Molecules Global_Stark eIF2a(s~P) # Total stress signal + Molecules Signal_Sensor PERK(s~on) # Sensing activity + Molecules Feedback_GADD GADD34() # Recovery agent +end observables + +begin functions +end functions + +begin reaction rules + ## SENSING Phase + # Stress triggers PERK + 0 -> Stress() k_stress_pulse + Stress() + PERK(s~off) -> Stress() + PERK(s~on) k_perk_act + + ## SIGNALING Phase + # Active PERK phosphorylates eIF2alpha + PERK(s~on) + eIF2a(b,s~U) -> PERK(s~on) + eIF2a(b,s~P) k_phos + + ## SEQUESTRATION (The translational block) + # p-eIF2a acts as a competitive inhibitor of eIF2B + eIF2a(s~P,b) + eIF2B(b,s~Active) <-> eIF2a(s~P,b!1).eIF2B(b!1,s~Inactive) k_eif2b_bind,k_eif2b_off + + ## FEEDBACK & RECOVERY + # p-eIF2a induces GADD34 (Self-limit) + eIF2a(s~P) -> eIF2a(s~P) + GADD34() k_gadd34_synth + + # GADD34 drives dephosphorylation + GADD34() + eIF2a(s~P) -> GADD34() + eIF2a(s~U) k_dephos_fb + + ## RESET Phase + Stress() -> 0 0.2 + PERK(s~on) -> PERK(s~off) 0.1 + GADD34() -> 0 0.05 + eIF2a(s~P) -> eIF2a(s~U) k_dephos_basal +end reaction rules + +begin actions + generate_network({overwrite=>1}) + # Phase 1: Basal (0-30) + simulate({method=>"ode",t_end=>30,n_steps=>100}) + # Phase 2: Stress Pulse (30-100) + setParameter("k_stress_pulse",5.0) + simulate({method=>"ode",t_end=>100,n_steps=>200,continue=>1}) + # Phase 3: Recovery (100-200) + setParameter("k_stress_pulse",0.1) + simulate({method=>"ode",t_end=>200,n_steps=>200,continue=>1}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/eif2astressresponse/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/eif2astressresponse/metadata.yaml new file mode 100644 index 00000000..23c419a9 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/eif2astressresponse/metadata.yaml @@ -0,0 +1,24 @@ +id: "eif2a-stress-response" +name: "eif2a stress response" +description: "Integrated Stress Response: eIF2alpha and the translational gate." +contributors: + - name: "Achyudhan" +tags: ["eif2a", "stress", "response", "eif2b", "perk", "gadd34"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/eif2a-stress-response.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/endosomalsortingrab/README.md b/Contributed/BNGPlayground_Examples/biology/endosomalsortingrab/README.md new file mode 100644 index 00000000..c93522a7 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/endosomalsortingrab/README.md @@ -0,0 +1,22 @@ +# endosomal sorting rab + +Endosomal Sorting: Rab GTPase conversion and effector recruitment. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- endosomal-sorting-rab.bngl + +## Tags + +endosomal, sorting, rab, rab5, rab7, effector, v_gef, v_gap_drive diff --git a/Contributed/BNGPlayground_Examples/biology/endosomalsortingrab/endosomal-sorting-rab.bngl b/Contributed/BNGPlayground_Examples/biology/endosomalsortingrab/endosomal-sorting-rab.bngl new file mode 100644 index 00000000..643088db --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/endosomalsortingrab/endosomal-sorting-rab.bngl @@ -0,0 +1,88 @@ +begin model +begin parameters + # Endosomal Sorting: Rab GTPase conversion and effector recruitment. + # Advanced features: TotalRate for conversion drive and saturable kinetics. + + # GTPase Cycle + k_gef_max 2.0 # Peak GEF drive + Km_gef 100 # Saturation of GEF activity + k_gap_max 1.5 # Peak GAP drive + Km_gap 150 # Saturation of GAP activity + + # Conversion (Rab5 -> Rab7 proxy) + k_convert 0.5 # Positive feedback on conversion + + # Effector Recruitment + k_eff_bind 10.0 # Fast effector docking + k_mem_on 1.5 # GDI-mediated delivery + k_mem_off 0.2 # GDI-mediated extraction + + # Initials + Rab5_tot 500 + Rab7_tot 500 + GEF5_tot 20 + Eff_tot 200 +end parameters + +begin molecule types + Rab5(s~GDP~GTP,b,loc~cyt~mem) + Rab7(s~GDP~GTP,b,loc~cyt~mem) + Effector(b) +end molecule types + +begin seed species + Rab5(s~GDP,b,loc~mem) Rab5_tot + Rab7(s~GDP,b,loc~mem) Rab7_tot + Effector(b) Eff_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Early_Endosome Rab5(s~GTP,loc~mem) # Early marker + Molecules Late_Endosome Rab7(s~GTP,loc~mem) # Late marker + Molecules Conversion_Node Rab5(b!1).Effector(b!1) # Active signaling node + Molecules Mem_Total Rab5(loc~mem),Rab7(loc~mem) # Membrane density + Molecules Cyto_Pool Rab5(loc~cyt),Rab7(loc~cyt) # Recycling pool + Molecules Rab5_GDP_Mem Rab5(s~GDP,loc~mem) # Substrate for GEF + Molecules Total_Rab5_GTP Rab5(s~GTP) # Global driver +end observables + +begin functions + # Saturable GEF kinetics (Functional Rate) + v_gef() = k_gef_max * (Rab5_GDP_Mem / (Km_gef + Rab5_GDP_Mem)) + + # Conversion drive (TotalRate) + # Active Rab5 promotes its own inactivation and Rab7 recruitment + v_gap_drive() = k_gap_max * (Total_Rab5_GTP / 100) +end functions + +begin reaction rules + ## ACTIVATION + # GEF activates Rab5 (Functional Rate) + Rab5(s~GDP,loc~mem) -> Rab5(s~GTP,loc~mem) v_gef() + + # Rab5 recruitment of effector + Rab5(s~GTP,loc~mem,b) + Effector(b) <-> Rab5(s~GTP,loc~mem,b!1).Effector(b!1) k_eff_bind,0.5 + + ## CONVERSION (The Handover) + # GAP inactivates Rab5 (Driven by Rab5 density - TotalRate) + Rab5(s~GTP) -> Rab5(s~GDP) v_gap_drive() TotalRate + + # Active Rab5 recruits Rab7 GEF (Simplified as direct Rab7 activation) + Rab5(s~GTP,loc~mem) + Rab7(s~GDP,loc~mem) -> Rab5(s~GTP,loc~mem) + Rab7(s~GTP,loc~mem) k_convert + + ## RECYCLING + # GDI extracts GDP-bound Rabs + Rab5(s~GDP,loc~mem) <-> Rab5(s~GDP,loc~cyt) k_mem_off,k_mem_on + Rab7(s~GDP,loc~mem) <-> Rab7(s~GDP,loc~cyt) k_mem_off,k_mem_on + + ## RESET + Rab7(s~GTP) -> Rab7(s~GDP) 0.05 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>20,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/endosomalsortingrab/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/endosomalsortingrab/metadata.yaml new file mode 100644 index 00000000..4a7fa402 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/endosomalsortingrab/metadata.yaml @@ -0,0 +1,24 @@ +id: "endosomal-sorting-rab" +name: "endosomal sorting rab" +description: "Endosomal Sorting: Rab GTPase conversion and effector recruitment." +contributors: + - name: "Achyudhan" +tags: ["endosomal", "sorting", "rab", "rab5", "rab7", "effector", "v_gef", "v_gap_drive"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/endosomal-sorting-rab.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/erknucleartranslocation/README.md b/Contributed/BNGPlayground_Examples/biology/erknucleartranslocation/README.md new file mode 100644 index 00000000..127b53de --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/erknucleartranslocation/README.md @@ -0,0 +1,22 @@ +# erk nuclear translocation + +ERK Translocation: Spatial signaling and transcriptional assembly. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- erk-nuclear-translocation.bngl + +## Tags + +erk, nuclear, translocation, mek, elk1, dusp, transcription_signal diff --git a/Contributed/BNGPlayground_Examples/biology/erknucleartranslocation/erk-nuclear-translocation.bngl b/Contributed/BNGPlayground_Examples/biology/erknucleartranslocation/erk-nuclear-translocation.bngl new file mode 100644 index 00000000..bf9b21ae --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/erknucleartranslocation/erk-nuclear-translocation.bngl @@ -0,0 +1,93 @@ +begin model +begin parameters + # ERK Translocation: Spatial signaling and transcriptional assembly. + # Advanced features: MoveConnected for pERK-partner transport and Hill output. + + # Activation + k_mek_act 1.0 # Cytoplasmic MEK drive + k_dimer 1.5 # pERK dimerization + + # Transport + k_import 2.0 # Nuclear entry + k_export 0.5 # Nuclear exit + + # Nuclear Action + k_nuc_bind 10.0 # Elk1 engagement + k_trans_max 5.0 # Peak transcription + Km_target 200 # Target occupancy threshold + n_hill 2.0 # Non-linear transcriptional response + + # Phosphatases (Feedback) + k_dusp 0.8 # Nuclear DUSP drive + k_reset 0.05 + + # Initials + ERK_tot 1000 + MEK_tot 100 + Elk1_tot 150 + DUSP_tot 80 +end parameters + +begin molecule types + ERK(b,s~U~P,loc~cyt~nuc) + MEK(s~off~on) + Elk1(b) + DUSP(b) + Transcription_Signal() +end molecule types + +begin seed species + ERK(b,s~U,loc~cyt) ERK_tot + MEK(s~on) MEK_tot + Elk1(b) Elk1_tot + DUSP(b) DUSP_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Functional_ELK ERK(s~P,loc~nuc,b!1).Elk1(b!1) # Active TF complex + Molecules Total_pERK ERK(s~P) # Global signal burden + Molecules Nuclear_pERK ERK(s~P,loc~nuc) # Locally active pool + Molecules Cyto_Buffer ERK(loc~cyt) # Reservoir capacity + Molecules Trans_Activity Transcription_Signal() # Biological output proxy + Molecules ELK1_Occupancy Elk1(b!+) # TF drive status +end observables + +begin functions + # Hill-driven transcriptional burst + v_trans() = k_trans_max * (ELK1_Occupancy / (Km_target + ELK1_Occupancy))^n_hill +end functions + +begin reaction rules + ## ACTIVATION + # MEK phosphorylates ERK in cytoplasm + MEK(s~on) + ERK(b,loc~cyt,s~U) -> MEK(s~on) + ERK(b,loc~cyt,s~P) k_mek_act + + # pERK forms dimers (Higher affinity for import machinery) + ERK(s~P,b) + ERK(s~P,b) <-> ERK(s~P,b!1).ERK(s~P,b!1) k_dimer,0.2 + + ## TRANSPORT Stage + # pERK moves to nucleus (MoveConnected: dimers stay together) + ERK(s~P,loc~cyt,b!?) <-> ERK(s~P,loc~nuc,b!?) k_import,k_export MoveConnected + + ## NUCLEAR ACTION + # pERK binds target (Elk1) + # elk1 is only in nucleus (Implicit by binding location) + ERK(loc~nuc,s~P,b) + Elk1(b) <-> ERK(loc~nuc,s~P,b!1).Elk1(b!1) k_nuc_bind,0.5 + + # Transcription Induction (Functional Rate) + 0 -> Transcription_Signal() v_trans() + + ## RECOVERY + # DUSP-mediated nuclear dephosphorylation + DUSP(b) + ERK(loc~nuc,s~P,b) -> DUSP(b) + ERK(loc~nuc,s~U,b) k_dusp + + # Export of inactive ERK + ERK(s~U,loc~nuc,b) -> ERK(s~U,loc~cyt,b) 1.0 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>150,n_steps=>300}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/erknucleartranslocation/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/erknucleartranslocation/metadata.yaml new file mode 100644 index 00000000..5e0d3bd9 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/erknucleartranslocation/metadata.yaml @@ -0,0 +1,24 @@ +id: "erk-nuclear-translocation" +name: "erk nuclear translocation" +description: "ERK Translocation: Spatial signaling and transcriptional assembly." +contributors: + - name: "Achyudhan" +tags: ["erk", "nuclear", "translocation", "mek", "elk1", "dusp", "transcription_signal"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/erk-nuclear-translocation.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/erstressresponse/README.md b/Contributed/BNGPlayground_Examples/biology/erstressresponse/README.md new file mode 100644 index 00000000..c4759aae --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/erstressresponse/README.md @@ -0,0 +1,22 @@ +# er stress response + +Rate Constants + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- er-stress-response.bngl + +## Tags + +er, stress, response, unfoldedprotein, perk, eif2a, chaperone diff --git a/Contributed/BNGPlayground_Examples/biology/erstressresponse/er-stress-response.bngl b/Contributed/BNGPlayground_Examples/biology/erstressresponse/er-stress-response.bngl new file mode 100644 index 00000000..fbf815bd --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/erstressresponse/er-stress-response.bngl @@ -0,0 +1,59 @@ +begin model +begin parameters + # Rate Constants + k_unfold 0.04 # Protein unfolding rate (stress) + k_chaperone 0.3 # Chaperone binding/refolding + k_perk 0.5 # PERK activation + k_translation 0.25 # Chaperone induction + k_recovery 0.08 # Deactivation/Recovery +end parameters + +begin molecule types + UnfoldedProtein(level~low~high) + PERK(state~inactive~active) + EIF2A(phos~U~P) + Chaperone(level~basal~induced) +end molecule types + +begin seed species + # Initial State + UnfoldedProtein(level~low) 40 + PERK(state~inactive) 30 + EIF2A(phos~U) 100 + Chaperone(level~basal) 50 +end seed species + +begin reaction rules + # 1. Stress: Accumulation of Unfolded Proteins + UnfoldedProtein(level~low) -> UnfoldedProtein(level~high) k_unfold + + # 2. PERK Activation by Unfolded Proteins + UnfoldedProtein(level~high) + PERK(state~inactive) -> UnfoldedProtein(level~high) + PERK(state~active) k_perk + + # 3. eIF2a Phosphorylation (Translational Attenuation) + PERK(state~active) + EIF2A(phos~U) -> PERK(state~active) + EIF2A(phos~P) k_perk + + # 4. Adaptive Response: Chaperone Induction + EIF2A(phos~P) + Chaperone(level~basal) -> EIF2A(phos~P) + Chaperone(level~induced) k_translation + + # 5. Protein Refolding / Stress Resolution + Chaperone(level~induced) + UnfoldedProtein(level~high) -> Chaperone(level~induced) + UnfoldedProtein(level~low) k_chaperone + + # 6. Recovery / Reset + EIF2A(phos~P) -> EIF2A(phos~U) k_recovery + PERK(state~active) -> PERK(state~inactive) k_recovery + Chaperone(level~induced) -> Chaperone(level~basal) k_recovery +end reaction rules + +begin observables + Molecules Active_PERK PERK(state~active) + Molecules Phospho_EIF2A EIF2A(phos~P) + Molecules Induced_Chaperone Chaperone(level~induced) +end observables + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>0,t_end=>70,n_steps=>240}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/erstressresponse/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/erstressresponse/metadata.yaml new file mode 100644 index 00000000..79f46538 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/erstressresponse/metadata.yaml @@ -0,0 +1,24 @@ +id: "er-stress-response" +name: "er stress response" +description: "Rate Constants" +contributors: + - name: "Achyudhan" +tags: ["er", "stress", "response", "unfoldedprotein", "perk", "eif2a", "chaperone"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/er-stress-response.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/fgfsignalingpathway/README.md b/Contributed/BNGPlayground_Examples/biology/fgfsignalingpathway/README.md new file mode 100644 index 00000000..68e443eb --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/fgfsignalingpathway/README.md @@ -0,0 +1,22 @@ +# fgf signaling pathway + +FGF Signaling: FGFR dimerization and FRS2-Ras/PI3K relay. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- fgf-signaling-pathway.bngl + +## Tags + +fgf, signaling, pathway, fgfr, frs2, spry, rasgef, internalized_rec diff --git a/Contributed/BNGPlayground_Examples/biology/fgfsignalingpathway/fgf-signaling-pathway.bngl b/Contributed/BNGPlayground_Examples/biology/fgfsignalingpathway/fgf-signaling-pathway.bngl new file mode 100644 index 00000000..546a7f29 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/fgfsignalingpathway/fgf-signaling-pathway.bngl @@ -0,0 +1,99 @@ +begin model +begin parameters + # FGF Signaling: FGFR dimerization and FRS2-Ras/PI3K relay. + # Advanced features: exclude_reactants for FRS2 stability and DeleteMolecules clearance. + + # Assembly + k_bind_fgf 1e-4 # FGF binding + k_dimer 1.5 # Receptor pairing + + # FRS2 Relay (The Hub) + k_frs2_bind 1.0 # Recruitment to dimer + k_frs2_phos 0.8 # Trans-activation + + # Downstream Branches + k_ras_act 1.2 # RasGEF branch + k_pi3k_act 0.6 # PI3K branch + + # Feedback Control + k_spry_inh 5.0 # Sprouty sequestration + k_reset 0.05 + + # Internalization + k_intern 0.8 # Clathrin-mediated removal + k_deg 0.1 # Lysosomal decay + + # Initials + FGF_tot 100 + FGFR_tot 400 + FRS2_tot 500 + Spry_tot 150 + Grb2_SOS 200 +end parameters + +begin molecule types + FGF(b,state~U~H) # H: Heparan bound proxy + FGFR(l,d,s~U~P) + FRS2(b,r,s~U~P) + Spry(b) + RasGEF(b) + Internalized_Rec() +end molecule types + +begin seed species + FGF(b,state~U) FGF_tot + FGFR(l,d,s~U) FGFR_tot + FRS2(b,r,s~U) FRS2_tot + Spry(b) 100 + RasGEF(b) 200 +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Active_Dimer FGFR(d!+,s~P) # Signalling intensity + Molecules FRS2_Hub_Status FRS2(s~P) # Core transducing pool + Molecules Ras_Drive_Comp FRS2(r!1).RasGEF(b!1) # Mitogenic relay activity + Molecules Total_Bound_FGF FGF(b!+) # Receptor occupancy + Molecules Spry_Brake Spry(b!+) # Inhibition status +end observables + +begin reaction rules + ## ASSEMBLY Phase + # FGF binds FGFR + FGF(b) + FGFR(l) <-> FGF(b!1).FGFR(l!1) k_bind_fgf,0.1 + + # Dimerization (Active trans-phosphorylation) + FGF(b!1).FGFR(l!1,d,s~U) + FGF(b!2).FGFR(l!2,d,s~U) <-> FGF(b!1).FGFR(l!1,d!3,s~P).FGF(b!2).FGFR(l!2,d!3,s~P) k_dimer,0.2 + + ## HUB RELAY Stage + # FGFR dimer recruits FRS2 + # exclude_reactants to prevent redundant re-binding while p-FRS2 is active + FGFR(s~P) + FRS2(b,s~U) <-> FGFR(s~P!1).FRS2(b!1,s~U) k_frs2_bind,0.5 + + # FRS2 Phosphorylation + FGFR(s~P!1).FRS2(b!1,s~U) -> FGFR(s~P!1).FRS2(b!1,s~P) k_frs2_phos + + # p-FRS2 Hub recruits downstream effectors (RasGEF) + FRS2(s~P,r) + RasGEF(b) <-> FRS2(s~P,r!1).RasGEF(b!1) k_ras_act,0.1 + + ## FEEDBACK Controlling + # Sprouty blocks FRS2 recruitment + Spry(b) + FGFR(s~P) <-> Spry(b!1).FGFR(s~P!1) k_spry_inh,0.5 + + ## INTERNALIZATION Stage + # Active dimers are internalized and terminated + # DeleteMolecules: Final removal of the active signaling factor + FGFR(s~P) -> Internalized_Rec() k_intern + Internalized_Rec() -> 0 k_deg DeleteMolecules + + # Reset + FRS2(s~P) -> FRS2(s~U) k_reset + FRS2(s~P,r!1).RasGEF(b!1) -> FRS2(s~U,r) + RasGEF(b) 0.5 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>40,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/fgfsignalingpathway/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/fgfsignalingpathway/metadata.yaml new file mode 100644 index 00000000..fb650eec --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/fgfsignalingpathway/metadata.yaml @@ -0,0 +1,24 @@ +id: "fgf-signaling-pathway" +name: "fgf signaling pathway" +description: "FGF Signaling: FGFR dimerization and FRS2-Ras/PI3K relay." +contributors: + - name: "Achyudhan" +tags: ["fgf", "signaling", "pathway", "fgfr", "frs2", "spry", "rasgef", "internalized_rec"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/fgf-signaling-pathway.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/gas6axlsignaling/README.md b/Contributed/BNGPlayground_Examples/biology/gas6axlsignaling/README.md new file mode 100644 index 00000000..0d38cb55 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/gas6axlsignaling/README.md @@ -0,0 +1,22 @@ +# gas6 axl signaling + +GAS6/AXL Signaling: AKT activation and SOCS feedback. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- gas6-axl-signaling.bngl + +## Tags + +gas6, axl, signaling, pi3k, akt, socs, survival_burst diff --git a/Contributed/BNGPlayground_Examples/biology/gas6axlsignaling/gas6-axl-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/gas6axlsignaling/gas6-axl-signaling.bngl new file mode 100644 index 00000000..48d12376 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/gas6axlsignaling/gas6-axl-signaling.bngl @@ -0,0 +1,107 @@ +begin model +begin parameters + # GAS6/AXL Signaling: AKT activation and SOCS feedback. + # Advanced features: Hill kinetics for AKT activation and TotalRate for dimer drive. + + # Receptor Assembly + k_bind_gas6 1e-4 + k_dimer 1.5 # Ligand-induced pairing + + # Relay Stage + k_axl_phos_max 5.0 # Trans-activation in dimers + k_pi3k_rec 1.0 # PI3K recruitment platform + + # AKT Terminal Axis + k_akt_act_max 10.0 # Peak catalytic drive + Km_akt 250 # Threshold for survival signal + n_hill 3.0 # Ultra-sensitive survival switch + + # Feedback (SOCS Axis) + k_socs_synth 0.1 # Transduction-induced feedback + k_socs_inh 2.5 # Competitive inhibition of p-AXL + + # Reset Phase + k_reset 0.05 + k_deg 0.02 # Basal turnover + + # Initials + GAS6_tot 100 + AXL_tot 400 + PI3K_tot 150 + AKT_tot 800 + SOCS_init 10 +end parameters + +begin molecule types + GAS6(b) + AXL(l,d,s~U~P) + PI3K(b) + AKT(s~U~P) + SOCS(b) + Survival_Burst() +end molecule types + +begin seed species + GAS6(b) GAS6_tot + AXL(l,d,s~U) AXL_tot + PI3K(b) PI3K_tot + AKT(s~U) AKT_tot + SOCS(b) SOCS_init +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Survival_Relay Survival_Burst() # Integrated biological response + Molecules Total_pAKT AKT(s~P) # Signaling effector level + Molecules Active_Platform AXL(s~P!1).PI3K(b!1) # Recruitment intensity + Molecules SOCS_Feedback SOCS() # Inhibitory feedback status + Molecules AXL_Dimer_Pool AXL(d!+) # Structural cluster status +end observables + +begin functions + # Dimer-driven trans-phosphorylation (TotalRate) + v_axl_phos() = k_axl_phos_max * (AXL_Dimer_Pool / 200) + + # Hill-driven AKT survival switch + v_akt_switch() = k_akt_act_max * (Total_pAKT^n_hill) / (Km_akt^n_hill + Total_pAKT^n_hill) +end functions + +begin reaction rules + ## ASSEMBLY Phase + # GAS6 binds receptor + GAS6(b) + AXL(l) <-> GAS6(b!1).AXL(l!1) k_bind_gas6,0.1 + + # Monomers dimerize + AXL(l!+,d) + AXL(l!+,d) <-> AXL(l!+,d!1).AXL(l!+,d!1) k_dimer,0.2 + + ## RELAY Stage + # Trans-autophosphorylation in dimers (TotalRate) + AXL(s~U) -> AXL(s~P) v_axl_phos() TotalRate + + # pAXL recruits PI3K + AXL(s~P) + PI3K(b) <-> AXL(s~P!1).PI3K(b!1) k_pi3k_rec,0.2 + + # PI3K/AXL complex activates AKT (Functional Rate - Hill) + AXL(s!1).PI3K(b!1) + AKT(s~U) -> AXL(s!1).PI3K(b!1) + AKT(s~P) 2.0 + 0 -> Survival_Burst() v_akt_switch() + + ## FEEDBACK Controlling + # pAKT induces SOCS + AKT(s~P) -> AKT(s~P) + SOCS(b) k_socs_synth + + # SOCS inhibits active AXL + SOCS(b) + AXL(s~P) <-> SOCS(b!1).AXL(s~P!1) k_socs_inh,0.1 + + ## RESET Stage + AXL(s~P) -> AXL(s~U) k_reset + AKT(s~P) -> AKT(s~U) k_reset + SOCS(b) -> 0 k_deg + Survival_Burst() -> 0 0.1 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>150,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/gas6axlsignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/gas6axlsignaling/metadata.yaml new file mode 100644 index 00000000..36f6ebf9 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/gas6axlsignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "gas6-axl-signaling" +name: "gas6 axl signaling" +description: "GAS6/AXL Signaling: AKT activation and SOCS feedback." +contributors: + - name: "Achyudhan" +tags: ["gas6", "axl", "signaling", "pi3k", "akt", "socs", "survival_burst"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/gas6-axl-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/geneexpressiontoggle/README.md b/Contributed/BNGPlayground_Examples/biology/geneexpressiontoggle/README.md new file mode 100644 index 00000000..6f39a7b5 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/geneexpressiontoggle/README.md @@ -0,0 +1,22 @@ +# gene expression toggle + +Kinetic Parameters + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- gene-expression-toggle.bngl + +## Tags + +gene, expression, toggle, mrna, protein diff --git a/Contributed/BNGPlayground_Examples/biology/geneexpressiontoggle/gene-expression-toggle.bngl b/Contributed/BNGPlayground_Examples/biology/geneexpressiontoggle/gene-expression-toggle.bngl new file mode 100644 index 00000000..f278cbf9 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/geneexpressiontoggle/gene-expression-toggle.bngl @@ -0,0 +1,49 @@ +begin model +begin parameters + # Kinetic Parameters + k_activate 0.002 # Basal activation rate + k_repress 0.001 # Repression rate + k_transcription 1.0 # mRNA synthesis rate + k_translation 5.0 # Protein synthesis rate + k_mrna_deg 0.2 # mRNA degradation + k_protein_deg 0.05 # Protein degradation +end parameters + +begin molecule types + Gene(active~off~on) + mRNA() + Protein() +end molecule types + +begin seed species + Gene(active~off) 1 +end seed species + +begin observables + Molecules Promoter_on Gene(active~on) + Molecules Promoter_off Gene(active~off) + Molecules Transcripts mRNA() + Molecules Protein Protein() +end observables + +begin reaction rules + # 1. Gene Activation/Inactivation (Bursting) + Gene(active~off) -> Gene(active~on) k_activate + Gene(active~on) -> Gene(active~off) k_repress + + # 2. Transcription + Gene(active~on) -> Gene(active~on) + mRNA() k_transcription + + # 3. Translation + mRNA() -> mRNA() + Protein() k_translation + + # 4. Degradation + mRNA() -> 0 k_mrna_deg + Protein() -> 0 k_protein_deg +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>500,n_steps=>250}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/geneexpressiontoggle/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/geneexpressiontoggle/metadata.yaml new file mode 100644 index 00000000..bd8e46c9 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/geneexpressiontoggle/metadata.yaml @@ -0,0 +1,24 @@ +id: "gene-expression-toggle" +name: "gene expression toggle" +description: "Kinetic Parameters" +contributors: + - name: "Achyudhan" +tags: ["gene", "expression", "toggle", "mrna", "protein"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/gene-expression-toggle.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/glioblastomaegfrviiisignaling/README.md b/Contributed/BNGPlayground_Examples/biology/glioblastomaegfrviiisignaling/README.md new file mode 100644 index 00000000..9451c1d3 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/glioblastomaegfrviiisignaling/README.md @@ -0,0 +1,22 @@ +# glioblastoma egfrviii signaling + +EGFRvIII in Glioblastoma: Constitutive AKT drive and escape from decay. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- glioblastoma-egfrviii-signaling.bngl + +## Tags + +glioblastoma, egfrviii, signaling, pi3k, akt, oncogenic_output, v_viii_act diff --git a/Contributed/BNGPlayground_Examples/biology/glioblastomaegfrviiisignaling/glioblastoma-egfrviii-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/glioblastomaegfrviiisignaling/glioblastoma-egfrviii-signaling.bngl new file mode 100644 index 00000000..b7aa56a4 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/glioblastomaegfrviiisignaling/glioblastoma-egfrviii-signaling.bngl @@ -0,0 +1,94 @@ +begin model +begin parameters + # EGFRvIII in Glioblastoma: Constitutive AKT drive and escape from decay. + # Advanced features: Michaelis-Menten constitutive drive and DeleteMolecules evasion. + + # Constitutive Activation + k_vIII_act_max 2.0 # Peak constitutive phosphorylation + Km_vIII 100 # Threshold for kinase drive + + # PI3K/AKT Relay (The oncogenic engine) + k_pi3k_rec 1.5 # Recruitment to active vIII + k_akt_act_max 10.0 # Characteristic high AKT drive + Km_akt 400 # High threshold survival gate + n_hill 3.5 # Ultra-sensitive survival switch + + # Persistence (Evasion of degradation) + k_esc_deg 0.05 # Internalization rate (Low for mutant) + k_internal_WT 0.5 # Comparison (for WT simulation) + k_lys_deg 0.02 # Lysosomal decay + + # Negative Feedback + k_ptp1b_inh 0.8 # Phosphatase-mediated reset + k_reset 0.05 + + # Initials + vIII_tot 500 + PI3K_tot 200 + AKT_tot 1000 + PTP1B_tot 100 +end parameters + +begin molecule types + EGFRvIII(b,s~U~P,loc~mem~cyt) + PI3K(b) + AKT(s~U~P) + Oncogenic_Output() +end molecule types + +begin seed species + EGFRvIII(b,s~U,loc~mem) vIII_tot + PI3K(b) PI3K_tot + AKT(s~U) AKT_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Survival_Burst Oncogenic_Output() # Final cancerous drive + Molecules Total_pAKT AKT(s~P) # Sustained survival effector + Molecules vIII_Platform EGFRvIII(s~P!1).PI3K(b!1) # Active signaling machinery + Molecules Mem_vIII EGFRvIII(loc~mem) # Surface persistence + Molecules Active_vIII EGFRvIII(s~P) # Phospho-oncoprotein status + Molecules vIII_Substrate EGFRvIII(s~U,loc~mem) # Available kinase pool +end observables + +begin functions + # Constitutive Michaelis-Menten drive (Independent of ligands) + v_vIII_act() = k_vIII_act_max * (vIII_Substrate / (Km_vIII + vIII_Substrate)) + + # Sharp survival switch + v_cancer_drive() = k_akt_act_max * (Total_pAKT^n_hill) / (Km_akt^n_hill + Total_pAKT^n_hill) +end functions + +begin reaction rules + ## ACTIVATION + # Constitutive autophosphorylation (Functional Rate) + EGFRvIII(s~U,loc~mem) -> EGFRvIII(s~P,loc~mem) v_vIII_act() + + ## ONCOGENIC RELAY Stage + # p-vIII recruits PI3K + EGFRvIII(s~P) + PI3K(b) <-> EGFRvIII(s~P!1).PI3K(b!1) k_pi3k_rec,0.2 + + # Active complex drives AKT (Functional Rate - Hill) + EGFRvIII(s!1).PI3K(b!1) + AKT(s~U) -> EGFRvIII(s!1).PI3K(b!1) + AKT(s~P) 5.0 + 0 -> Oncogenic_Output() v_cancer_drive() + + ## EVASION Stage + # vIII internalizes slowly (Persistent surface signal) + EGFRvIII(loc~mem) -> EGFRvIII(loc~cyt) k_esc_deg + + # Lysosomal degradation (DeleteMolecules: final removal) + EGFRvIII(loc~cyt) -> 0 k_lys_deg DeleteMolecules + + ## RESET + EGFRvIII(s~P) -> EGFRvIII(s~U) k_ptp1b_inh + AKT(s~P) -> AKT(s~U) k_reset + Oncogenic_Output() -> 0 0.1 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>150,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/glioblastomaegfrviiisignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/glioblastomaegfrviiisignaling/metadata.yaml new file mode 100644 index 00000000..ab13780f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/glioblastomaegfrviiisignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "glioblastoma-egfrviii-signaling" +name: "glioblastoma egfrviii signaling" +description: "EGFRvIII in Glioblastoma: Constitutive AKT drive and escape from decay." +contributors: + - name: "Achyudhan" +tags: ["glioblastoma", "egfrviii", "signaling", "pi3k", "akt", "oncogenic_output", "v_viii_act"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/glioblastoma-egfrviii-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/glycolysisbranchpoint/README.md b/Contributed/BNGPlayground_Examples/biology/glycolysisbranchpoint/README.md new file mode 100644 index 00000000..c1a2e982 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/glycolysisbranchpoint/README.md @@ -0,0 +1,22 @@ +# glycolysis branch point + +BioNetGen model: glycolysis branch point + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- glycolysis-branch-point.bngl + +## Tags + +glycolysis, branch, point, glucose, atp, biomass diff --git a/Contributed/BNGPlayground_Examples/biology/glycolysisbranchpoint/glycolysis-branch-point.bngl b/Contributed/BNGPlayground_Examples/biology/glycolysisbranchpoint/glycolysis-branch-point.bngl new file mode 100644 index 00000000..064586a6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/glycolysisbranchpoint/glycolysis-branch-point.bngl @@ -0,0 +1,45 @@ +begin model +begin parameters + # Flux Rates + k_gly 2.0 # Glycolytic flux (Glucose -> ATP) + k_branch 0.8 # Branch point to biomass (e.g., PPP) + k_atp_use 0.5 # Cellular energy demand + k_biomass_use 0.3 # Anabolic consumption +end parameters + +begin molecule types + Glucose() + ATP() + Biomass() +end molecule types + +begin seed species + Glucose() 100 +end seed species + +begin observables + Molecules Glucose_pool Glucose() + Molecules ATP_pool ATP() + Molecules Biomass Biomass() +end observables + +begin reaction rules + # 1. Glycolysis (Catabolism) + # Glucose oxidation produces ATP + Glucose() -> ATP() k_gly + + # 2. Biosynthesis (Anabolism) + # Branch pathway uses Glucose for biomass precursors + Glucose() -> Biomass() k_branch + + # 3. Consumption / Turnover + ATP() -> 0 k_atp_use + Biomass() -> 0 k_biomass_use +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>40,n_steps=>120}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/glycolysisbranchpoint/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/glycolysisbranchpoint/metadata.yaml new file mode 100644 index 00000000..bb998fd6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/glycolysisbranchpoint/metadata.yaml @@ -0,0 +1,24 @@ +id: "glycolysis-branch-point" +name: "glycolysis branch point" +description: "BioNetGen model: glycolysis branch point" +contributors: + - name: "Achyudhan" +tags: ["glycolysis", "branch", "point", "glucose", "atp", "biomass"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/glycolysis-branch-point.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/gpcrdesensitizationarrestin/README.md b/Contributed/BNGPlayground_Examples/biology/gpcrdesensitizationarrestin/README.md new file mode 100644 index 00000000..8ffbdf60 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/gpcrdesensitizationarrestin/README.md @@ -0,0 +1,22 @@ +# gpcr desensitization arrestin + +GPCR Desensitization: Arrestin-mediated spatial sequestration. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- gpcr-desensitization-arrestin.bngl + +## Tags + +gpcr, desensitization, arrestin, ligand, gprotein diff --git a/Contributed/BNGPlayground_Examples/biology/gpcrdesensitizationarrestin/gpcr-desensitization-arrestin.bngl b/Contributed/BNGPlayground_Examples/biology/gpcrdesensitizationarrestin/gpcr-desensitization-arrestin.bngl new file mode 100644 index 00000000..a1597177 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/gpcrdesensitizationarrestin/gpcr-desensitization-arrestin.bngl @@ -0,0 +1,93 @@ +begin model +begin parameters + # GPCR Desensitization: Arrestin-mediated spatial sequestration. + # Advanced features: MoveConnected for internalized receptors and SAT kinetics. + + # Activation + k_bind_lig 1e-4 + k_act_max 5.0 # Peak G-protein relay + Km_rec 300 # Threshold for G-protein activation + + # Desensitization (GRK Axis) + k_grk_phos 2.0 # GRK mediated phosphorylation + k_arr_bind 5.0 # Arrestin binding (High affinity to pGPCR) + + # Sequestration (Spatial) + k_internal 2.0 # Clathrin-mediated entry + k_recycle 0.5 # Return to surface (Sensitization) + + # Regulation (Feedback) + k_pka_phos 0.8 # PKA-mediated heterologous desensitization + k_reset 0.05 + + # Initials + GPCR_tot 500 + Ligand_tot 100 + Arrestin_tot 300 + GRK_tot 100 + Gprotein_tot 800 +end parameters + +begin molecule types + Ligand(b) + GPCR(l,b,s~U~P,loc~mem~cyt) + Arrestin(b) + Gprotein(s~off~on) +end molecule types + +begin seed species + Ligand(b) Ligand_tot + GPCR(l,b,s~U,loc~mem) GPCR_tot + Arrestin(b) Arrestin_tot + Gprotein(s~off) Gprotein_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules G_Signal_Act Gprotein(s~on) # Primary output transducer + Molecules Desensitized_R GPCR(s~P) # Phosphorylated pool + Molecules Arrestin_Block GPCR(b!1).Arrestin(b!1) # Terminated receptor status + Molecules Internal_Rec GPCR(loc~cyt) # Sequestered reservoir + Molecules Surface_Rec GPCR(loc~mem) # signaling-competent pool + Molecules Active_Rec_Mem GPCR(l!+,s~U,loc~mem) # Functional relay driver +end observables + +begin functions + # Saturable G-protein activation by active receptors + v_act() = k_act_max * (Active_Rec_Mem / (Km_rec + Active_Rec_Mem)) +end functions + +begin reaction rules + ## ACTIVATION Phase + # Ligand-Receptor binding + Ligand(b) + GPCR(l,loc~mem) <-> Ligand(b!1).GPCR(l!1,loc~mem) k_bind_lig,0.1 + + # G-protein activation (Functional Rate - Saturation) + Gprotein(s~off) -> Gprotein(s~on) v_act() + + ## DESENSITIZATION Stage + # GRK phosphorylates active (ligand-bound) GPCR + GPCR(l!+,s~U,loc~mem) -> GPCR(l!+,s~P,loc~mem) k_grk_phos + + # Arrestin binds phospho-GPCR (High affinity) + GPCR(s~P,b,loc~mem) + Arrestin(b) <-> GPCR(s~P,b!1,loc~mem).Arrestin(b!1) k_arr_bind,0.2 + + ## SEQUESTRATION Phase + # Arrestin-bound complex is internalized (MoveConnected: partner stays) + GPCR(b!1,loc~mem).Arrestin(b!1) -> GPCR(l,b!1,loc~cyt,s~P).Arrestin(b!1) k_internal MoveConnected + + # Recycling (Resensitization) + GPCR(loc~cyt) -> GPCR(loc~mem) k_recycle + GPCR(s~P) -> GPCR(s~U) 0.1 + + ## RESET Phase + Gprotein(s~on) -> Gprotein(s~off) 0.5 + Ligand(b!1).GPCR(l!1) -> Ligand(b) + GPCR(l) 0.1 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>150,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/gpcrdesensitizationarrestin/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/gpcrdesensitizationarrestin/metadata.yaml new file mode 100644 index 00000000..3e7a6969 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/gpcrdesensitizationarrestin/metadata.yaml @@ -0,0 +1,24 @@ +id: "gpcr-desensitization-arrestin" +name: "gpcr desensitization arrestin" +description: "GPCR Desensitization: Arrestin-mediated spatial sequestration." +contributors: + - name: "Achyudhan" +tags: ["gpcr", "desensitization", "arrestin", "ligand", "gprotein"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/gpcr-desensitization-arrestin.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/hedgehogsignalingpathway/README.md b/Contributed/BNGPlayground_Examples/biology/hedgehogsignalingpathway/README.md new file mode 100644 index 00000000..b14fdce6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/hedgehogsignalingpathway/README.md @@ -0,0 +1,22 @@ +# hedgehog signaling pathway + +Hedgehog (Hh) Signaling: Ciliary translocation and Gli processing. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- hedgehog-signaling-pathway.bngl + +## Tags + +hedgehog, signaling, pathway, hh, ptch, smo, gli, sufu diff --git a/Contributed/BNGPlayground_Examples/biology/hedgehogsignalingpathway/hedgehog-signaling-pathway.bngl b/Contributed/BNGPlayground_Examples/biology/hedgehogsignalingpathway/hedgehog-signaling-pathway.bngl new file mode 100644 index 00000000..dbd52043 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/hedgehogsignalingpathway/hedgehog-signaling-pathway.bngl @@ -0,0 +1,99 @@ +begin model +begin parameters + # Hedgehog (Hh) Signaling: Ciliary translocation and Gli processing. + # Advanced features: MoveConnected for Gli-Sufu transport and Hill feedback. + + # Early Relay + k_hh_bind 1e-4 + k_ptch_deg_max 2.0 # Hh-induced Ptch degradation + Km_ptch 300 # Threshold for Ptch clearance + n_hill 3.0 # Cooperativity of internalization + + # Smoothened Dynamics + k_smo_rel 1.5 # Release of Smo inhibition + k_cilia_on 2.0 # Transport into primary cilium + k_cilia_off 0.2 # Exit from cilium + + # GLI Processing (The Hub) + k_gli_act 2.5 # Active Smo promotes GLI_act + k_gli_rep 1.0 # Default GLI processing to repressor + + # Feedback + k_ptch_synth 0.1 # Hh-induced negative feedback + k_reset 0.05 + + # Initials + Hh_tot 100 + Ptch_tot 400 + Smo_tot 300 + Gli_tot 600 + Sufu_tot 200 # GLI-sequestering partner +end parameters + +begin molecule types + Hh(b) + Ptch(b,state~A~I) + Smo(b,s~U~A,loc~cyt~cilia) + Gli(b,s~rep~act,loc~cyt~nuc) + Sufu(b) +end molecule types + +begin seed species + Hh(b) Hh_tot + Ptch(b,state~A) Ptch_tot + Smo(b,s~U,loc~cyt) Smo_tot + Gli(b,s~rep,loc~cyt) Gli_tot + Sufu(b) Sufu_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Active_Output Gli(s~act,loc~nuc) # Final effector factor + Molecules Repressor_Level Gli(s~rep) # Basal inhibition pool + Molecules Ciliary_Smo Smo(loc~cilia,s~A) # Spatial signaling competence + Molecules Ptch_Density Ptch(b,state~A) # Feedback/Inhibitor status + Molecules Gli_Sufu_Comp Gli(b!1).Sufu(b!1) # Sequestration status + Molecules Hh_Signal Hh(b!+) # Ligand occupancy +end observables + +begin functions + # Hill-driven Ptch degradation by Hedgehog + v_ptch_sink() = k_ptch_deg_max * (Hh_Signal / (Km_ptch + Hh_Signal))^n_hill +end functions + +begin reaction rules + ## RECEPTION Phase + # Hh binds and inactivates Ptch + Hh(b) + Ptch(b,state~A) <-> Hh(b!1).Ptch(b!1,state~I) k_hh_bind,0.1 + + # Hh induces Ptch degradation (Functional Rate - Hill) + Ptch(state~I!+) -> 0 v_ptch_sink() + + ## RELAY Stage + # Depletion of Ptch allows Smo to enter cilia and activate + Smo(loc~cyt,s~U) <-> Smo(loc~cilia,s~A) k_cilia_on,k_cilia_off + + # Hh/Smo induces Gli activation + Smo(loc~cilia,s~A) + Gli(s~rep) -> Smo(loc~cilia,s~A) + Gli(s~act) k_gli_act + + ## TRANSPORT Phase + # Active Gli (sequestered by Sufu) moves to nucleus + # MoveConnected: Partner (Sufu) stays bound during transport + Gli(b,loc~cyt) <-> Gli(b,loc~nuc) 0.5,0.1 MoveConnected + Gli(b) + Sufu(b) <-> Gli(b!1).Sufu(b!1) 2.0,0.2 + + ## FEEDBACK Controlling + # Nuclear GliAct induces Ptch synthesis (Self-limitation) + Gli(s~act,loc~nuc) -> Gli(s~act,loc~nuc) + Ptch(b,state~A) k_ptch_synth + + ## RESET Phase + Gli(s~act) -> Gli(s~rep) k_reset + Ptch(b,state~A) -> 0 0.05 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>100,n_steps=>400}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/hedgehogsignalingpathway/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/hedgehogsignalingpathway/metadata.yaml new file mode 100644 index 00000000..7c73a4e0 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/hedgehogsignalingpathway/metadata.yaml @@ -0,0 +1,24 @@ +id: "hedgehog-signaling-pathway" +name: "hedgehog signaling pathway" +description: "Hedgehog (Hh) Signaling: Ciliary translocation and Gli processing." +contributors: + - name: "Achyudhan" +tags: ["hedgehog", "signaling", "pathway", "hh", "ptch", "smo", "gli", "sufu"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/hedgehog-signaling-pathway.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/hematopoieticgrowthfactor/README.md b/Contributed/BNGPlayground_Examples/biology/hematopoieticgrowthfactor/README.md new file mode 100644 index 00000000..5754a534 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/hematopoieticgrowthfactor/README.md @@ -0,0 +1,22 @@ +# hematopoietic growth factor + +Kinetic Parameters + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- hematopoietic-growth-factor.bngl + +## Tags + +hematopoietic, growth, factor, epo, epor, jak2, stat5 diff --git a/Contributed/BNGPlayground_Examples/biology/hematopoieticgrowthfactor/hematopoietic-growth-factor.bngl b/Contributed/BNGPlayground_Examples/biology/hematopoieticgrowthfactor/hematopoietic-growth-factor.bngl new file mode 100644 index 00000000..2a6fc5d2 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/hematopoieticgrowthfactor/hematopoietic-growth-factor.bngl @@ -0,0 +1,63 @@ +begin model +begin parameters + # Kinetic Parameters + k_bind 0.015 # Ligand-Receptor Association + k_unbind 0.0015 # Dissociation + k_receptor 0.35 # Receptor activation + k_jak 0.4 # JAK2 activation + k_signal 0.3 # STAT5 phosphorylation + k_reset 0.09 # Deactivation/Reset +end parameters + +begin molecule types + EPO(r) # Erythropoietin (Ligand) + EPOR(l,state~inactive~active) # EPO Receptor + JAK2(state~off~on) # Janus Kinase 2 + STAT5(loc~cyto~nuc,phos~U~P) # Signal Transducer & Activator of Transcription 5 +end molecule types + +begin seed species + EPO(r) 0 + EPOR(l,state~inactive) 40 + JAK2(state~off) 30 + STAT5(loc~cyto,phos~U) 120 +end seed species + +begin reaction rules + # 1. Ligand Binding + EPO(r) + EPOR(l,state~inactive) <-> EPO(r!1).EPOR(l!1,state~inactive) k_bind,k_unbind + + # 2. Receptor Activation + EPO(r!1).EPOR(l!1,state~inactive) -> EPO(r!1).EPOR(l!1,state~active) k_receptor + + # 3. JAK2 Recruitment and Activation + EPOR(l!+,state~active) + JAK2(state~off) -> EPOR(l!+,state~active) + JAK2(state~on) k_jak + + # 4. Downstream Signaling (STAT5) + # JAK2 phosphorylates STAT5 + JAK2(state~on) + STAT5(loc~cyto,phos~U) -> JAK2(state~on) + STAT5(loc~cyto,phos~P) k_signal + + # 5. Nuclear Translocation + STAT5(loc~cyto,phos~P) -> STAT5(loc~nuc,phos~P) k_signal + + # 6. Reset / Negative Feedback Loop + STAT5(loc~nuc,phos~P) -> STAT5(loc~cyto,phos~U) k_reset + JAK2(state~on) -> JAK2(state~off) k_reset + EPOR(l,state~active) -> EPOR(l,state~inactive) k_reset +end reaction rules + +begin observables + Molecules Active_EPOR EPOR(state~active) + Molecules Active_JAK2 JAK2(state~on) + Molecules Nuclear_STAT5 STAT5(loc~nuc,phos~P) +end observables + +begin actions + generate_network({overwrite=>1}) + + # Simple stimulatory simulation for parity + setConcentration("EPO(r)", 100) + simulate({method=>"ode",t_end=>100,n_steps=>200}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/hematopoieticgrowthfactor/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/hematopoieticgrowthfactor/metadata.yaml new file mode 100644 index 00000000..e86e23ec --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/hematopoieticgrowthfactor/metadata.yaml @@ -0,0 +1,24 @@ +id: "hematopoietic-growth-factor" +name: "hematopoietic growth factor" +description: "Kinetic Parameters" +contributors: + - name: "Achyudhan" +tags: ["hematopoietic", "growth", "factor", "epo", "epor", "jak2", "stat5"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/hematopoietic-growth-factor.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/hif1adegradationloop/README.md b/Contributed/BNGPlayground_Examples/biology/hif1adegradationloop/README.md new file mode 100644 index 00000000..c0d58bb9 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/hif1adegradationloop/README.md @@ -0,0 +1,22 @@ +# hif1a degradation loop + +HIF-1alpha Oxygen Sensing: Hydroxylation and VHL-mediated decay. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- hif1a_degradation_loop.bngl + +## Tags + +hif1a, degradation, loop, vhl, arnt, v_hydrox diff --git a/Contributed/BNGPlayground_Examples/biology/hif1adegradationloop/hif1a_degradation_loop.bngl b/Contributed/BNGPlayground_Examples/biology/hif1adegradationloop/hif1a_degradation_loop.bngl new file mode 100644 index 00000000..889cf474 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/hif1adegradationloop/hif1a_degradation_loop.bngl @@ -0,0 +1,92 @@ +begin model +begin parameters + # HIF-1alpha Oxygen Sensing: Hydroxylation and VHL-mediated decay. + # Advanced features: Multi-phase simulation for pulsatile hypoxia. + + # Synthesis & Oxygen Pressure + k_synth 1.0 # Constant synthesis + k_phd_max 5.0 # Peak hydroxylation drive + Km_hif 300 # Threshold for PHD + O2_Sens 1.0 # 1.0 Normoxia, 0.05 Hypoxia + + # VHL Cycle (The Eraser) + k_vhl_bind 10.0 # Rapid recognition of OH-HIF + k_vhl_deg 50.0 # Proteasomal destruction + + # Stabilizing Relay + k_import 2.0 # Entry of unhydroxylated HIF + k_arnt_bind 5.0 # Nuclear partnership + + # physiological Feedback + k_vegf_synth 0.1 # Induced hypoxic output + + # Initials + HIF_tot 50 + VHL_tot 200 + ARNT_tot 150 +end parameters + +begin molecule types + HIF1a(site~U~OH,b,loc~cyt~nuc) + VHL(b) + ARNT(b) +end molecule types + +begin seed species + HIF1a(b,site~U,loc~cyt) HIF_tot + VHL(b) VHL_tot + ARNT(b) ARNT_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Hypoxia_Factor HIF1a(b!1,loc~nuc).ARNT(b!1) # Functional TF dimer + Molecules Total_HIF HIF1a() # Stabilization tracker + Molecules OH_HIF_Mark HIF1a(site~OH) # Modification status + Molecules VHL_Captured HIF1a(b!1).VHL(b!1) # Degradation intermediate + Molecules Nuclear_Accum HIF1a(loc~nuc) # Local concentration + Molecules HIF_Substrate HIF1a(site~U,loc~cyt) # Proteasomal substrate +end observables + +begin functions + # Oxygen-dependent Michaelis-Menten hydroxylation + # Decreases sharply in hypoxia + v_hydrox() = k_phd_max * (HIF_Substrate / (Km_hif + HIF_Substrate)) * O2_Sens +end functions + +begin reaction rules + ## SENSING Phase + # Continuous synthesis (Input) + 0 -> HIF1a(b,site~U,loc~cyt) k_synth + + # Hydroxylation (Functional Rate - O2/Sat) + HIF1a(b,site~U,loc~cyt) -> HIF1a(b,site~OH,loc~cyt) v_hydrox() + + ## DEGRADING Stage + # VHL captures hydroxylated HIF (Rapid) + HIF1a(b,site~OH,loc~cyt) + VHL(b) <-> HIF1a(b!1,site~OH,loc~cyt).VHL(b!1) k_vhl_bind,0.5 + HIF1a(b!1,site~OH,loc~cyt).VHL(b!1) -> VHL(b) + HIF1a(b,site~OH,loc~cyt) k_vhl_deg + + ## STABILIZING Stage (The Hypoxic Shift) + # Unhydroxylated HIF accumulates and enters nucleus + HIF1a(b,site~U,loc~cyt) <-> HIF1a(b,site~U,loc~nuc) k_import,0.1 + + # Nuclear HIF binds ARNT + HIF1a(b,loc~nuc,site~U) + ARNT(b) <-> HIF1a(b!1,loc~nuc,site~U).ARNT(b!1) k_arnt_bind,0.5 + + ## RESET Phase + HIF1a() -> 0 0.02 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + # Phase 1: Normoxia (0-40) + simulate({method=>"ode",t_end=>40,n_steps=>80}) + # Phase 2: Hypoxia (40-100) + setParameter("O2_Sens",0.05) + simulate({method=>"ode",t_end=>100,n_steps=>120,continue=>1}) + # Phase 3: Normoxia recovery (100-150) + setParameter("O2_Sens",1.0) + simulate({method=>"ode",t_end=>150,n_steps=>100,continue=>1}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/hif1adegradationloop/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/hif1adegradationloop/metadata.yaml new file mode 100644 index 00000000..49075fb9 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/hif1adegradationloop/metadata.yaml @@ -0,0 +1,24 @@ +id: "hif1a_degradation_loop" +name: "hif1a degradation loop" +description: "HIF-1alpha Oxygen Sensing: Hydroxylation and VHL-mediated decay." +contributors: + - name: "Achyudhan" +tags: ["hif1a", "degradation", "loop", "vhl", "arnt", "v_hydrox"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/hif1a_degradation_loop.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/hypoxiaresponsesignaling/README.md b/Contributed/BNGPlayground_Examples/biology/hypoxiaresponsesignaling/README.md new file mode 100644 index 00000000..a6d6e302 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/hypoxiaresponsesignaling/README.md @@ -0,0 +1,22 @@ +# hypoxia response signaling + +Rate Constants + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- hypoxia-response-signaling.bngl + +## Tags + +hypoxia, response, signaling, oxygensensor, hif1, vegf diff --git a/Contributed/BNGPlayground_Examples/biology/hypoxiaresponsesignaling/hypoxia-response-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/hypoxiaresponsesignaling/hypoxia-response-signaling.bngl new file mode 100644 index 00000000..4543e85b --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/hypoxiaresponsesignaling/hypoxia-response-signaling.bngl @@ -0,0 +1,57 @@ +begin model +begin parameters + # Rate Constants + k_drop 0.01 # O2 drop rate (Hypoxia onset) + k_restore 0.02 # Reoxygenation + k_hif_synth 0.5 # Basal HIF1 synthesis + k_hif_deg 0.3 # HIF1 degradation (O2-dependent) + k_stabilize 0.4 # HIF1 stabilization by sensor + k_relax 0.05 # Destabilization + k_vegf 0.6 # VEGF transcription + k_vegf_deg 0.1 # VEGF turnover +end parameters + +begin molecule types + OxygenSensor(state~norm~hyp) # PHD/VHL pathway proxy + HIF1(state~unstable~stable) # Hypoxia Inducible Factor 1 + VEGF() # Vascular Endothelial Growth Factor +end molecule types + +begin seed species + OxygenSensor(state~norm) 1 + HIF1(state~unstable) 20 +end seed species + +begin observables + Molecules Hypoxic_sensor OxygenSensor(state~hyp) + Molecules Stable_HIF1 HIF1(state~stable) + Molecules VEGF_pool VEGF() +end observables + +begin reaction rules + # 1. Oxygen Sensing + OxygenSensor(state~norm) -> OxygenSensor(state~hyp) k_drop + OxygenSensor(state~hyp) -> OxygenSensor(state~norm) k_restore + + # 2. HIF1 Turnover + 0 -> HIF1(state~unstable) k_hif_synth + HIF1(state~unstable) -> 0 k_hif_deg + + # 3. Stabilization (Hypoxia blocks degradation) + OxygenSensor(state~hyp) + HIF1(state~unstable) -> OxygenSensor(state~hyp) + HIF1(state~stable) k_stabilize + + # 4. Destabilization / Re-equilibration + HIF1(state~stable) -> HIF1(state~unstable) k_relax + + # 5. Target Gene Induction (Angiogenesis) + HIF1(state~stable) -> HIF1(state~stable) + VEGF() k_vegf + + # 6. Clearance + VEGF() -> 0 k_vegf_deg +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>500,n_steps=>200}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/hypoxiaresponsesignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/hypoxiaresponsesignaling/metadata.yaml new file mode 100644 index 00000000..f442f3de --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/hypoxiaresponsesignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "hypoxia-response-signaling" +name: "hypoxia response signaling" +description: "Rate Constants" +contributors: + - name: "Achyudhan" +tags: ["hypoxia", "response", "signaling", "oxygensensor", "hif1", "vegf"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/hypoxia-response-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/il1bsignaling/README.md b/Contributed/BNGPlayground_Examples/biology/il1bsignaling/README.md new file mode 100644 index 00000000..91fdff5b --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/il1bsignaling/README.md @@ -0,0 +1,22 @@ +# il1b signaling + +IL-1beta Signaling: MyD88/IRAK assembly and NF-kB translocation. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- il1b-signaling.bngl + +## Tags + +il1b, signaling, il1ri, myd88, irak, nfkb diff --git a/Contributed/BNGPlayground_Examples/biology/il1bsignaling/il1b-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/il1bsignaling/il1b-signaling.bngl new file mode 100644 index 00000000..755bad09 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/il1bsignaling/il1b-signaling.bngl @@ -0,0 +1,95 @@ +begin model +begin parameters + # IL-1beta Signaling: MyD88/IRAK assembly and NF-kB translocation. + # Advanced features: TotalRate for signal amplification and Hill kinetics for relay. + + # Reception + k_bind_il1 0.01 + k_trim 1.0 # Receptor clustering drive + + # MyD88 Relay (The Scaffold) + k_myd88_max 2.0 # Peak recruitment speed + Km_myd88 200 # Saturation threshold + + # IRAK Signal Burst + k_irak_act_max 10.0 + Km_signal 300 # Threshold for downstream drive + n_hill 3.0 # Cooperative relay switch + + # NFkB Drive + k_nfkb_trans 2.0 # Nuclear translocation + k_reset 0.05 + k_ikba_synth 0.1 # Negative feedback loop + + # Initials + IL1b_tot 100 + IL1RI_tot 300 + MyD88_tot 400 + IRAK_tot 500 + NFkB_tot 600 +end parameters + +begin molecule types + IL1b(b) + IL1RI(l,f,b,s~U~A) # f: focal recruitment,s: active cluster + MyD88(b) + IRAK(b,s~U~P) + NFkB(loc~cyt~nuc,s~off~on) +end molecule types + +begin seed species + IL1b(b) IL1b_tot + IL1RI(l,f,b,s~U) IL1RI_tot + MyD88(b) MyD88_tot + IRAK(b,s~U) IRAK_tot + NFkB(loc~cyt,s~off) NFkB_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules ProInflam_NFkB NFkB(loc~nuc,s~on) # Final transcriptional drive + Molecules Signal_Burst IRAK(b,s~P) # Peak relay intensity + Molecules Active_DISC IL1RI(s~A!1).MyD88(b!1) # Recruitment platform + Molecules Receptor_Occ IL1RI(l!+) # Ligand occupancy status + Molecules Total_Bound_L IL1b(b!+) # Mass balance tracker + Molecules Active_Clusters IL1RI(s~A) # High-order relay drive +end observables + +begin functions + # Dimer/Cluster-driven IRAK activation (TotalRate) + v_signal_burst() = k_irak_act_max * (Active_Clusters / 10)^n_hill +end functions + +begin reaction rules + ## RECEPTION Phase + # IL-1b binds receptor + IL1b(b) + IL1RI(l) <-> IL1b(b!1).IL1RI(l!1) k_bind_il1,0.1 + + # clustering activates recruitment (Simplified) + IL1RI(l!+,s~U) -> IL1RI(l!+,s~A) k_trim + + ## RELAY Stage + # Active receptor clusters recruit MyD88 + IL1RI(s~A) + MyD88(b) <-> IL1RI(s~A!1).MyD88(b!1) 2.0,0.5 + + # Signal Burst: MyD88/IRAK amplification (Functional Rate - Hill) + 0 -> IRAK(b,s~P) v_signal_burst() + + # p-IRAK converts NFkB to active form + IRAK(b,s~P) + NFkB(loc~cyt,s~off) -> IRAK(b,s~P) + NFkB(loc~nuc,s~on) k_nfkb_trans + + ## FEEDBACK Controlling + # Nuclear NFkB induces its own inhibitor (IkBa) - simplified as direct reset + NFkB(loc~nuc) -> NFkB(loc~cyt,s~off) k_ikba_synth + + ## RESET + IRAK(b,s~P) -> IRAK(b,s~U) k_reset + IL1RI(s~A) -> IL1RI(s~U) 0.05 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>150,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/il1bsignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/il1bsignaling/metadata.yaml new file mode 100644 index 00000000..c177eb0f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/il1bsignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "il1b-signaling" +name: "il1b signaling" +description: "IL-1beta Signaling: MyD88/IRAK assembly and NF-kB translocation." +contributors: + - name: "Achyudhan" +tags: ["il1b", "signaling", "il1ri", "myd88", "irak", "nfkb"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/il1b-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/il6jakstatpathway/README.md b/Contributed/BNGPlayground_Examples/biology/il6jakstatpathway/README.md new file mode 100644 index 00000000..2e53a39a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/il6jakstatpathway/README.md @@ -0,0 +1,22 @@ +# il6 jak stat pathway + +IL-6 Signaling: gp130 hexamerization and pSTAT3 import. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- il6-jak-stat-pathway.bngl + +## Tags + +il6, jak, stat, pathway, gp130, stat3, socs diff --git a/Contributed/BNGPlayground_Examples/biology/il6jakstatpathway/il6-jak-stat-pathway.bngl b/Contributed/BNGPlayground_Examples/biology/il6jakstatpathway/il6-jak-stat-pathway.bngl new file mode 100644 index 00000000..b128030f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/il6jakstatpathway/il6-jak-stat-pathway.bngl @@ -0,0 +1,101 @@ +begin model +begin parameters + # IL-6 Signaling: gp130 hexamerization and pSTAT3 import. + # Advanced features: MoveConnected for pSTAT3 dimers and SAT kinetics for SOCS. + + # Reception + k_bind_il6 1e-5 + k_hexamer 1.5 # Formation of active signaling unit + + # JAK Signaling + k_jak_act 2.0 # Trans-activation + k_stat_phos 1.2 # Recruitment and phosphorylation + + # Negative Feedback (SOCS Axis) + k_socs_max 5.0 # Peak inhibitory speed + Km_jak 200 # Threshold for SOCS inhibition + + # Nuclear Translocation + k_import 2.5 # Active factor entry + k_export 0.5 # Nuclear exit + + # Gene Induction + k_socs_synth 0.2 # Feed-forward inhibition induction + k_reset 0.05 + + # Initials + IL6_tot 100 + gp130_tot 400 # Limiting receptor factor + STAT3_tot 600 + SOCS_init 10 +end parameters + +begin molecule types + IL6(b) + gp130(b1,b2,s~U~P) + STAT3(b,s~U~P,loc~cyt~nuc) + SOCS(b) +end molecule types + +begin seed species + IL6(b) IL6_tot + gp130(b1,b2,s~U) gp130_tot + STAT3(b,s~U,loc~cyt) STAT3_tot + SOCS(b) SOCS_init +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Active_TF STAT3(s~P,loc~nuc) # Functional transcriptional factor + Molecules pgp130_Signals gp130(s~P) # Active signaling platform status + Molecules Global_pSTAT3 STAT3(s~P) # Total activation burden + Molecules SOCS_Feedback SOCS() # Inhibition status + Molecules Nuclear_Pool STAT3(loc~nuc) # Local concentration + # Molecules Active_Platform gp130(s!1).JAK(b!1) # Phosphorylation hub (Removed: JAK not defined) + Molecules Active_gp130 gp130(s~P) # Functional inhibitor substrate +end observables + +begin functions + # Saturable SOCS inhibition of JAK-mediated phosphorylation + v_socs_inh() = k_socs_max * (Active_gp130 / (Km_jak + Active_gp130)) +end functions + +begin reaction rules + ## RECEPTION Phase + # IL-6 binds gp130 + IL6(b) + gp130(b1) <-> IL6(b!1).gp130(b1!1) 1.0,0.1 + + # gp130 Dimerization (Active Unit) + gp130(b2,s~U) + gp130(b2,s~U) <-> gp130(b2!1,s~U).gp130(b2!1,s~U) k_hexamer,0.2 + + ## SIGNALING Stage + # Trans-activation of gp130 cluster + gp130(b2!+,s~U) -> gp130(b2!+,s~P) k_jak_act + + # p-gp130 recruits and phosphorylates STAT3 + gp130(s~P) + STAT3(loc~cyt,s~U) -> gp130(s~P) + STAT3(loc~cyt,s~P) k_stat_phos + + # p-STAT3 forms dimers for nuclear translocation + STAT3(s~P,b) + STAT3(s~P,b) <-> STAT3(s~P,b!1).STAT3(s~P,b!1) 5.0,0.2 + + ## TRANSPORT Phase + # p-STAT3 moves to nucleus (MoveConnected: dimers stay together) + STAT3(loc~cyt,s~P) <-> STAT3(loc~nuc,s~P) k_import,k_export MoveConnected + + ## FEEDBACK Controlling + # Nuclear STAT3 induces SOCS + STAT3(loc~nuc,s~P) -> STAT3(loc~nuc,s~P) + SOCS(b) k_socs_synth + + # SOCS inhibits active gp130 (Functional Rate - Saturation) + SOCS(b) + gp130(s~P) -> SOCS(b) + gp130(s~U) v_socs_inh() + + ## RESET + STAT3(s~P) -> STAT3(s~U) k_reset + SOCS() -> 0 0.1 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>600,n_steps=>300}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/il6jakstatpathway/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/il6jakstatpathway/metadata.yaml new file mode 100644 index 00000000..c55a3b27 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/il6jakstatpathway/metadata.yaml @@ -0,0 +1,24 @@ +id: "il6-jak-stat-pathway" +name: "il6 jak stat pathway" +description: "IL-6 Signaling: gp130 hexamerization and pSTAT3 import." +contributors: + - name: "Achyudhan" +tags: ["il6", "jak", "stat", "pathway", "gp130", "stat3", "socs"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/il6-jak-stat-pathway.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/immunesynapseformation/README.md b/Contributed/BNGPlayground_Examples/biology/immunesynapseformation/README.md new file mode 100644 index 00000000..01cab1dc --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/immunesynapseformation/README.md @@ -0,0 +1,22 @@ +# immune synapse formation + +Kinetic Parameters + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- immune-synapse-formation.bngl + +## Tags + +immune, synapse, formation, tcr, pmhc, lck, zap70 diff --git a/Contributed/BNGPlayground_Examples/biology/immunesynapseformation/immune-synapse-formation.bngl b/Contributed/BNGPlayground_Examples/biology/immunesynapseformation/immune-synapse-formation.bngl new file mode 100644 index 00000000..b688e0bb --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/immunesynapseformation/immune-synapse-formation.bngl @@ -0,0 +1,54 @@ +begin model +begin parameters + # Kinetic Parameters + k_bind 0.1 # TCR-pMHC interaction + k_unbind 0.0012 # Dissociation + k_lck 0.45 # Lck kinase activation + k_zap 0.35 # ZAP70 phosphorylation + k_reset 0.08 # Deactivation/Phosphatase +end parameters + +begin molecule types + TCR(p,state~inactive~active) # T Cell Receptor + pMHC(r) # Peptide-MHC Complex + Lck(state~off~on) # Src Family Kinase + ZAP70(phos~U~P) # Zeta-chain-associated protein kinase 70 +end molecule types + +begin seed species + TCR(p,state~inactive) 80 + pMHC(r) 60 + Lck(state~off) 40 + ZAP70(phos~U) 70 +end seed species + +begin reaction rules + # 1. Immune Recognition (Synapse Nucleation) + TCR(p,state~inactive) + pMHC(r) <-> TCR(p!1,state~inactive).pMHC(r!1) k_bind,k_unbind + + # 2. Kinase Recruitment / Activation + # Lck is recruited to the bound TCR complex + Lck(state~off) + TCR(p!1,state~inactive).pMHC(r!1) -> Lck(state~on) + TCR(p!1,state~active).pMHC(r!1) k_lck + + # 3. Downstream Signaling + # Active TCR recruits/activates ZAP70 + TCR(p!+,state~active) + ZAP70(phos~U) -> TCR(p!+,state~active) + ZAP70(phos~P) k_zap + + # 4. Reset Mechanisms (Phosphatases/Disassembly) + ZAP70(phos~P) -> ZAP70(phos~U) k_reset + TCR(p,state~active) -> TCR(p,state~inactive) k_reset + Lck(state~on) -> Lck(state~off) k_reset +end reaction rules + +begin observables + Molecules Bound_TCR TCR(p!+,state~inactive) + Molecules Active_TCR TCR(state~active) + Molecules Phospho_ZAP70 ZAP70(phos~P) +end observables + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>0,t_end=>40,n_steps=>150}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/immunesynapseformation/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/immunesynapseformation/metadata.yaml new file mode 100644 index 00000000..fa54441d --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/immunesynapseformation/metadata.yaml @@ -0,0 +1,24 @@ +id: "immune-synapse-formation" +name: "immune synapse formation" +description: "Kinetic Parameters" +contributors: + - name: "Achyudhan" +tags: ["immune", "synapse", "formation", "tcr", "pmhc", "lck", "zap70"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/immune-synapse-formation.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/inflammasomeactivation/README.md b/Contributed/BNGPlayground_Examples/biology/inflammasomeactivation/README.md new file mode 100644 index 00000000..f489e066 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/inflammasomeactivation/README.md @@ -0,0 +1,22 @@ +# inflammasome activation + +Rate Constants + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- inflammasome-activation.bngl + +## Tags + +inflammasome, activation, sensor, asc, caspase1, il1b diff --git a/Contributed/BNGPlayground_Examples/biology/inflammasomeactivation/inflammasome-activation.bngl b/Contributed/BNGPlayground_Examples/biology/inflammasomeactivation/inflammasome-activation.bngl new file mode 100644 index 00000000..504ccaf8 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/inflammasomeactivation/inflammasome-activation.bngl @@ -0,0 +1,59 @@ +begin model +begin parameters + # Rate Constants + k_prime 0.05 # Signal 1 (NF-kB mediated priming) + k_activation 0.4 # Signal 2 (PAMP/DAMP sensing) + k_assembly 0.3 # Oligomerization + k_processing 0.25 # Pro-IL1B cleavage + k_reset 0.07 # Turnover +end parameters + +begin molecule types + Sensor(state~resting~primed~active) # NLRP3 or similar + ASC(state~free~clustered) # Adaptor protein + Caspase1(state~inactive~active) # Effector enzyme + IL1B(state~pro~mature) # Cytokine +end molecule types + +begin seed species + Sensor(state~resting) 40 + ASC(state~free) 60 + Caspase1(state~inactive) 50 + IL1B(state~pro) 80 +end seed species + +begin reaction rules + # 1. Priming Step (Signal 1) + Sensor(state~resting) -> Sensor(state~primed) k_prime + + # 2. Activation Step (Signal 2) + Sensor(state~primed) -> Sensor(state~active) k_activation + + # 3. Inflammasome Assembly + # Sensor recruits ASC + Sensor(state~active) + ASC(state~free) -> Sensor(state~active) + ASC(state~clustered) k_assembly + # ASC recruits Caspase-1 + ASC(state~clustered) + Caspase1(state~inactive) -> ASC(state~clustered) + Caspase1(state~active) k_assembly + + # 4. Cytokine Processing + # Active Caspase-1 cleaves pro-IL-1B + Caspase1(state~active) + IL1B(state~pro) -> Caspase1(state~active) + IL1B(state~mature) k_processing + + # 5. Reset / Turnover + Caspase1(state~active) -> Caspase1(state~inactive) k_reset + ASC(state~clustered) -> ASC(state~free) k_reset + Sensor(state~active) -> Sensor(state~resting) k_reset +end reaction rules + +begin observables + Molecules Primed_Sensor Sensor(state~primed) + Molecules Active_Caspase1 Caspase1(state~active) + Molecules Mature_IL1B IL1B(state~mature) +end observables + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>0,t_end=>80,n_steps=>160}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/inflammasomeactivation/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/inflammasomeactivation/metadata.yaml new file mode 100644 index 00000000..2105e08b --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/inflammasomeactivation/metadata.yaml @@ -0,0 +1,24 @@ +id: "inflammasome-activation" +name: "inflammasome activation" +description: "Rate Constants" +contributors: + - name: "Achyudhan" +tags: ["inflammasome", "activation", "sensor", "asc", "caspase1", "il1b"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/inflammasome-activation.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/inositolphosphatemetabolism/README.md b/Contributed/BNGPlayground_Examples/biology/inositolphosphatemetabolism/README.md new file mode 100644 index 00000000..e45e3dcd --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/inositolphosphatemetabolism/README.md @@ -0,0 +1,22 @@ +# inositol phosphate metabolism + +Inositol Phosphate (IP) Metabolism: PLC signaling and branch points. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- inositol-phosphate-metabolism.bngl + +## Tags + +inositol, phosphate, metabolism, pip2, ip3, ip4, calcium, agonist diff --git a/Contributed/BNGPlayground_Examples/biology/inositolphosphatemetabolism/inositol-phosphate-metabolism.bngl b/Contributed/BNGPlayground_Examples/biology/inositolphosphatemetabolism/inositol-phosphate-metabolism.bngl new file mode 100644 index 00000000..7f31598d --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/inositolphosphatemetabolism/inositol-phosphate-metabolism.bngl @@ -0,0 +1,99 @@ +begin model +begin parameters + # Inositol Phosphate (IP) Metabolism: PLC signaling and branch points. + # Advanced features: saturable 3-kinase/5-phosphatase competition and agonist drive. + + # Metabolic Fluxes + k_plc_max 10.0 # Peak agonist drive + Km_pip2 500 # PLC saturation + + # Branch 1: 5-phosphatase (IP3 -> IP2) + k_5phos_max 5.0 + Km_ip3_5p 200 + + # Branch 2: 3-kinase (IP3 -> IP4) + k_3kin_max 3.0 + Km_ip3_3k 100 + + # Feedback & Restoration + k_pip2_synth 2.0 # PI-cycle restoration + k_ca_fb 0.5 # Calcium positive feedback on PLC + + # Initials + PIP2_tot 1000 + IP3_init 10 + IP4_init 0 + Ca_init 50 # Intracellular Calcium + k_agonist_synth 10.0 # Initial agonist synthesis rate +end parameters + +begin molecule types + PIP2() + IP3() + IP4() + Calcium() + Agonist(s~off~on) +end molecule types + +begin seed species + PIP2() PIP2_tot + IP3() IP3_init + IP4() IP4_init + Calcium() Ca_init + Agonist(s~off) 1000 +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Calcium_Signal IP3() # The mobilizing messenger + Molecules Metabolic_Hub IP3(),IP4() # Total IP drive + Molecules PIP2_Pool PIP2() # Membrane precursor + Molecules Late_Response IP4() # Long-term signaling status + Molecules PLC_Output IP3() # Current flux proxy + Molecules Active_Agonist Agonist(s~on) # Agonist drive status + Molecules Ca_Level Calcium() # Feedback level status + Molecules IP3_Pool IP3() # Metabolic substrate status +end observables + +begin functions + # Agonist-driven PLC activity (TotalRate) + # Scaled by Calcium feedback + v_plc() = (k_plc_max / 100) * (Active_Agonist * (1 + Ca_Level / 200)) + + # Saturable 5-phosphatase (Branch 1) + v_metab_5p() = k_5phos_max * (IP3_Pool / (Km_ip3_5p + IP3_Pool)) + + # Saturable 3-kinase (Branch 2) + v_metab_3k() = k_3kin_max * (IP3_Pool / (Km_ip3_3k + IP3_Pool)) +end functions + +begin reaction rules + ## ACTIVATION + # Agonist triggers activity + Agonist(s~off) -> Agonist(s~on) k_agonist_synth + + # PLC hydrolysis (TotalRate) + PIP2() -> IP3() v_plc() TotalRate + + ## METABOLISM Stage + # Branching: IP3 clearance (Functional Rates) + IP3() -> 0 v_metab_5p() + IP3() -> IP4() v_metab_3k() + + # IP4 clearance + IP4() -> 0 0.2 + + ## RECYCLING Phase + 0 -> PIP2() k_pip2_synth + + # Calcium dynamics (Simplified link) + IP3() -> IP3() + Calcium() 0.5 + Calcium() -> 0 0.1 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>150,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/inositolphosphatemetabolism/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/inositolphosphatemetabolism/metadata.yaml new file mode 100644 index 00000000..15f62b09 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/inositolphosphatemetabolism/metadata.yaml @@ -0,0 +1,24 @@ +id: "inositol-phosphate-metabolism" +name: "inositol phosphate metabolism" +description: "Inositol Phosphate (IP) Metabolism: PLC signaling and branch points." +contributors: + - name: "Achyudhan" +tags: ["inositol", "phosphate", "metabolism", "pip2", "ip3", "ip4", "calcium", "agonist"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/inositol-phosphate-metabolism.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/insulinglucosehomeostasis/README.md b/Contributed/BNGPlayground_Examples/biology/insulinglucosehomeostasis/README.md new file mode 100644 index 00000000..d0d877b0 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/insulinglucosehomeostasis/README.md @@ -0,0 +1,22 @@ +# insulin glucose homeostasis + +Insulin-Glucose: Compartmentalized transport. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- insulin-glucose-homeostasis.bngl + +## Tags + +insulin, glucose, homeostasis, ir, glut4, pancreas diff --git a/Contributed/BNGPlayground_Examples/biology/insulinglucosehomeostasis/insulin-glucose-homeostasis.bngl b/Contributed/BNGPlayground_Examples/biology/insulinglucosehomeostasis/insulin-glucose-homeostasis.bngl new file mode 100644 index 00000000..a2155ed0 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/insulinglucosehomeostasis/insulin-glucose-homeostasis.bngl @@ -0,0 +1,100 @@ +begin model +begin parameters + # Insulin-Glucose: Compartmentalized transport. + # Advanced features: Compartments (Blood flow vs Tissue uptake). + + # Volumes + Vol_Blood 100 + Vol_Tissue 50 + + # Flux Rates + k_input 0.2 # Dietary glucose intake + k_sense 0.005 # Beta-cell sensing + k_relax 0.05 # Beta-cell reset + k_release 0.4 # Insulin secretion + + # Transport + k_ins_bind 0.1 # Insulin to Receptor + k_glut4_exo 1.0 # Translocation to PM + k_glut4_endo 0.2 # Recycling + + k_uptake 0.5 # Glucose transport (per GLUT4) + k_util 0.1 # Glycolysis/Storage + k_clear 0.2 # Insulin clearance + + # Initials + Glc_blood_init 80 + Ins_init 0 + IR_tot 50 + GLUT4_tot 100 +end parameters + +begin compartments + Blood 3 Vol_Blood + PM 2 1 Blood + Tissue 3 Vol_Tissue PM +end compartments + +begin molecule types + Glucose() + Insulin(b) + IR(b,s~U~P) + GLUT4(loc~vesicle~PM) + Pancreas(state~resting~active) +end molecule types + +begin seed species + Glucose()@Blood Glc_blood_init + Insulin(b)@Blood Ins_init + IR(b,s~U)@PM IR_tot + GLUT4(loc~vesicle)@Tissue GLUT4_tot + Pancreas(state~resting)@Blood 1 +end seed species + +begin observables + Molecules Blood_Glucose Glucose()@Blood + Molecules Cellular_Glucose Glucose()@Tissue + Molecules Insulin_Level Insulin()@Blood + Molecules Surface_GLUT4 GLUT4(loc~PM)@PM + Molecules Active_IR IR(s~P) +end observables + +begin reaction rules + # 1. Glucose Influx (Meal) + 0 -> Glucose()@Blood k_input + + # 2. Sensing (Pancreas in Blood detects high glucose) + # Simplified: Glucose binds/activates Pancreas + Pancreas(state~resting)@Blood + Glucose()@Blood -> Pancreas(state~active)@Blood + Glucose()@Blood k_sense + + # 3. Response (Insulin Secretion into Blood) + Pancreas(state~active)@Blood -> Pancreas(state~active)@Blood + Insulin(b)@Blood k_release + + # 4. Signaling & Translocation + # Insulin binds IR at PM + Insulin(b)@Blood + IR(b,s~U)@PM <-> Insulin(b!1)@Blood.IR(b!1,s~P)@PM k_ins_bind,0.01 + + # Active IR promotes GLUT4 exocytosis (Tissue -> PM) + # Functional rule: IR(Bound) catalyzes GLUT4 move + Insulin(b!1)@Blood.IR(b!1,s~P)@PM + GLUT4(loc~vesicle)@Tissue -> Insulin(b!1)@Blood.IR(b!1,s~P)@PM + GLUT4(loc~PM)@PM k_glut4_exo + + # Endocytosis (PM -> Tissue) + GLUT4(loc~PM)@PM -> GLUT4(loc~vesicle)@Tissue k_glut4_endo + + # 5. Glucose Transport (The Main Event) + # GLUT4 at PM facilitates Blood -> Tissue flux + Glucose()@Blood + GLUT4(loc~PM)@PM -> Glucose()@Tissue + GLUT4(loc~PM)@PM k_uptake + + # 6. Metabolism (Intracellular) + Glucose()@Tissue -> 0 k_util + + # 7. Clearance / Reset + Insulin(b)@Blood -> 0 k_clear + Pancreas(state~active)@Blood -> Pancreas(state~resting)@Blood k_relax +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>800,n_steps=>300}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/insulinglucosehomeostasis/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/insulinglucosehomeostasis/metadata.yaml new file mode 100644 index 00000000..bdfe7427 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/insulinglucosehomeostasis/metadata.yaml @@ -0,0 +1,24 @@ +id: "insulin-glucose-homeostasis" +name: "insulin glucose homeostasis" +description: "Insulin-Glucose: Compartmentalized transport." +contributors: + - name: "Achyudhan" +tags: ["insulin", "glucose", "homeostasis", "ir", "glut4", "pancreas"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/insulin-glucose-homeostasis.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/interferonsignaling/README.md b/Contributed/BNGPlayground_Examples/biology/interferonsignaling/README.md new file mode 100644 index 00000000..570e5729 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/interferonsignaling/README.md @@ -0,0 +1,22 @@ +# interferon signaling + +Rate Constants + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- interferon-signaling.bngl + +## Tags + +interferon, signaling, ifn, ifnar, tyk2, stat1 diff --git a/Contributed/BNGPlayground_Examples/biology/interferonsignaling/interferon-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/interferonsignaling/interferon-signaling.bngl new file mode 100644 index 00000000..741f3ae1 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/interferonsignaling/interferon-signaling.bngl @@ -0,0 +1,58 @@ +begin model +begin parameters + # Rate Constants + k_bind 0.018 # IFN binding + k_unbind 0.0018 # Dissociation + k_jak 0.45 # JAK/TYK2 activation + k_stat 0.32 # STAT phosphorylation + k_reset 0.075 # Deactivation +end parameters + +begin molecule types + IFN(r) + IFNAR(l,state~inactive~active) + TYK2(state~off~on) # Tyrosine kinase 2 + STAT1(phos~U~P,loc~cyto~nuc) # Signal Transducer +end molecule types + +begin seed species + IFN(r) 0 + IFNAR(l,state~inactive) 35 + TYK2(state~off) 30 + STAT1(phos~U,loc~cyto) 120 +end seed species + +begin reaction rules + # 1. Ligand Binding + IFN(r) + IFNAR(l,state~inactive) <-> IFN(r!1).IFNAR(l!1,state~inactive) k_bind,k_unbind + + # 2. Receptor Activation (conformation change) + IFN(r!1).IFNAR(l!1,state~inactive) -> IFN(r!1).IFNAR(l!1,state~active) k_jak + + # 3. TYK2 Association/Activation + IFNAR(l!+,state~active) + TYK2(state~off) -> IFNAR(l!+,state~active) + TYK2(state~on) k_jak + + # 4. STAT1 Phosphorylation + TYK2(state~on) + STAT1(phos~U,loc~cyto) -> TYK2(state~on) + STAT1(phos~P,loc~cyto) k_stat + + # 5. Nuclear Translocation + STAT1(phos~P,loc~cyto) -> STAT1(phos~P,loc~nuc) k_stat + + # 6. Reset Mechanisms + STAT1(phos~P,loc~nuc) -> STAT1(phos~U,loc~cyto) k_reset + TYK2(state~on) -> TYK2(state~off) k_reset + IFNAR(l,state~active) -> IFNAR(l,state~inactive) k_reset +end reaction rules + +begin observables + Molecules Active_IFNAR IFNAR(state~active) + Molecules Active_TYK2 TYK2(state~on) + Molecules Nuclear_STAT1 STAT1(phos~P,loc~nuc) +end observables + +begin actions + generate_network({overwrite=>1}) + setConcentration("IFN(r)", 100) + simulate({method=>"ode",t_end=>100,n_steps=>200}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/interferonsignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/interferonsignaling/metadata.yaml new file mode 100644 index 00000000..3df3c352 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/interferonsignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "interferon-signaling" +name: "interferon signaling" +description: "Rate Constants" +contributors: + - name: "Achyudhan" +tags: ["interferon", "signaling", "ifn", "ifnar", "tyk2", "stat1"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/interferon-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/ire1axbp1erstress/README.md b/Contributed/BNGPlayground_Examples/biology/ire1axbp1erstress/README.md new file mode 100644 index 00000000..510a1b25 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/ire1axbp1erstress/README.md @@ -0,0 +1,22 @@ +# ire1a xbp1 er stress + +IRE1a/XBP1 ER Stress: Chaperone buffering and mRNA decay (RIDD). + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- ire1a-xbp1-er-stress.bngl + +## Tags + +ire1a, xbp1, er, stress, ire1, bip, unfolded, ridd_target diff --git a/Contributed/BNGPlayground_Examples/biology/ire1axbp1erstress/ire1a-xbp1-er-stress.bngl b/Contributed/BNGPlayground_Examples/biology/ire1axbp1erstress/ire1a-xbp1-er-stress.bngl new file mode 100644 index 00000000..f5d7d1cb --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/ire1axbp1erstress/ire1a-xbp1-er-stress.bngl @@ -0,0 +1,101 @@ +begin model +begin parameters + # IRE1a/XBP1 ER Stress: Chaperone buffering and mRNA decay (RIDD). + # Advanced features: DeleteMolecules for repair and RIDD mRNA decay. + + # Stress Sensing + k_stress 5.0 # Unfolded protein load + k_bip_bind 10.0 # Chaperone buffering (Fast) + k_ire1_dimer 2.0 # Stress-induced coupling + + # Signaling Relay + k_xbp1_splice 1.5 # Splicing activity + k_ridd_max 2.0 # Active IRE1-driven mRNA decay + Km_ridd 300 # Threshold for RIDD + + # Adaptation (Feedback) + k_bip_synth_max 5.0 + Km_xbp1 400 # TF threshold for chaperones + n_hill 3.0 # Nonlinear adaptation burst + + # Repair/Clearance + k_repair 0.5 # Folding restoration + k_reset 0.05 + + # Initials + IRE1_tot 200 + XBP1_mRNA 1000 # The splicing substrate + Target_mRNA 800 # RIDD substrate + BiP_tot 300 +end parameters + +begin molecule types + IRE1(b,s~U~P) + BiP(b) + Unfolded(b) + XBP1(s~u~s) # u: unspliced,s: spliced + RIDD_Target() # Vulnerable mRNA pool +end molecule types + +begin seed species + IRE1(b,s~U) IRE1_tot + BiP(b) BiP_tot + Unfolded(b) 10 + XBP1(s~u) XBP1_mRNA + RIDD_Target() Target_mRNA +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules ProSurvival_XBP1 XBP1(s~s) # Adaptive output + Molecules RIDD_Drive RIDD_Target() # Destructive output (mRNA decay) + Molecules Active_IRE1 IRE1(s~P) # Signaling sensor status + Molecules Stress_Burden Unfolded() # Unbuffered protein load + Molecules Chaperone_Bip BiP() # ER capacity index + Molecules Spliced_XBP1 XBP1(s~s) # TF driver status +end observables + +begin functions + # RIDD-mediated mRNA decay (Functional Rate) + v_ridd() = k_ridd_max * (Active_IRE1 / (Km_ridd + Active_IRE1)) + + # Hill-driven chaperone induction by spliced XBP1 + v_bip_burst() = k_bip_synth_max * (Spliced_XBP1^n_hill) / (Km_xbp1^n_hill + Spliced_XBP1^n_hill) +end functions + +begin reaction rules + ## SENSING Phase + # Stress production and buffering + 0 -> Unfolded(b) k_stress + BiP(b) + Unfolded(b) <-> BiP(b!1).Unfolded(b!1) k_bip_bind,1.0 + + # Unbuffered proteins drive IRE1 dimerization (Activation) + Unfolded(b) + IRE1(s~U) + IRE1(s~U) -> Unfolded(b) + IRE1(s~P,b!1).IRE1(s~P,b!1) k_ire1_dimer + + ## SIGNALING Stage + # Active IRE1 splices XBP1 + IRE1(s~P) + XBP1(s~u) -> IRE1(s~P) + XBP1(s~s) k_xbp1_splice + + # RIDD: Active IRE1 degrades target mRNAs (Functional Rate) + RIDD_Target() -> 0 v_ridd() + + ## ADAPTATION Stage + # Spliced XBP1 induces BiP (Hill-driven burst) + 0 -> BiP(b) v_bip_burst() + + # Repair: Chaperone-assisted folding + # DeleteMolecules: The unfolded factor is restored/removed + BiP(b!1).Unfolded(b!1) -> BiP(b) k_repair DeleteMolecules + + ## RESET Phase + IRE1(s~P) -> IRE1(s~U) k_reset + XBP1(s~s) -> 0 0.05 + 0 -> RIDD_Target() 0.1 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>150,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/ire1axbp1erstress/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/ire1axbp1erstress/metadata.yaml new file mode 100644 index 00000000..68df2fef --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/ire1axbp1erstress/metadata.yaml @@ -0,0 +1,24 @@ +id: "ire1a-xbp1-er-stress" +name: "ire1a xbp1 er stress" +description: "IRE1a/XBP1 ER Stress: Chaperone buffering and mRNA decay (RIDD)." +contributors: + - name: "Achyudhan" +tags: ["ire1a", "xbp1", "er", "stress", "ire1", "bip", "unfolded", "ridd_target"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/ire1a-xbp1-er-stress.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/jakstatcytokinesignaling/README.md b/Contributed/BNGPlayground_Examples/biology/jakstatcytokinesignaling/README.md new file mode 100644 index 00000000..ce8d8244 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/jakstatcytokinesignaling/README.md @@ -0,0 +1,22 @@ +# jak stat cytokine signaling + +Rate Constants + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- jak-stat-cytokine-signaling.bngl + +## Tags + +jak, stat, cytokine, signaling, receptor diff --git a/Contributed/BNGPlayground_Examples/biology/jakstatcytokinesignaling/jak-stat-cytokine-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/jakstatcytokinesignaling/jak-stat-cytokine-signaling.bngl new file mode 100644 index 00000000..e3606cab --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/jakstatcytokinesignaling/jak-stat-cytokine-signaling.bngl @@ -0,0 +1,59 @@ +begin model +begin parameters + # Rate Constants + k_produce 0.05 # Basal cytokine production + k_clear 0.02 # Cytokine clearance + k_bind 0.01 # Receptor binding + k_unbind 0.002 # Dissociation + k_receptor_act 0.4 # Receptor auto-activation + k_stat_phos 0.3 # STAT phosphorylation by receptor + k_translocate 0.2 # Nuclear translocation + k_stat_reset 0.1 # Nuclear export / dephosphorylation + k_receptor_down 0.05 # Receptor internalization/reset +end parameters + +begin molecule types + Cytokine(r) + Receptor(l,state~inactive~active) + STAT(state~U~P,loc~cyto~nuc) +end molecule types + +begin seed species + Cytokine(r) 60 + Receptor(l,state~inactive) 30 + STAT(state~U,loc~cyto) 200 +end seed species + +begin observables + Molecules Cytokine_pool Cytokine() + Molecules Active_receptor Receptor(state~active) + Molecules Nuclear_STAT STAT(loc~nuc) +end observables + +begin reaction rules + # 1. Cytokine Turnover + 0 -> Cytokine(r) k_produce + Cytokine(r) -> 0 k_clear + + # 2. Receptor Binding & Activation + Cytokine(r) + Receptor(l,state~inactive) <-> Cytokine(r!1).Receptor(l!1,state~inactive) k_bind,k_unbind + Cytokine(r!1).Receptor(l!1,state~inactive) -> Cytokine(r!1).Receptor(l!1,state~active) k_receptor_act + + # 3. STAT Signaling + # Active receptor recruitment and phosphorylation of STAT + Receptor(state~active) + STAT(state~U,loc~cyto) -> Receptor(state~active) + STAT(state~P,loc~cyto) k_stat_phos + + # 4. Nuclear Translocation + STAT(state~P,loc~cyto) -> STAT(state~P,loc~nuc) k_translocate + + # 5. Negative Feedback / Reset + STAT(state~P,loc~nuc) -> STAT(state~U,loc~cyto) k_stat_reset + Receptor(state~active) -> Receptor(state~inactive) k_receptor_down +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>160,n_steps=>320}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/jakstatcytokinesignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/jakstatcytokinesignaling/metadata.yaml new file mode 100644 index 00000000..dfea0df9 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/jakstatcytokinesignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "jak-stat-cytokine-signaling" +name: "jak stat cytokine signaling" +description: "Rate Constants" +contributors: + - name: "Achyudhan" +tags: ["jak", "stat", "cytokine", "signaling", "receptor"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/jak-stat-cytokine-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/jnkmapksignaling/README.md b/Contributed/BNGPlayground_Examples/biology/jnkmapksignaling/README.md new file mode 100644 index 00000000..87650269 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/jnkmapksignaling/README.md @@ -0,0 +1,22 @@ +# jnk mapk signaling + +JNK MAPK Signaling: Scaffold-mediated activation and feedback. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- jnk-mapk-signaling.bngl + +## Tags + +jnk, mapk, signaling, mkk7, jip1, v_dephos diff --git a/Contributed/BNGPlayground_Examples/biology/jnkmapksignaling/jnk-mapk-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/jnkmapksignaling/jnk-mapk-signaling.bngl new file mode 100644 index 00000000..c5ed9508 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/jnkmapksignaling/jnk-mapk-signaling.bngl @@ -0,0 +1,88 @@ +begin model +begin parameters + # JNK MAPK Signaling: Scaffold-mediated activation and feedback. + # Advanced features: saturable dephosphorylation and exclude_reactants for scaffolds. + + # Cascade Relay + k_mkk7_act 1.0 # Upstream stress drive + k_jnk_phos 2.0 # MKK7-mediated activation + + # Scaffold (JIP1) Hub + k_jip_bind_mkk 5.0 # MKK7 recruitment + k_jip_bind_jnk 5.0 # JNK recruitment + k_scaff_boost 10.0 # Proximity acceleration + + # Recovery (MKP Axis) + k_mkp_max 3.0 # Peak dephosphorylation speed + Km_jnk 250 # Threshold for phosphatases + + # Feedback Control + k_jnk_fb 0.5 # JNK feedback on upstream drive + k_reset 0.05 + + # Initials + JNK_tot 1000 + MKK7_tot 200 + JIP1_tot 150 # Scaffolding protein +end parameters + +begin molecule types + JNK(s~U~P,b,loc~cyt~nuc) + MKK7(s~off~on,b) + JIP1(b1,b2) # b1: MKK,b2: JNK +end molecule types + +begin seed species + JNK(s~U,b,loc~cyt) JNK_tot + MKK7(s~on,b) MKK7_tot + JIP1(b1,b2) JIP1_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Active_JNK JNK(s~P) # Primary stress signal + Molecules Scaffold_Hub JIP1(b1!+,b2!+) # Full signaling cluster + Molecules MKK7_Driver MKK7(s~on) # Upstream activity + Molecules Cyto_JNK JNK(s~U,b) # Reservoir capacity + Molecules Total_pJNK JNK(s~P) # Global signal pool +end observables + +begin functions + # Saturable JNK dephosphorylation (Functional Rate) + v_dephos() = k_mkp_max * (Total_pJNK / (Km_jnk + Total_pJNK)) +end functions + +begin reaction rules + ## ASSEMBLY Phase + # JIP1 recruits MKK7 and JNK + JIP1(b1) + MKK7(b) <-> JIP1(b1!1).MKK7(b!1) k_jip_bind_mkk,0.2 + JIP1(b2) + JNK(b) <-> JIP1(b2!1).JNK(b!1) k_jip_bind_jnk,0.2 + + ## ACTIVATION Stage + # Scaffold-mediated activation (Highly accelerated) + # exclude_reactants not needed here as it's a conformational relay + JIP1(b1!1,b2!2).MKK7(s~on,b!1).JNK(s~U,b!2) -> JIP1(b1!1,b2!2).MKK7(s~on,b!1).JNK(s~P,b!2) k_scaff_boost + + # Global activation (Non-scaffolded) + MKK7(s~on,b) + JNK(s~U,b) -> MKK7(s~on,b) + JNK(s~P,b) k_jnk_phos + + # Nucleocytoplasmic transport + JNK(loc~cyt) <-> JNK(loc~nuc) 1.0,0.5 + + ## RECOVERY Phase + # Saturable dephosphorylation (MKP Axis) + JNK(s~P) -> JNK(s~U) v_dephos() + + ## FEEDBACK Stage + # JNK can feedback on MKK7 activity (Simplified as direct reset inhibition) + JNK(s~P) + MKK7(s~on) -> JNK(s~P) + MKK7(s~off) k_jnk_fb + + # Basal resets + MKK7(s~off) -> MKK7(s~on) 0.1 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>100,n_steps=>200}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/jnkmapksignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/jnkmapksignaling/metadata.yaml new file mode 100644 index 00000000..b90bd792 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/jnkmapksignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "jnk-mapk-signaling" +name: "jnk mapk signaling" +description: "JNK MAPK Signaling: Scaffold-mediated activation and feedback." +contributors: + - name: "Achyudhan" +tags: ["jnk", "mapk", "signaling", "mkk7", "jip1", "v_dephos"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/jnk-mapk-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/kirchannelregulation/README.md b/Contributed/BNGPlayground_Examples/biology/kirchannelregulation/README.md new file mode 100644 index 00000000..9d2091a4 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/kirchannelregulation/README.md @@ -0,0 +1,22 @@ +# kir channel regulation + +Kir Channel Regulation: PIP2 modulation and G-protein potentiation. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- kir-channel-regulation.bngl + +## Tags + +kir, channel, regulation, pip2, gbg, v_opening, v_gbg_factor diff --git a/Contributed/BNGPlayground_Examples/biology/kirchannelregulation/kir-channel-regulation.bngl b/Contributed/BNGPlayground_Examples/biology/kirchannelregulation/kir-channel-regulation.bngl new file mode 100644 index 00000000..97ee412b --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/kirchannelregulation/kir-channel-regulation.bngl @@ -0,0 +1,82 @@ +begin model +begin parameters + # Kir Channel Regulation: PIP2 modulation and G-protein potentiation. + # Advanced features: Hill kinetics for cooperative PIP2 binding and G-relay. + + # Lipid Modulation + k_pip2_bind 1.0 + k_pip2_max 5.0 # Maximum gating drive + Km_pip2 400 # Half-saturation for lipid-gating + n_pip2 3.0 # Highly cooperative opening + + # G-protein Relay + k_gbg_bind 2.0 # Recruitment of Gbeta-gamma + k_gbg_boost 4.0 # Potentiation factor + + # Conductivity + k_open 1.0 # Open probability base + k_close 0.5 + + # Initials + Kir_tot 500 + PIP2_init 600 + Gprotein_tot 300 +end parameters + +begin molecule types + Kir(p,g,s~C~O) # p: PIP2 site,g: Gbg site,s: gate state + PIP2(b) + Gbg(b) +end molecule types + +begin seed species + Kir(p,g,s~C) Kir_tot + PIP2(b) PIP2_init + Gbg(b) Gprotein_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Conducting_Pool Kir(s~O) # Current-passing status + Molecules Fully_Modulated Kir(p!+,g!+) # Peak activity status + Molecules Lipid_Occupancy Kir(p!+) # Gating readiness + Molecules G_Signal_Relay Kir(g!+) # Modulation status + Molecules Lipid_Marker PIP2() # Lipid precursor status + Molecules Free_PIP2 PIP2(b) # Gating effector pool + Molecules G_Bound_Kir Kir(g!+) # Potentiated channel pool +end observables + +begin functions + # Hill-driven opening based on PIP2 abundance (Functional Rate) + # Accelerated by G-beta-gamma recruitment + v_opening() = (k_pip2_max / 100) * (Free_PIP2 / (Km_pip2 + Free_PIP2))^n_pip2 * v_gbg_factor() + + # G-protein potentiation scale + v_gbg_factor() = if(G_Bound_Kir > 0,k_gbg_boost,1.0) +end functions + +begin reaction rules + ## MODULATION Phase + # PIP2 binds Kir (Cooperative recruitment proxy) + Kir(p) + PIP2(b) <-> Kir(p!1).PIP2(b!1) k_pip2_bind,0.2 + + # Gbeta-gamma recruitment + Kir(g) + Gbg(b) <-> Kir(g!1).Gbg(b!1) k_gbg_bind,0.5 + + ## GATING Stage + # Opening (Functional Rate - Hill + Potentiation) + Kir(p!+,s~C) -> Kir(p!+,s~O) v_opening() + + # Closing + Kir(s~O) -> Kir(s~C) k_close + + ## RESET + PIP2(b!1).Kir(p!1) -> PIP2(b) + Kir(p) 5.0 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>5,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/kirchannelregulation/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/kirchannelregulation/metadata.yaml new file mode 100644 index 00000000..b905375c --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/kirchannelregulation/metadata.yaml @@ -0,0 +1,24 @@ +id: "kir-channel-regulation" +name: "kir channel regulation" +description: "Kir Channel Regulation: PIP2 modulation and G-protein potentiation." +contributors: + - name: "Achyudhan" +tags: ["kir", "channel", "regulation", "pip2", "gbg", "v_opening", "v_gbg_factor"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/kir-channel-regulation.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/lacoperonregulation/README.md b/Contributed/BNGPlayground_Examples/biology/lacoperonregulation/README.md new file mode 100644 index 00000000..083743b0 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/lacoperonregulation/README.md @@ -0,0 +1,22 @@ +# lac operon regulation + +Kinetic Parameters + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- lac-operon-regulation.bngl + +## Tags + +lac, operon, regulation, laci, promoter, mrna, betagal, lactose, allolactose diff --git a/Contributed/BNGPlayground_Examples/biology/lacoperonregulation/lac-operon-regulation.bngl b/Contributed/BNGPlayground_Examples/biology/lacoperonregulation/lac-operon-regulation.bngl new file mode 100644 index 00000000..45038604 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/lacoperonregulation/lac-operon-regulation.bngl @@ -0,0 +1,73 @@ +begin model +begin parameters + # Kinetic Parameters + k_bind 0.002 # LacI binding to promoter + k_unbind 0.02 # LacI dissociation + k_transcribe 1.0 # Transcription rate + k_translate 5.0 # Translation rate + k_mrna_deg 0.2 # mRNA degradation + k_beta_deg 0.05 # Protein degradation + k_import 0.1 # Lactose permease rate + k_conversion 0.08 # B-gal catalysis (Lactose->Allolactose) + k_allo_deg 0.04 # Metabolite consumption +end parameters + +begin molecule types + LacI(state~free~bound) # Repressor + Promoter(state~off~on) # Lac Operon Promoter + mRNA() # polycistronic mRNA + BetaGal() # Beta-galactosidase + Lactose(loc~ext~int) # Substrate + Allolactose() # Inducer +end molecule types + +begin seed species + LacI(state~free) 20 + Promoter(state~off) 1 + Lactose(loc~ext) 0 +end seed species + +begin observables + Molecules Promoter_active Promoter(state~on) + Molecules Beta_gal BetaGal() + Molecules Lactose_internal Lactose(loc~int) + Molecules Allolactose_pool Allolactose() +end observables + +begin reaction rules + # 1. Represssiom + Promoter(state~on) + LacI(state~free) -> Promoter(state~off) + LacI(state~bound) k_bind + LacI(state~bound) -> LacI(state~free) k_unbind + + # 2. Induction + # Allolactose binds LacI (implicitly modeled as conversion/release here) + Allolactose() + Promoter(state~off) -> Allolactose() + Promoter(state~on) k_conversion + + # 3. Transcription & Translation + Promoter(state~on) -> Promoter(state~on) + mRNA() k_transcribe + # Basal / Leakage transcription (Essential for system startup) + Promoter(state~off) -> Promoter(state~off) + mRNA() k_transcribe * 0.001 + mRNA() -> mRNA() + BetaGal() k_translate + + # 4. Degradation + mRNA() -> 0 k_mrna_deg + BetaGal() -> 0 k_beta_deg + + # 5. Metabolism + # Lactose Import + Lactose(loc~ext) -> Lactose(loc~int) k_import + # Conversion to Allolactose (Inducer) + BetaGal() + Lactose(loc~int) -> BetaGal() + Allolactose() k_conversion + # Consumption + Allolactose() -> 0 k_allo_deg +end reaction rules + +begin actions + generate_network({overwrite=>1}) + + # Simple stimulatory simulation for parity + setConcentration("Lactose(loc~ext)", 100) + simulate({method=>"ode",t_end=>200,n_steps=>200}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/lacoperonregulation/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/lacoperonregulation/metadata.yaml new file mode 100644 index 00000000..078a9b9c --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/lacoperonregulation/metadata.yaml @@ -0,0 +1,24 @@ +id: "lac-operon-regulation" +name: "lac operon regulation" +description: "Kinetic Parameters" +contributors: + - name: "Achyudhan" +tags: ["lac", "operon", "regulation", "laci", "promoter", "mrna", "betagal", "lactose", "allolactose"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/lac-operon-regulation.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/lipidmediatedpip3signaling/README.md b/Contributed/BNGPlayground_Examples/biology/lipidmediatedpip3signaling/README.md new file mode 100644 index 00000000..ebe2bec4 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/lipidmediatedpip3signaling/README.md @@ -0,0 +1,22 @@ +# lipid mediated pip3 signaling + +Kinetic Parameters + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- lipid-mediated-pip3-signaling.bngl + +## Tags + +lipid, mediated, pip3, signaling, pi3k, pip2, pten, pdk1 diff --git a/Contributed/BNGPlayground_Examples/biology/lipidmediatedpip3signaling/lipid-mediated-pip3-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/lipidmediatedpip3signaling/lipid-mediated-pip3-signaling.bngl new file mode 100644 index 00000000..8ab8ecef --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/lipidmediatedpip3signaling/lipid-mediated-pip3-signaling.bngl @@ -0,0 +1,59 @@ +begin model +begin parameters + # Kinetic Parameters + k_activate 0.25 # PI3K activation + k_convert 0.45 # PIP2 -> PIP3 conversion + k_pdk1 0.35 # PDK1 recruitment + k_pten 0.15 # PIP3 dephosphorylation + k_reset 0.05 # Deactivation +end parameters + +begin molecule types + PI3K(state~inactive~active) + PIP2(state~present~consumed) + PIP3(state~low~high) + PTEN(state~off~on) + PDK1(state~inactive~active) +end molecule types + +begin seed species + PI3K(state~inactive) 30 + PIP2(state~present) 80 + PIP3(state~low) 20 + PTEN(state~on) 20 + PDK1(state~inactive) 40 +end seed species + +begin reaction rules + # 1. PI3K Activation + PI3K(state~inactive) -> PI3K(state~active) k_activate + + # 2. Phosphoinositide Conversion + # Active PI3K phosphorylates PIP2 to PIP3 + PI3K(state~active) + PIP2(state~present) -> PI3K(state~active) + PIP2(state~consumed) + PIP3(state~high) k_convert + + # 3. Downstream Signaling (PDK1) + # PIP3 recruits and activates PDK1 + PIP3(state~high) + PDK1(state~inactive) -> PIP3(state~high) + PDK1(state~active) k_pdk1 + + # 4. Negative Regulation (PTEN) + # PTEN dephosphorylates PIP3 back to basal levels + PTEN(state~on) + PIP3(state~high) -> PTEN(state~on) + PIP3(state~low) k_pten + + # 5. Reset Mechanisms + PDK1(state~active) -> PDK1(state~inactive) k_reset + PI3K(state~active) -> PI3K(state~inactive) k_reset +end reaction rules + +begin observables + Molecules Active_PI3K PI3K(state~active) + Molecules PIP3_High PIP3(state~high) + Molecules Active_PDK1 PDK1(state~active) +end observables + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>0,t_end=>70,n_steps=>140}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/lipidmediatedpip3signaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/lipidmediatedpip3signaling/metadata.yaml new file mode 100644 index 00000000..f0d01e40 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/lipidmediatedpip3signaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "lipid-mediated-pip3-signaling" +name: "lipid mediated pip3 signaling" +description: "Kinetic Parameters" +contributors: + - name: "Achyudhan" +tags: ["lipid", "mediated", "pip3", "signaling", "pi3k", "pip2", "pten", "pdk1"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/lipid-mediated-pip3-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/ltypecalciumchanneldynamics/README.md b/Contributed/BNGPlayground_Examples/biology/ltypecalciumchanneldynamics/README.md new file mode 100644 index 00000000..59209698 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/ltypecalciumchanneldynamics/README.md @@ -0,0 +1,22 @@ +# l type calcium channel dynamics + +L-type Calcium Channel: Voltage gating and CDI (Calcium-dependent inactivation). + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- l-type-calcium-channel-dynamics.bngl + +## Tags + +l, type, calcium, channel, dynamics, ltcc, voltage, v_open, v_inact diff --git a/Contributed/BNGPlayground_Examples/biology/ltypecalciumchanneldynamics/l-type-calcium-channel-dynamics.bngl b/Contributed/BNGPlayground_Examples/biology/ltypecalciumchanneldynamics/l-type-calcium-channel-dynamics.bngl new file mode 100644 index 00000000..a9fc0a07 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/ltypecalciumchanneldynamics/l-type-calcium-channel-dynamics.bngl @@ -0,0 +1,114 @@ +begin model +begin parameters + # L-type Calcium Channel: Voltage gating and CDI (Calcium-dependent inactivation). + # Advanced features: if-scheduled pulsatile voltage and MoveConnected complex transport. + + # Voltage Gating + k_open_max 10.0 + V_half -15 # Activation threshold (mV) + k_slope 6 # Steepness + k_close 0.5 # Basal deactivation + + # CDI (Inactivation Drive) + k_inact_max 5.0 + Km_ca 200 # Local Calcium threshold for feedback + + # Ion Flux & Balance + k_ca_flux 15.0 # Conductance + k_ca_pump 0.8 # Cytoplasmic clearance + + # Adaptive Feedback + k_pka_shift -5.0 # PKA-mediated threshold shift + k_pka_on 2.0 # Phosphorylation boost + + # Initials + LTCC_tot 500 + Ca_init 50 + PKA_stim 0 # Signaling drive + V_Clamp -30.0 # Current voltage + k_pka_current 0 # PKA activity + + # Voltage Dynamics + k_v_stim 50.0 + k_v_leak 1.0 +end parameters + +begin molecule types + LTCC(b,g~C~O,s~R~I,p~U~P,loc~mem) # g: gate,s: inact state,p: phospho + Calcium() + Voltage() # Virtual carrier +end molecule types + +begin seed species + LTCC(b,g~C,s~R,p~U,loc~mem) LTCC_tot + Calcium() Ca_init + Voltage() 1 +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Calcium_Inflow Calcium() # Integrated ion signal + Molecules Conducting_R LTCC(g~O,s~R) # Active current-passing pool + Molecules Inactivated_CH LTCC(s~I) # Terminated/Desensitized pool + Molecules Potentiated_R LTCC(p~P) # PKA-activated status + Molecules Surface_LTCC LTCC(loc~mem) # Channel density + Molecules Ca_Level Calcium() # Local Ca status + Molecules Phospho_LTCC LTCC(p~P) # PKA status + Molecules Voltage_Level Voltage() # Input drive tracker +end observables + +begin functions + # Voltage-dependent opening probability (Boltzmann) + # Voltage-dependent opening probability (Boltzmann), V_mem approx -70 + Voltage_Level + v_open() = k_open_max / (1 + exp(-( (-70 + Voltage_Level) - (V_half + v_pka_shift()))/k_slope)) + + # Local Calcium dependent inactivation (Functional Rate) + v_inact() = k_inact_max * (Ca_Level / (Km_ca + Ca_Level)) + + # PKA shift function (uses Phosphorus state check) + v_pka_shift() = if(Phospho_LTCC > 0,k_pka_shift,0) + + # Recovery rate (voltage dependent) + v_rec() = if( (-70 + Voltage_Level) < -20,0.5,0.05) +end functions + +begin reaction rules + ## GATING Phase + # Voltage-driven opening (Functional Rate) + LTCC(g~C,s~R) -> LTCC(g~O,s~R) v_open() + + # Basal closing + LTCC(g~O) -> LTCC(g~C) k_close + + ## INACTIVATION Stage + # Calcium feedback on open channels (CDI) + LTCC(g~O,s~R) -> LTCC(g~O,s~I) v_inact() + + # Recovery (Voltage-dependent reset proxy) + LTCC(b,s~I) -> LTCC(b,s~R) v_rec() + + ## ION FLUX Stage + # Conducting channels allow Calcium entry + LTCC(g~O,s~R) -> LTCC(g~O,s~R) + Calcium() k_ca_flux + + # Clearance from space + Calcium() -> 0 k_ca_pump + + ## MODULATION Phase + LTCC(p~U) -> LTCC(p~P) 20.0 + + # Reset + # Reset + LTCC(p~P) -> LTCC(p~U) 0.01 + + ## VOLTAGE DYNAMICS + 0 -> Voltage() k_v_stim + Voltage() -> 0 k_v_leak +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>150,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/ltypecalciumchanneldynamics/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/ltypecalciumchanneldynamics/metadata.yaml new file mode 100644 index 00000000..d2fdd320 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/ltypecalciumchanneldynamics/metadata.yaml @@ -0,0 +1,24 @@ +id: "l-type-calcium-channel-dynamics" +name: "l type calcium channel dynamics" +description: "L-type Calcium Channel: Voltage gating and CDI (Calcium-dependent inactivation)." +contributors: + - name: "Achyudhan" +tags: ["l", "type", "calcium", "channel", "dynamics", "ltcc", "voltage", "v_open", "v_inact"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/l-type-calcium-channel-dynamics.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/mapksignalingcascade/README.md b/Contributed/BNGPlayground_Examples/biology/mapksignalingcascade/README.md new file mode 100644 index 00000000..28133aa5 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/mapksignalingcascade/README.md @@ -0,0 +1,22 @@ +# mapk signaling cascade + +Rate Constants + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- mapk-signaling-cascade.bngl + +## Tags + +mapk, signaling, cascade, ligand, receptor, mapkkk, mapkk diff --git a/Contributed/BNGPlayground_Examples/biology/mapksignalingcascade/mapk-signaling-cascade.bngl b/Contributed/BNGPlayground_Examples/biology/mapksignalingcascade/mapk-signaling-cascade.bngl new file mode 100644 index 00000000..622028bb --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/mapksignalingcascade/mapk-signaling-cascade.bngl @@ -0,0 +1,67 @@ +begin model +begin parameters + # Rate Constants + k_bind 1.0 # Ligand binding + k_unbind 0.1 # Dissociation + k_act1 0.5 # Receptor activation + k_deact1 0.05 # Receptor deactivation + + # Cascade Kinetics + k_act2 0.4 # MAPKKK activation + k_deact2 0.04 # MAPKKK deactivation + k_act3 0.3 # MAPKK/MAPK activation + k_deact3 0.03 # MAPKK/MAPK deactivation +end parameters + +begin molecule types + Ligand(r) + Receptor(l,state~inactive~active) + MAPKKK(state~U~P) + MAPKK(state~U~P) + MAPK(state~U~P) +end molecule types + +begin seed species + Ligand(r) 0 + Receptor(l,state~inactive) 50 + MAPKKK(state~U) 30 + MAPKK(state~U) 100 + MAPK(state~U) 200 +end seed species + +begin observables + Molecules Active_Receptor Receptor(state~active) + Molecules MAPKKK_P MAPKKK(state~P) + Molecules MAPKK_P MAPKK(state~P) + Molecules MAPK_P MAPK(state~P) +end observables + +begin reaction rules + # 1. Receptor Activation + Ligand(r) + Receptor(l,state~inactive) <-> Ligand(r!1).Receptor(l!1,state~inactive) k_bind,k_unbind + Ligand(r!1).Receptor(l!1,state~inactive) -> Ligand(r!1).Receptor(l!1,state~active) k_act1 + Receptor(state~active) -> Receptor(state~inactive) k_deact1 + + # 2. MAPKKK Activation (Raf) + # Active receptor activates MAPKKK + Receptor(state~active) + MAPKKK(state~U) -> Receptor(state~active) + MAPKKK(state~P) k_act2 + # Phosphatase action + MAPKKK(state~P) -> MAPKKK(state~U) k_deact2 + + # 3. MAPKK Activation (MEK) + # Active MAPKKK activates MAPKK + MAPKKK(state~P) + MAPKK(state~U) -> MAPKKK(state~P) + MAPKK(state~P) k_act3 + MAPKK(state~P) -> MAPKK(state~U) k_deact3 + + # 4. MAPK Activation (ERK) + # Active MAPKK activates MAPK + MAPKK(state~P) + MAPK(state~U) -> MAPKK(state~P) + MAPK(state~P) k_act3 + MAPK(state~P) -> MAPK(state~U) k_deact3 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + setConcentration("Ligand(r)", 100) + simulate({method=>"ode",t_end=>100,n_steps=>200}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/mapksignalingcascade/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/mapksignalingcascade/metadata.yaml new file mode 100644 index 00000000..c62a1231 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/mapksignalingcascade/metadata.yaml @@ -0,0 +1,24 @@ +id: "mapk-signaling-cascade" +name: "mapk signaling cascade" +description: "Rate Constants" +contributors: + - name: "Achyudhan" +tags: ["mapk", "signaling", "cascade", "ligand", "receptor", "mapkkk", "mapkk"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/mapk-signaling-cascade.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/michaelismentenkinetics/README.md b/Contributed/BNGPlayground_Examples/biology/michaelismentenkinetics/README.md new file mode 100644 index 00000000..d125be1b --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/michaelismentenkinetics/README.md @@ -0,0 +1,22 @@ +# michaelis menten kinetics + +Kinetic Constants + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- michaelis-menten-kinetics.bngl + +## Tags + +michaelis, menten, kinetics, e, s, p, generate_network, simulate, writesbml diff --git a/Contributed/BNGPlayground_Examples/biology/michaelismentenkinetics/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/michaelismentenkinetics/metadata.yaml new file mode 100644 index 00000000..98633e61 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/michaelismentenkinetics/metadata.yaml @@ -0,0 +1,24 @@ +id: "michaelis-menten-kinetics" +name: "michaelis menten kinetics" +description: "Kinetic Constants" +contributors: + - name: "Achyudhan" +tags: ["michaelis", "menten", "kinetics", "e", "s", "p", "generate_network", "simulate", "writesbml"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/michaelis-menten-kinetics.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/michaelismentenkinetics/michaelis-menten-kinetics.bngl b/Contributed/BNGPlayground_Examples/biology/michaelismentenkinetics/michaelis-menten-kinetics.bngl new file mode 100644 index 00000000..80e45f2f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/michaelismentenkinetics/michaelis-menten-kinetics.bngl @@ -0,0 +1,40 @@ +begin model +begin parameters + # Kinetic Constants + k_on 1.0 # Forward binding rate (E+S -> ES) + k_off 0.5 # Reverse binding rate (ES -> E+S) + k_cat 0.2 # Catalytic rate (ES -> E+P) + + # Initial Concentrations + E_0 1.0 # Total Enzyme + S_0 10.0 # Total Substrate +end parameters + +begin molecule types + E(s) # Enzyme + S(e) # Substrate + P() # Product +end molecule types + +begin seed species + E(s) E_0 + S(e) S_0 +end seed species + +begin observables + Molecules obs_Product P() + Molecules obs_ES_Complex E(s!+) +end observables + +begin reaction rules + # 1. Reversible Binding + Binding: E(s) + S(e) <-> E(s!1).S(e!1) k_on,k_off + + # 2. Catalysis + Catalysis: E(s!1).S(e!1) -> E(s) + P() k_cat +end reaction rules +end model + +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>50,n_steps=>50}) +writeSBML() diff --git a/Contributed/BNGPlayground_Examples/biology/mtorc2signaling/README.md b/Contributed/BNGPlayground_Examples/biology/mtorc2signaling/README.md new file mode 100644 index 00000000..dc4ebbfc --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/mtorc2signaling/README.md @@ -0,0 +1,22 @@ +# mtorc2 signaling + +mTORC2 signaling regulates cell survival and growth via AKT and SGK1. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- mtorc2-signaling.bngl + +## Tags + +mtorc2, signaling, mtor, sin1, rictor, akt, sgk1, pip3 diff --git a/Contributed/BNGPlayground_Examples/biology/mtorc2signaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/mtorc2signaling/metadata.yaml new file mode 100644 index 00000000..403957d3 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/mtorc2signaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "mtorc2-signaling" +name: "mtorc2 signaling" +description: "mTORC2 signaling regulates cell survival and growth via AKT and SGK1." +contributors: + - name: "Achyudhan" +tags: ["mtorc2", "signaling", "mtor", "sin1", "rictor", "akt", "sgk1", "pip3"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/mtorc2-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/mtorc2signaling/mtorc2-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/mtorc2signaling/mtorc2-signaling.bngl new file mode 100644 index 00000000..e636ac8b --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/mtorc2signaling/mtorc2-signaling.bngl @@ -0,0 +1,98 @@ +begin model +begin parameters + # mTORC2 signaling regulates cell survival and growth via AKT and SGK1. + # Advanced features: Hill kinetics for assembly and wildcard binding. + + # Complex Assembly + k_sin1_bind 0.01 # Recruit SIN1 to mTOR (increased for observable dynamics) + k_rictor_bind 0.01 # Recruit Rictor (Stabilizing) + + # Activation + k_act_max 5.0 # Max mTORC2 activation + Km_pip3 300 # Half-saturation by PIP3 + n_hill 2.0 # Cooperativity in activation + + # Signal Transduction + k_akt_phos 2.0 # S473 phosphorylation (mTORC2 signature) + k_sgk_phos 1.0 # SGK1 phosphorylation + + # Initials + mTOR_tot 500 + SIN1_tot 400 + Rictor_tot 400 + AKT_init 800 + SGK_init 300 + PIP3_level 100 # Input drive (Parameter for scaling) + k_syn_pip3 10.0 + k_deg_pip3 0.1 +end parameters + +begin molecule types + mTOR(sin,ric,s~U~P) + SIN1(b) + Rictor(b) + AKT(s~U~P) + SGK1(s~U~P) + PIP3() +end molecule types + +begin seed species + mTOR(sin,ric,s~U) mTOR_tot + SIN1(b) SIN1_tot + Rictor(b) Rictor_tot + AKT(s~U) AKT_init + SGK1(s~U) SGK_init + PIP3() 0 +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Active_mTORC2 mTOR(sin!+,ric!+,s~P) # Fully assembled and active complex + Molecules Total_pAKT AKT(s~P) # Survival readout + Molecules Total_pSGK SGK1(s~P) # Volume control readout + Molecules mTORC2_Assembled mTOR(sin!+,ric!+) # Structural integrity metrics + Molecules PIP3_Sensors PIP3() # Drive metrics +end observables + +begin functions + # Hill-like activation rate + # Hill-like activation rate + v_act() = k_act_max * (PIP3_Sensors^n_hill) / (Km_pip3^n_hill + PIP3_Sensors^n_hill) +end functions + +begin reaction rules + ## ASSEMBLY + # Wildcard: mTOR binds SIN1 regardless of Rictor status (!?) + mTOR(sin) + SIN1(b) <-> mTOR(sin!1).SIN1(b!1) k_sin1_bind,0.1 + + # Rictor recruitment + mTOR(ric) + Rictor(b) <-> mTOR(ric!1).Rictor(b!1) k_rictor_bind,0.1 + + ## ACTIVATION + # Assembled mTORC2 is activated by PIP3 (Functional Rate) + # include_reactants: Only assemble if both sites are bound + mTOR(sin!+,ric!+,s~U) -> mTOR(sin!+,ric!+,s~P) v_act() + + ## RELAY + # p-mTORC2 phosphorylates AKT + mTOR(s~P) + AKT(s~U) -> mTOR(s~P) + AKT(s~P) k_akt_phos + + # p-mTORC2 phosphorylates SGK1 + mTOR(s~P) + SGK1(s~U) -> mTOR(s~P) + SGK1(s~P) k_sgk_phos + + ## RESET + AKT(s~P) -> AKT(s~U) 0.05 + SGK1(s~P) -> SGK1(s~U) 0.05 + mTOR(s~P) -> mTOR(s~U) 0.01 + + ## PIP3 Dynamics + 0 -> PIP3() k_syn_pip3 + PIP3() -> 0 k_deg_pip3 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>50,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/mtorsignaling/README.md b/Contributed/BNGPlayground_Examples/biology/mtorsignaling/README.md new file mode 100644 index 00000000..0f1c6133 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/mtorsignaling/README.md @@ -0,0 +1,22 @@ +# mtor signaling + +mTOR Signaling Pathway + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- mtor-signaling.bngl + +## Tags + +mtor, signaling, rheb, mtorc1, s6k, ampk diff --git a/Contributed/BNGPlayground_Examples/biology/mtorsignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/mtorsignaling/metadata.yaml new file mode 100644 index 00000000..d18277a8 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/mtorsignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "mtor-signaling" +name: "mtor signaling" +description: "mTOR Signaling Pathway" +contributors: + - name: "Achyudhan" +tags: ["mtor", "signaling", "rheb", "mtorc1", "s6k", "ampk"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/mtor-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/mtorsignaling/mtor-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/mtorsignaling/mtor-signaling.bngl new file mode 100644 index 00000000..138b909f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/mtorsignaling/mtor-signaling.bngl @@ -0,0 +1,65 @@ +begin model +begin parameters + # mTOR Signaling Pathway + # Regulates cell growth, protein synthesis, and autophagy. + + # Activation Rates + k_rheb 0.3 # Rheb activation (GEF activity) + k_mtor 0.4 # mTORC1 activation by Rheb + k_s6k 0.35 # S6K phosphorylation (protein synthesis) + k_ampk 0.2 # AMPK activation (energy sensor) + + # Reset Rates + k_reset 0.06 # Dephosphorylation/Turnover +end parameters + +begin molecule types + Rheb(state~GDP~GTP) # Ras homolog enriched in brain + MTORC1(state~inactive~active) # Mechanistic target of rapamycin complex 1 + S6K(phos~U~P) # Ribosomal protein S6 kinase + AMPK(state~off~on) # AMP-activated protein kinase +end molecule types + +begin seed species + Rheb(state~GDP) 50 + MTORC1(state~inactive) 35 + S6K(phos~U) 80 + AMPK(state~off) 40 +end seed species + +begin reaction rules + # 1. Rheb Activation + Rheb(state~GDP) -> Rheb(state~GTP) k_rheb + + # 2. mTORC1 Activation + # Active Rheb turns on mTORC1 + Rheb(state~GTP) + MTORC1(state~inactive) -> Rheb(state~GTP) + MTORC1(state~active) k_mtor + + # 3. Downstream Signaling (Protein Synthesis) + MTORC1(state~active) + S6K(phos~U) -> MTORC1(state~active) + S6K(phos~P) k_s6k + + # 4. Energy Stress Response (AMPK) + AMPK(state~off) -> AMPK(state~on) k_ampk + + # 5. Inhibition by AMPK + # Active AMPK shuts down Rheb (GAP activity) + AMPK(state~on) + Rheb(state~GTP) -> AMPK(state~on) + Rheb(state~GDP) k_ampk + + # 6. Reset Mechanisms + S6K(phos~P) -> S6K(phos~U) k_reset + MTORC1(state~active) -> MTORC1(state~inactive) k_reset + AMPK(state~on) -> AMPK(state~off) k_reset +end reaction rules + +begin observables + Molecules Active_Rheb Rheb(state~GTP) + Molecules Active_MTORC1 MTORC1(state~active) + Molecules Phospho_S6K S6K(phos~P) + Molecules Active_AMPK AMPK(state~on) +end observables + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>0,t_end=>100,n_steps=>200}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/myogenicdifferentiation/README.md b/Contributed/BNGPlayground_Examples/biology/myogenicdifferentiation/README.md new file mode 100644 index 00000000..02cecb1a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/myogenicdifferentiation/README.md @@ -0,0 +1,22 @@ +# myogenic differentiation + +Myogenic Differentiation + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- myogenic-differentiation.bngl + +## Tags + +myogenic, differentiation, myod, myog, mef2 diff --git a/Contributed/BNGPlayground_Examples/biology/myogenicdifferentiation/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/myogenicdifferentiation/metadata.yaml new file mode 100644 index 00000000..efbc5a68 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/myogenicdifferentiation/metadata.yaml @@ -0,0 +1,24 @@ +id: "myogenic-differentiation" +name: "myogenic differentiation" +description: "Myogenic Differentiation" +contributors: + - name: "Achyudhan" +tags: ["myogenic", "differentiation", "myod", "myog", "mef2"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/myogenic-differentiation.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/myogenicdifferentiation/myogenic-differentiation.bngl b/Contributed/BNGPlayground_Examples/biology/myogenicdifferentiation/myogenic-differentiation.bngl new file mode 100644 index 00000000..64514480 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/myogenicdifferentiation/myogenic-differentiation.bngl @@ -0,0 +1,57 @@ +begin model +begin parameters + # Myogenic Differentiation + # Models the MyoD-Myogenin-MEF2 regulatory circuit in muscle cell development. + + k_induce 0.2 # Induction of MyoD + k_expression 0.35 # Myogenin expression + k_mef2 0.3 # MEF2 activation + k_feedback 0.25 # Positive/Negative feedback loops + k_reset 0.06 # Protein turnover +end parameters + +begin molecule types + MYOD(level~low~high) # Master regulator transcription factor + MYOG(state~off~on) # Myogenin + MEF2(state~off~on) # Myocyte enhancer factor 2 +end molecule types + +begin seed species + MYOD(level~low) 60 + MYOG(state~off) 50 + MEF2(state~off) 40 +end seed species + +begin reaction rules + # 1. Initiation + MYOD(level~low) -> MYOD(level~high) k_induce + + # 2. Myogenin Expression + # High MyoD drives Myogenin + MYOD(level~high) + MYOG(state~off) -> MYOD(level~high) + MYOG(state~on) k_expression + + # 3. MEF2 Activation + # Myogenin activates MEF2 + MYOG(state~on) + MEF2(state~off) -> MYOG(state~on) + MEF2(state~on) k_mef2 + + # 4. Feedback Loops & Regulation + # Positive feedback: MEF2 maintains high MyoD + MEF2(state~on) + MYOD(level~low) -> MEF2(state~on) + MYOD(level~high) k_feedback + + # Negative regulation / Turnover + MYOD(level~high) -> MYOD(level~low) k_feedback + MEF2(state~on) -> MEF2(state~off) k_reset + MYOG(state~on) -> MYOG(state~off) k_reset +end reaction rules + +begin observables + Molecules High_MYOD MYOD(level~high) + Molecules MYOG_On MYOG(state~on) + Molecules MEF2_On MEF2(state~on) +end observables + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>0,t_end=>120,n_steps=>200}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/negativefeedbackloop/README.md b/Contributed/BNGPlayground_Examples/biology/negativefeedbackloop/README.md new file mode 100644 index 00000000..19ab0b90 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/negativefeedbackloop/README.md @@ -0,0 +1,22 @@ +# negative feedback loop + +Negative Feedback Loop + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- negative-feedback-loop.bngl + +## Tags + +negative, feedback, loop, gene, mrna, protein diff --git a/Contributed/BNGPlayground_Examples/biology/negativefeedbackloop/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/negativefeedbackloop/metadata.yaml new file mode 100644 index 00000000..552e4945 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/negativefeedbackloop/metadata.yaml @@ -0,0 +1,24 @@ +id: "negative-feedback-loop" +name: "negative feedback loop" +description: "Negative Feedback Loop" +contributors: + - name: "Achyudhan" +tags: ["negative", "feedback", "loop", "gene", "mrna", "protein"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/negative-feedback-loop.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/negativefeedbackloop/negative-feedback-loop.bngl b/Contributed/BNGPlayground_Examples/biology/negativefeedbackloop/negative-feedback-loop.bngl new file mode 100644 index 00000000..b80aafc7 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/negativefeedbackloop/negative-feedback-loop.bngl @@ -0,0 +1,52 @@ +begin model +begin parameters + # Negative Feedback Loop + # Simple gene regulatory circuit with autorepression. + + k_transcribe 1.0 # mRNA synthesis + k_translate 4.0 # Protein synthesis + k_bind 0.002 # Repressor binding + k_unbind 0.001 # Repressor dissociation + k_deg_m 0.2 # mRNA degradation + k_deg_p 0.1 # Protein degradation +end parameters + +begin molecule types + Gene(state~free~bound) + mRNA() + Protein() +end molecule types + +begin seed species + Gene(state~free) 1 +end seed species + +begin observables + Molecules Free_gene Gene(state~free) + Molecules Bound_gene Gene(state~bound) + Molecules Transcript mRNA() + Molecules Protein Protein() +end observables + +begin reaction rules + # 1. Transcription (Constitutive when free) + Gene(state~free) -> Gene(state~free) + mRNA() k_transcribe + + # 2. Translation + mRNA() -> mRNA() + Protein() k_translate + + # 3. Feedback Repression + # Protein product binds its own gene promoter (Autorepression) + Protein() + Gene(state~free) -> Protein() + Gene(state~bound) k_bind + Gene(state~bound) -> Gene(state~free) k_unbind + + # 4. Degradation + mRNA() -> 0 k_deg_m + Protein() -> 0 k_deg_p +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>500,n_steps=>250}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/neurotransmitterrelease/README.md b/Contributed/BNGPlayground_Examples/biology/neurotransmitterrelease/README.md new file mode 100644 index 00000000..b9906ec7 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/neurotransmitterrelease/README.md @@ -0,0 +1,22 @@ +# neurotransmitter release + +Neurotransmitter Release + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- neurotransmitter-release.bngl + +## Tags + +neurotransmitter, release, calcium, snare, vesicle, postsynaptic diff --git a/Contributed/BNGPlayground_Examples/biology/neurotransmitterrelease/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/neurotransmitterrelease/metadata.yaml new file mode 100644 index 00000000..848485c7 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/neurotransmitterrelease/metadata.yaml @@ -0,0 +1,24 @@ +id: "neurotransmitter-release" +name: "neurotransmitter release" +description: "Neurotransmitter Release" +contributors: + - name: "Achyudhan" +tags: ["neurotransmitter", "release", "calcium", "snare", "vesicle", "postsynaptic"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/neurotransmitter-release.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/neurotransmitterrelease/neurotransmitter-release.bngl b/Contributed/BNGPlayground_Examples/biology/neurotransmitterrelease/neurotransmitter-release.bngl new file mode 100644 index 00000000..9738febe --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/neurotransmitterrelease/neurotransmitter-release.bngl @@ -0,0 +1,61 @@ +begin model +begin parameters + # Neurotransmitter Release + # Models Calcium-triggered synaptic vesicle fusion via SNARE complex. + + k_influx 0.5 # Calcium entry + k_clear 0.1 # Calcium clearance + k_snare 0.4 # SNARE complex opening + k_fusion 0.35 # Vesicle fusion + k_response 0.3 # Postsynaptic activation + k_reset 0.08 # System reset +end parameters + +begin molecule types + Calcium(level~low~high) + SNARE(state~closed~open) + Vesicle(state~docked~fused) + Postsynaptic(state~rest~active) +end molecule types + +begin seed species + Calcium(level~low) 100 + SNARE(state~closed) 60 + Vesicle(state~docked) 40 + Postsynaptic(state~rest) 40 +end seed species + +begin reaction rules + # 1. Calcium Influx + Calcium(level~low) -> Calcium(level~high) k_influx + + # 2. SNARE Activation + # Calcium sensors trigger SNARE opening + Calcium(level~high) + SNARE(state~closed) -> Calcium(level~high) + SNARE(state~open) k_snare + + # 3. Vesicle Fusion + # Open SNAREs drive vesicle fusion + SNARE(state~open) + Vesicle(state~docked) -> SNARE(state~open) + Vesicle(state~fused) k_fusion + + # 4. Postsynaptic Response + Vesicle(state~fused) + Postsynaptic(state~rest) -> Vesicle(state~fused) + Postsynaptic(state~active) k_response + + # 5. Reset / Re-uptake + Postsynaptic(state~active) -> Postsynaptic(state~rest) k_reset + Vesicle(state~fused) -> Vesicle(state~docked) k_reset + SNARE(state~open) -> SNARE(state~closed) k_reset + Calcium(level~high) -> Calcium(level~low) k_clear +end reaction rules + +begin observables + Molecules High_Calcium Calcium(level~high) + Molecules Open_SNARE SNARE(state~open) + Molecules Fused_Vesicle Vesicle(state~fused) + Molecules Postsynaptic_Response Postsynaptic(state~active) +end observables + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>0,t_end=>80,n_steps=>200}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/nfkbfeedback/README.md b/Contributed/BNGPlayground_Examples/biology/nfkbfeedback/README.md new file mode 100644 index 00000000..b0549094 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/nfkbfeedback/README.md @@ -0,0 +1,22 @@ +# nfkb feedback + +TNFalpha-induced NF-kB signaling with IkappaB-alpha feedback. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- nfkb-feedback.bngl + +## Tags + +nfkb, feedback, ikb, ikk, a20 diff --git a/Contributed/BNGPlayground_Examples/biology/nfkbfeedback/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/nfkbfeedback/metadata.yaml new file mode 100644 index 00000000..97c43135 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/nfkbfeedback/metadata.yaml @@ -0,0 +1,24 @@ +id: "nfkb-feedback" +name: "nfkb feedback" +description: "TNFalpha-induced NF-kB signaling with IkappaB-alpha feedback." +contributors: + - name: "Achyudhan" +tags: ["nfkb", "feedback", "ikb", "ikk", "a20"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/nfkb-feedback.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/nfkbfeedback/nfkb-feedback.bngl b/Contributed/BNGPlayground_Examples/biology/nfkbfeedback/nfkb-feedback.bngl new file mode 100644 index 00000000..8a8f571e --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/nfkbfeedback/nfkb-feedback.bngl @@ -0,0 +1,114 @@ +begin model +begin parameters + # TNFalpha-induced NF-kB signaling with IkappaB-alpha feedback. + # Advanced features: TotalRate for IKK and pulsatile stimulation. + + # Upstream Induction + k_ikk_act 1.0 # IKK activation by TNF (Agonist) + k_ikk_reset 0.2 # IKK inactivation + + # NF-kB Cycle + k_nuc_import 0.8 # Nuclear entry of liberated NF-kB + k_nuc_export 0.2 # Exit + + # IkappaB-alpha Feedback + k_ikb_synth 1.5 # NF-kB induced IkB synthesis + k_ikb_bind 5.0 # Rapid sequestration of NF-kB by IkB + k_ikb_deg 2.0 # IKK-mediated degradation + + # A20 Feedback (Regulates IKK) + k_a20_synth 0.1 + k_a20_inh 2.0 + + # Initials + NFkB_tot 1000 + IkB_init 800 # Mostly bound initially + IKK_tot 200 + A20_init 0 + + # Pulse Control + TNF_Stim 0.1 +end parameters + +begin molecule types + NFkB(b,loc~cyt~nuc) + IkB(b,s~U~P) + IKK(s~inactive~active) + A20() +end molecule types + +begin seed species + NFkB(b,loc~cyt) NFkB_tot + IkB(b,s~U) IkB_init + IKK(s~inactive) IKK_tot + A20() A20_init +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Nuclear_NFkB NFkB(loc~nuc) # Transcriptional driver + Molecules Active_IKK IKK(s~active) # Upstream kinase trigger + Molecules Total_IkB IkB() # Negative regulator mass + Molecules NFkB_complex NFkB(b!1).IkB(b!1) # Latent reservoir status + Molecules A20_Feedback A20() # Adaptive suppression status +end observables + +begin functions + # Stimulus Function (Controlled by Parameter now) + v_stim() = TNF_Stim +end functions + +begin reaction rules + ## ACTIVATION + # Pulsatile stimulus activates IKK (TotalRate: drive-dependent) + IKK(s~inactive) -> IKK(s~active) k_ikk_act * TNF_Stim TotalRate + + # IKK phosphorylates/degrades IkB in NFkB complexes + # Wildcard: Any NFkB-bound IkB is targeted (!+) + NFkB(b!1).IkB(b!1) + IKK(s~active) -> NFkB(b) + IKK(s~active) k_ikb_deg + + ## RELAY & TRANSPORT + # Free NFkB translocates to nucleus + NFkB(b,loc~cyt) -> NFkB(b,loc~nuc) k_nuc_import + + # Nuclear NFkB induces IkB synthesis (Feedback 1) + NFkB(loc~nuc) -> NFkB(loc~nuc) + IkB(b,s~U) k_ikb_synth + + # Nuclear NFkB induces A20 synthesis (Feedback 2) + NFkB(loc~nuc) -> NFkB(loc~nuc) + A20() k_a20_synth + + ## SEQUESTRATION & EXPORT + # Cytosolic IkB binds NFkB + NFkB(b,loc~cyt) + IkB(b,s~U) -> NFkB(b!1,loc~cyt).IkB(b!1,s~U) k_ikb_bind + + # IkB exports NFkB (Simplified) + NFkB(loc~nuc) -> NFkB(loc~cyt) k_nuc_export + + ## NEGATIVE CONTROL + # A20 inhibits active IKK + A20() + IKK(s~active) -> A20() + IKK(s~inactive) k_a20_inh + + ## RESET + IKK(s~active) -> IKK(s~inactive) k_ikk_reset + A20() -> 0 0.05 + IkB(s~U) -> 0 0.05 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + # Phase 1: Basal (0-80) + simulate({method=>"ode",t_end=>80,n_steps=>200}) + # Phase 2: Pulse 1 (80-105) - High TNF + setParameter("TNF_Stim",2.0) + simulate({method=>"ode",t_end=>105,n_steps=>200,continue=>1}) + # Phase 3: Reset 1 (105-155) - Low TNF + setParameter("TNF_Stim",0.1) + simulate({method=>"ode",t_end=>155,n_steps=>200,continue=>1}) + # Phase 4: Pulse 2 (155-170) - High TNF + setParameter("TNF_Stim",2.0) + simulate({method=>"ode",t_end=>170,n_steps=>200,continue=>1}) + # Phase 5: Reset 2 (170-800) - Low TNF + setParameter("TNF_Stim",0.1) + simulate({method=>"ode",t_end=>800,n_steps=>400,continue=>1}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/nocgmpsignaling/README.md b/Contributed/BNGPlayground_Examples/biology/nocgmpsignaling/README.md new file mode 100644 index 00000000..0ca8cd47 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/nocgmpsignaling/README.md @@ -0,0 +1,22 @@ +# no cgmp signaling + +Nitric Oxide (NO) / cGMP signaling pathway. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- no-cgmp-signaling.bngl + +## Tags + +no, cgmp, signaling, sgc, pkg diff --git a/Contributed/BNGPlayground_Examples/biology/nocgmpsignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/nocgmpsignaling/metadata.yaml new file mode 100644 index 00000000..e075fc1c --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/nocgmpsignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "no-cgmp-signaling" +name: "no cgmp signaling" +description: "Nitric Oxide (NO) / cGMP signaling pathway." +contributors: + - name: "Achyudhan" +tags: ["no", "cgmp", "signaling", "sgc", "pkg"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/no-cgmp-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/nocgmpsignaling/no-cgmp-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/nocgmpsignaling/no-cgmp-signaling.bngl new file mode 100644 index 00000000..91e4e9ba --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/nocgmpsignaling/no-cgmp-signaling.bngl @@ -0,0 +1,98 @@ +begin model +begin parameters + # Nitric Oxide (NO) / cGMP signaling pathway. + # Advanced features: MM kinetics,TotalRate,and Variadic aggregates. + + # Nitric Oxide Dynamics + k_no_synth 10.0 # Stimulated NO production (e.g. by eNOS) + k_no_deg 0.5 # Rapid NO decay + + # sGC Activation + k_sgc_act 1.2 # NO-mediated sGC activation + k_sgc_inact 0.3 # Deactivation + + # sGC Turnover + k_syn_sgc 20.0 + k_deg_sgc 0.1 + + # cGMP Metabolism + k_cgmp_synth 15.0 # Peak cGMP production by active sGC + Km_pde 400 # Half-saturation for PDE metabolism + v_pde_max 10.0 # PDE capacity + + # Downstream Activation + k_pkg_act 1.0 # cGMP-mediated PKG activation + + # Initials + sGC_tot 200 + PKG_tot 300 + NO_init 10 + cGMP_init 5 +end parameters + +begin molecule types + NO() + sGC(s~inactive~active) + cGMP() + PKG(s~inactive~active) +end molecule types + +begin seed species + NO() NO_init + sGC(s~inactive) 0 + cGMP() cGMP_init + PKG(s~inactive) PKG_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Vasodilator_Sig cGMP() # Core signaling level + Molecules Active_sGC sGC(s~active) # Signaling platform status + Molecules cGMP_Pool cGMP() # Signal relay status + Molecules Phospho_Drive PKG(s~active) # Downstream work + Molecules Radical_Load NO() # Upstream driver + Molecules Total_Cyclase sGC() # Mass balance +end observables + +begin functions + # Michaelis-Menten rate for saturable cGMP degradation (PDE kinetics) + v_deg() = v_pde_max * cGMP_Pool / (Km_pde + cGMP_Pool) +end functions + +begin reaction rules + ## UPSTREAM GATING + # eNOS stimulated NO production + 0 -> NO() k_no_synth + + # NO induces active sGC (TotalRate: sets the rule rate explicitly) + NO() + sGC(s~inactive) -> NO() + sGC(s~active) k_no_synth TotalRate + + # Basal NO decay + NO() -> 0 k_no_deg + + ## CYCLASE ACTIVITY + # Active sGC produces cGMP + sGC(s~active) -> sGC(s~active) + cGMP() k_cgmp_synth + + ## METABOLISM & DRIVE + # PDE clears cGMP (Functional Rate Law) + cGMP() -> 0 v_deg() + + # cGMP activates PKG (Simplified: cGMP acts as catalyst for PKG activation) + PKG(s~inactive) -> PKG(s~active) k_pkg_act * (cGMP_Pool / (cGMP_Pool + 100)) + + ## RESET + sGC(s~active) -> sGC(s~inactive) k_sgc_inact + PKG(s~active) -> PKG(s~inactive) 0.1 + + ## sGC TURNOVER + 0 -> sGC(s~inactive) k_syn_sgc + sGC() -> 0 k_deg_sgc +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>20,n_steps=>240}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/notchdeltalateralinhibition/README.md b/Contributed/BNGPlayground_Examples/biology/notchdeltalateralinhibition/README.md new file mode 100644 index 00000000..0252a76c --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/notchdeltalateralinhibition/README.md @@ -0,0 +1,22 @@ +# notch delta lateral inhibition + +Notch-Delta Lateral Inhibition + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- notch-delta-lateral-inhibition.bngl + +## Tags + +notch, delta, lateral, inhibition, cellnotch, celldelta diff --git a/Contributed/BNGPlayground_Examples/biology/notchdeltalateralinhibition/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/notchdeltalateralinhibition/metadata.yaml new file mode 100644 index 00000000..f4c7d82c --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/notchdeltalateralinhibition/metadata.yaml @@ -0,0 +1,24 @@ +id: "notch-delta-lateral-inhibition" +name: "notch delta lateral inhibition" +description: "Notch-Delta Lateral Inhibition" +contributors: + - name: "Achyudhan" +tags: ["notch", "delta", "lateral", "inhibition", "cellnotch", "celldelta"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/notch-delta-lateral-inhibition.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/notchdeltalateralinhibition/notch-delta-lateral-inhibition.bngl b/Contributed/BNGPlayground_Examples/biology/notchdeltalateralinhibition/notch-delta-lateral-inhibition.bngl new file mode 100644 index 00000000..330002c0 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/notchdeltalateralinhibition/notch-delta-lateral-inhibition.bngl @@ -0,0 +1,49 @@ +begin model +begin parameters + # Notch-Delta Lateral Inhibition + # Pattern formation via juxtacrine signaling between neighboring cells. + + k_bind 0.01 # Delta-Notch binding + k_unbind 0.002 # Dissociation + k_signal 0.2 # Notch cleavage/Activation + k_decay 0.05 # Active Notch degradation +end parameters + +begin molecule types + CellNotch(state~inactive~active) + CellDelta(level~low~high) +end molecule types + +begin seed species + CellNotch(state~inactive) 1 + CellDelta(level~low) 1 +end seed species + +begin observables + Molecules Active_notch CellNotch(state~active) + Molecules High_delta CellDelta(level~high) +end observables + +begin reaction rules + # 1. Receiver Activation + # Delta on neighbor binds Notch on cell + CellNotch(state~inactive) + CellDelta(level~high) <-> CellNotch(state~active) + CellDelta(level~high) k_bind,k_unbind + + # 2. Signal Transduction + # Active Notch suppresses Delta expression (Lateral Inhibition) + # (Simplified: Active Notch promotes low Delta state) + CellNotch(state~active) -> CellNotch(state~inactive) k_decay + + # 3. Delta Dynamics + # Default to high Delta in absence of inhibition + CellDelta(level~low) -> CellDelta(level~high) k_signal + + # Inhibition: Active Notch suppresses Delta + CellNotch(state~active) + CellDelta(level~high) -> CellNotch(state~active) + CellDelta(level~low) k_signal +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>1000,n_steps=>300}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/oxidativestressresponse/README.md b/Contributed/BNGPlayground_Examples/biology/oxidativestressresponse/README.md new file mode 100644 index 00000000..3fbccd2f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/oxidativestressresponse/README.md @@ -0,0 +1,22 @@ +# oxidative stress response + +Oxidative Stress Response (Keap1-Nrf2 Pathway) + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- oxidative-stress-response.bngl + +## Tags + +oxidative, stress, response, ros, keap1, nrf2, antioxidant diff --git a/Contributed/BNGPlayground_Examples/biology/oxidativestressresponse/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/oxidativestressresponse/metadata.yaml new file mode 100644 index 00000000..65373f7d --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/oxidativestressresponse/metadata.yaml @@ -0,0 +1,24 @@ +id: "oxidative-stress-response" +name: "oxidative stress response" +description: "Oxidative Stress Response (Keap1-Nrf2 Pathway)" +contributors: + - name: "Achyudhan" +tags: ["oxidative", "stress", "response", "ros", "keap1", "nrf2", "antioxidant"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/oxidative-stress-response.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/oxidativestressresponse/oxidative-stress-response.bngl b/Contributed/BNGPlayground_Examples/biology/oxidativestressresponse/oxidative-stress-response.bngl new file mode 100644 index 00000000..4321cff0 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/oxidativestressresponse/oxidative-stress-response.bngl @@ -0,0 +1,64 @@ +begin model +begin parameters + # Oxidative Stress Response (Keap1-Nrf2 Pathway) + # Cellular defense mechanism against reactive oxygen species (ROS). + + k_ros 0.05 # ROS generation + k_keap1 0.3 # Keap1-Nrf2 sensing + k_release 0.25 # Nrf2 release + k_transcription 0.4 # Antioxidant gene expression + k_clear 0.1 # ROS scavenging + k_reset 0.07 # Turnover +end parameters + +begin molecule types + ROS(level~basal~elevated) + KEAP1(state~bound~released) + NRF2(loc~cyto~nuc) + Antioxidant(level~low~high) +end molecule types + +begin seed species + ROS(level~basal) 60 + KEAP1(state~bound) 50 + NRF2(loc~cyto) 40 + Antioxidant(level~low) 30 +end seed species + +begin reaction rules + # 1. Stress Induction + ROS(level~basal) -> ROS(level~elevated) k_ros + + # 2. Sensing + # Elevated ROS modifies Keap1, releasing Nrf2 + ROS(level~elevated) + KEAP1(state~bound) -> ROS(level~elevated) + KEAP1(state~released) k_release + + # 3. Translocation + KEAP1(state~released) + NRF2(loc~cyto) -> KEAP1(state~released) + NRF2(loc~nuc) k_release + + # 4. Response + # Nuclear Nrf2 drives antioxidant production + NRF2(loc~nuc) + Antioxidant(level~low) -> NRF2(loc~nuc) + Antioxidant(level~high) k_transcription + + # 5. Clearance + # Antioxidants neutralize ROS + Antioxidant(level~high) + ROS(level~elevated) -> Antioxidant(level~high) + ROS(level~basal) k_clear + + # 6. Reset + KEAP1(state~released) -> KEAP1(state~bound) k_reset + NRF2(loc~nuc) -> NRF2(loc~cyto) k_reset + Antioxidant(level~high) -> Antioxidant(level~low) k_reset +end reaction rules + +begin observables + Molecules Elevated_ROS ROS(level~elevated) + Molecules Released_KEAP1 KEAP1(state~released) + Molecules Nuclear_NRF2 NRF2(loc~nuc) + Molecules High_Antioxidant Antioxidant(level~high) +end observables + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>0,t_end=>100,n_steps=>200}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/p38mapksignaling/README.md b/Contributed/BNGPlayground_Examples/biology/p38mapksignaling/README.md new file mode 100644 index 00000000..6d6a555f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/p38mapksignaling/README.md @@ -0,0 +1,22 @@ +# p38 mapk signaling + +p38 MAPK stress signaling cascade. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- p38-mapk-signaling.bngl + +## Tags + +p38, mapk, signaling, mkk3, mapkap2, v_thermal diff --git a/Contributed/BNGPlayground_Examples/biology/p38mapksignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/p38mapksignaling/metadata.yaml new file mode 100644 index 00000000..217bf59b --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/p38mapksignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "p38-mapk-signaling" +name: "p38 mapk signaling" +description: "p38 MAPK stress signaling cascade." +contributors: + - name: "Achyudhan" +tags: ["p38", "mapk", "signaling", "mkk3", "mapkap2", "v_thermal"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/p38-mapk-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/p38mapksignaling/p38-mapk-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/p38mapksignaling/p38-mapk-signaling.bngl new file mode 100644 index 00000000..52d1f1c6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/p38mapksignaling/p38-mapk-signaling.bngl @@ -0,0 +1,78 @@ +begin model +begin parameters + # p38 MAPK stress signaling cascade. + # Advanced features: Arrhenius-like temperature dependence and wildcards. + + # Upstream drive (Stress-activated MKK3/6) + k_stress 1.0 # Stress intensity (e.g. UV,Osmotic) + + # Temperature dependence (Arrhenius demo) + # k = A * exp(-Ea / (R*T)) + A_mkk 100.0 + Ea_mkk 40.0 + R_gas 8.314e-3 + Temp_K 310 # 37 Celsius + + # Signaling Dynamics + k_p38_phos 2.0 # Phosphorylation of p38 by MKK3 + k_mapkap_act 1.5 # Activation of MAPKAPK2 by p-p38 + k_dephos 0.2 # Nuclear phosphatase activity + + # Initials + p38_tot 1000 + MKK3_tot 100 + MAPKAP2_tot 400 +end parameters + +begin molecule types + p38(b,s~U~P) + MKK3(b,s~inactive~active) + MAPKAP2(b,s~U~P) +end molecule types + +begin seed species + p38(b,s~U) p38_tot + MKK3(b,s~inactive) MKK3_tot + MAPKAP2(b,s~U) MAPKAP2_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Active_p38 p38(s~P) # Stress signaling status + Molecules Transducer_Work MAPKAP2(s~P) # Final downstream effector + Molecules Upstream_Drive MKK3(s~active) # Driver intensity + Molecules Complex_States p38(b!+) # Wildcard: p38 bound to any partner + Molecules Total_Workload p38(s~P),MAPKAP2(s~P) # Aggregate stress signal +end observables + +begin functions + # Arrhenius rate for thermal stress activation + v_thermal() = A_mkk * exp(-Ea_mkk / (R_gas * Temp_K)) +end functions + +begin reaction rules + ## ACTIVATION + # Stress activates MKK3 (Combining environmental drive with thermal sensitivity) + MKK3(s~inactive) -> MKK3(s~active) k_stress * v_thermal() + + # MKK3 recruits and phosphorylates p38 + # MKK3 recruits and phosphorylates p38 + MKK3(s~active,b) + p38(s~U,b) <-> MKK3(s~active,b!1).p38(s~U,b!1) 1.0,0.5 + MKK3(s~active,b!1).p38(s~U,b!1) -> MKK3(s~active,b) + p38(s~P,b) k_p38_phos + + ## EFFECTOR RELAY + # p-p38 activates MAPKAPK2 (Wildcard: any p-p38 can activate) + p38(s~P) + MAPKAP2(s~U) -> p38(s~P) + MAPKAP2(s~P) k_mapkap_act + + ## RECOVERY + p38(s~P) -> p38(s~U) k_dephos + MAPKAP2(s~P) -> MAPKAP2(s~U) 0.1 + MKK3(s~active) -> MKK3(s~inactive) 0.05 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>150,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/p53mdm2oscillator/README.md b/Contributed/BNGPlayground_Examples/biology/p53mdm2oscillator/README.md new file mode 100644 index 00000000..7943c3b8 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/p53mdm2oscillator/README.md @@ -0,0 +1,22 @@ +# p53 mdm2 oscillator + +BioNetGen model: p53 mdm2 oscillator + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- p53-mdm2-oscillator.bngl + +## Tags + +p53, mdm2, oscillator, generate_network diff --git a/Contributed/BNGPlayground_Examples/biology/p53mdm2oscillator/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/p53mdm2oscillator/metadata.yaml new file mode 100644 index 00000000..d296777c --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/p53mdm2oscillator/metadata.yaml @@ -0,0 +1,24 @@ +id: "p53-mdm2-oscillator" +name: "p53 mdm2 oscillator" +description: "BioNetGen model: p53 mdm2 oscillator" +contributors: + - name: "Achyudhan" +tags: ["p53", "mdm2", "oscillator", "generate_network"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/p53-mdm2-oscillator.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/p53mdm2oscillator/p53-mdm2-oscillator.bngl b/Contributed/BNGPlayground_Examples/biology/p53mdm2oscillator/p53-mdm2-oscillator.bngl new file mode 100644 index 00000000..c5d12b63 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/p53mdm2oscillator/p53-mdm2-oscillator.bngl @@ -0,0 +1,37 @@ +begin model +begin parameters + k_stress 0.4 + k_mdmsynth 0.3 + k_degrade 0.2 + k_mdmdown 0.1 + k_p53deg 0.05 +end parameters + +begin molecule types + p53() + MDM2() +end molecule types + +begin seed species + p53() 20 +end seed species + +begin observables + Molecules p53_total p53() + Molecules MDM2_total MDM2() +end observables + +begin reaction rules + 0 -> p53() k_stress + p53() -> 0 k_p53deg + p53() -> p53() + MDM2() k_mdmsynth + MDM2() + p53() -> MDM2() k_degrade + MDM2() -> 0 k_mdmdown +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>50,n_steps=>320}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/parp1mediateddnarepair/README.md b/Contributed/BNGPlayground_Examples/biology/parp1mediateddnarepair/README.md new file mode 100644 index 00000000..26c36a77 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/parp1mediateddnarepair/README.md @@ -0,0 +1,22 @@ +# parp1 mediated dna repair + +PARP1-mediated DNA damage sensing and repair. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- parp1-mediated-dna-repair.bngl + +## Tags + +parp1, mediated, dna, repair, par, nad, v_parylate diff --git a/Contributed/BNGPlayground_Examples/biology/parp1mediateddnarepair/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/parp1mediateddnarepair/metadata.yaml new file mode 100644 index 00000000..3f97ba10 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/parp1mediateddnarepair/metadata.yaml @@ -0,0 +1,24 @@ +id: "parp1-mediated-dna-repair" +name: "parp1 mediated dna repair" +description: "PARP1-mediated DNA damage sensing and repair." +contributors: + - name: "Achyudhan" +tags: ["parp1", "mediated", "dna", "repair", "par", "nad", "v_parylate"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/parp1-mediated-dna-repair.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/parp1mediateddnarepair/parp1-mediated-dna-repair.bngl b/Contributed/BNGPlayground_Examples/biology/parp1mediateddnarepair/parp1-mediated-dna-repair.bngl new file mode 100644 index 00000000..98b78e45 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/parp1mediateddnarepair/parp1-mediated-dna-repair.bngl @@ -0,0 +1,86 @@ +begin model +begin parameters + # PARP1-mediated DNA damage sensing and repair. + # Advanced features: DeleteMolecules,tagging,and NAD+ depletion logic. + + # DNA Damage + k_damage 0.2 # Basal damage rate (DSB production) + k_genotoxic 5.0 # High genotoxic stress peak + + # PARP1 Detection + k_parp_bind 2.0 # Rapid PARP1 recruitment to DSB + k_parp_act 1.5 # Activation of PAR catalysis + + # Metabolic Cost + k_nad_cons 5.0 # NAD+ consumption during PARylation + Km_nad 500 # Half-saturation for NAD+ dependency + + # Repair Delivery + k_repair 0.8 # PAR-mediated repair factor recruitment + k_parg 0.3 # PARG-mediated PAR degradation + + # Initials + PARP1_tot 500 + DNA_sites 1000 # Healthy sites + NAD_tot 2000 # Energy reservoir +end parameters + +begin molecule types + DNA(state~H~D,b) + PARP1(b,s~U~P) + PAR(b) + NAD() +end molecule types + +begin seed species + DNA(state~H,b) DNA_sites + PARP1(b,s~U) PARP1_tot + NAD() NAD_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Damaged_Sites DNA(state~D) # Stress level + Molecules Bound_PARP1 PARP1(b!1).DNA(b!1) # Recognition complex + Molecules PAR_Chain PAR() # PARYlation level + Molecules NAD_Pool NAD() # Metabolic substrate status + Molecules Repaired_Units DNA(state~H) # Recovery tracker +end observables + +begin functions + # NAD+ dependent PARylation rate + v_parylate() = k_parp_act * NAD_Pool / (Km_nad + NAD_Pool) +end functions + +begin reaction rules + ## DAMAGE PHASE + # Genotoxic insult creates DSB (Tagging %1 to track site) + DNA(state~H)%1 -> DNA(state~D)%1 k_damage + + ## RECOGNITION + # PARP1 binds Damaged site + PARP1(b) + DNA(state~D,b) <-> PARP1(b!1).DNA(state~D,b!1) k_parp_bind,0.1 + + ## SIGNALING (PARylation) + # Bound PARP1 produces PAR chains (Consumes NAD+) + PARP1(b!+) + NAD() -> PARP1(b!+) + PAR(b) v_parylate() + + ## REPAIR PHASE + # PAR chains recruit machinery (Simplified direct repair) + # DeleteMolecules: Clear the temporary PAR signal once repair is done + DNA(state~D) + PAR(b) -> DNA(state~H) k_repair DeleteMolecules + + ## CLEARANCE + # PARG-mediated degradation of chains + PAR(b) -> 0 k_parg + + # Resynthesis of NAD+ (Slow recovery) + 0 -> NAD() 5.0 +end reaction rules + +begin actions + generate_network({overwrite=>1,max_stoich=>{PAR=>20}}) + simulate({method=>"ode",t_end=>60,n_steps=>400}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/phosphorelaychain/README.md b/Contributed/BNGPlayground_Examples/biology/phosphorelaychain/README.md new file mode 100644 index 00000000..bf5c8718 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/phosphorelaychain/README.md @@ -0,0 +1,22 @@ +# phosphorelay chain + +BioNetGen model: phosphorelay chain + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- phosphorelay-chain.bngl + +## Tags + +phosphorelay, chain, sensor, relay, output diff --git a/Contributed/BNGPlayground_Examples/biology/phosphorelaychain/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/phosphorelaychain/metadata.yaml new file mode 100644 index 00000000..54a87d32 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/phosphorelaychain/metadata.yaml @@ -0,0 +1,24 @@ +id: "phosphorelay-chain" +name: "phosphorelay chain" +description: "BioNetGen model: phosphorelay chain" +contributors: + - name: "Achyudhan" +tags: ["phosphorelay", "chain", "sensor", "relay", "output"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/phosphorelay-chain.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/phosphorelaychain/phosphorelay-chain.bngl b/Contributed/BNGPlayground_Examples/biology/phosphorelaychain/phosphorelay-chain.bngl new file mode 100644 index 00000000..61f93b5b --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/phosphorelaychain/phosphorelay-chain.bngl @@ -0,0 +1,38 @@ +begin model +begin parameters + k1 0.4 + k2 0.3 + k3 0.2 + k_reset 0.05 +end parameters + +begin molecule types + Sensor(state~U~P) + Relay(state~U~P) + Output(state~U~P) +end molecule types + +begin seed species + Sensor(state~U) 50 + Relay(state~U) 70 + Output(state~U) 90 +end seed species + +begin observables + Molecules Sensor_P Sensor(state~P) + Molecules Relay_P Relay(state~P) + Molecules Output_P Output(state~P) +end observables + +begin reaction rules + Sensor(state~U) -> Sensor(state~P) k1 + Sensor(state~P) + Relay(state~U) -> Sensor(state~P) + Relay(state~P) k2 + Relay(state~P) + Output(state~U) -> Relay(state~P) + Output(state~P) k3 + Output(state~P) -> Output(state~U) k_reset +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>100,n_steps=>200}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/plateletactivation/README.md b/Contributed/BNGPlayground_Examples/biology/plateletactivation/README.md new file mode 100644 index 00000000..ed43607a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/plateletactivation/README.md @@ -0,0 +1,22 @@ +# platelet activation + +BioNetGen model: platelet activation + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- platelet-activation.bngl + +## Tags + +platelet, activation, adp, p2y12, integrin, thromboxane diff --git a/Contributed/BNGPlayground_Examples/biology/plateletactivation/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/plateletactivation/metadata.yaml new file mode 100644 index 00000000..8c693673 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/plateletactivation/metadata.yaml @@ -0,0 +1,24 @@ +id: "platelet-activation" +name: "platelet activation" +description: "BioNetGen model: platelet activation" +contributors: + - name: "Achyudhan" +tags: ["platelet", "activation", "adp", "p2y12", "integrin", "thromboxane"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/platelet-activation.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/plateletactivation/platelet-activation.bngl b/Contributed/BNGPlayground_Examples/biology/plateletactivation/platelet-activation.bngl new file mode 100644 index 00000000..8c35d5c9 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/plateletactivation/platelet-activation.bngl @@ -0,0 +1,51 @@ +begin model +begin parameters + k_release 0.05 + k_bind 0.02 + k_unbind 0.002 + k_integrin 0.4 + k_tx 0.3 + k_reset 0.07 +end parameters + +begin molecule types + ADP(medium~low~high) + P2Y12(l,state~inactive~active) + Integrin(state~closed~open) + Thromboxane(level~basal~elevated) +end molecule types + +begin seed species + ADP(medium~low) 80 + P2Y12(l,state~inactive) 50 + Integrin(state~closed) 60 + Thromboxane(level~basal) 40 +end seed species + +begin reaction rules + ADP(medium~low) -> ADP(medium~high) k_release + ADP(medium~high) + P2Y12(l,state~inactive) <-> ADP(medium~high!1).P2Y12(l!1,state~inactive) k_bind,k_unbind + ADP(medium~high!1).P2Y12(l!1,state~inactive) -> ADP(medium~high!1).P2Y12(l!1,state~active) k_integrin + # Bound active P2Y12 dissociates and releases active P2Y12 which activates integrins + ADP(medium~high!1).P2Y12(l!1,state~active) -> ADP(medium~high) + P2Y12(l,state~active) k_unbind*10 + P2Y12(l,state~active) + Integrin(state~closed) -> P2Y12(l,state~active) + Integrin(state~open) k_integrin + Integrin(state~open) + Thromboxane(level~basal) -> Integrin(state~open) + Thromboxane(level~elevated) k_tx + Integrin(state~open) -> Integrin(state~closed) k_reset + Thromboxane(level~elevated) -> Thromboxane(level~basal) k_reset + P2Y12(l,state~active) -> P2Y12(l,state~inactive) k_reset + ADP(medium~high) -> ADP(medium~low) k_reset +end reaction rules + +begin observables + Molecules High_ADP ADP(medium~high) + Molecules Active_P2Y12 P2Y12(state~active) + Molecules Open_Integrin Integrin(state~open) + Molecules Elevated_Thromboxane Thromboxane(level~elevated) +end observables + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>0,t_end=>70,n_steps=>140}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/predatorpreydynamics/README.md b/Contributed/BNGPlayground_Examples/biology/predatorpreydynamics/README.md new file mode 100644 index 00000000..5963a0fe --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/predatorpreydynamics/README.md @@ -0,0 +1,22 @@ +# predator prey dynamics + +BioNetGen model: predator prey dynamics + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- predator-prey-dynamics.bngl + +## Tags + +predator, prey, dynamics diff --git a/Contributed/BNGPlayground_Examples/biology/predatorpreydynamics/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/predatorpreydynamics/metadata.yaml new file mode 100644 index 00000000..70826924 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/predatorpreydynamics/metadata.yaml @@ -0,0 +1,24 @@ +id: "predator-prey-dynamics" +name: "predator prey dynamics" +description: "BioNetGen model: predator prey dynamics" +contributors: + - name: "Achyudhan" +tags: ["predator", "prey", "dynamics"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/predator-prey-dynamics.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/predatorpreydynamics/predator-prey-dynamics.bngl b/Contributed/BNGPlayground_Examples/biology/predatorpreydynamics/predator-prey-dynamics.bngl new file mode 100644 index 00000000..00c1e813 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/predatorpreydynamics/predator-prey-dynamics.bngl @@ -0,0 +1,35 @@ +begin model +begin parameters + k_prey_birth 1.0 + k_predation 0.002 + k_pred_birth 0.001 + k_pred_death 0.5 +end parameters + +begin molecule types + Prey() + Predator() +end molecule types + +begin seed species + Prey() 200 + Predator() 20 +end seed species + +begin observables + Molecules Prey_count Prey() + Molecules Predator_count Predator() +end observables + +begin reaction rules + Prey() -> Prey() + Prey() k_prey_birth + Predator() + Prey() -> Predator() + Predator() k_pred_birth + Predator() + Prey() -> Predator() k_predation + Predator() -> 0 k_pred_death +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>1000,n_steps=>300}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/quorumsensingcircuit/README.md b/Contributed/BNGPlayground_Examples/biology/quorumsensingcircuit/README.md new file mode 100644 index 00000000..5b09341a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/quorumsensingcircuit/README.md @@ -0,0 +1,22 @@ +# quorum sensing circuit + +BioNetGen model: quorum sensing circuit + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- quorum-sensing-circuit.bngl + +## Tags + +quorum, sensing, circuit, autoinducer, autoinducer_env, gene, protein diff --git a/Contributed/BNGPlayground_Examples/biology/quorumsensingcircuit/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/quorumsensingcircuit/metadata.yaml new file mode 100644 index 00000000..e8c66337 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/quorumsensingcircuit/metadata.yaml @@ -0,0 +1,24 @@ +id: "quorum-sensing-circuit" +name: "quorum sensing circuit" +description: "BioNetGen model: quorum sensing circuit" +contributors: + - name: "Achyudhan" +tags: ["quorum", "sensing", "circuit", "autoinducer", "autoinducer_env", "gene", "protein"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/quorum-sensing-circuit.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/quorumsensingcircuit/quorum-sensing-circuit.bngl b/Contributed/BNGPlayground_Examples/biology/quorumsensingcircuit/quorum-sensing-circuit.bngl new file mode 100644 index 00000000..a2edc7ed --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/quorumsensingcircuit/quorum-sensing-circuit.bngl @@ -0,0 +1,46 @@ +begin model +begin parameters + k_synth 0.5 + k_export 0.4 + k_import 0.3 + k_activate 0.2 + k_deg 0.05 +end parameters + +begin molecule types + Autoinducer() + Autoinducer_env() + Gene(state~off~on) + Protein() +end molecule types + +begin seed species + Gene(state~off) 1 + Protein() 100 + Autoinducer_env() 1000 +end seed species + +begin observables + Molecules Autoinducer_pool Autoinducer() + Molecules Gene_on Gene(state~on) + Molecules Protein Protein() + Molecules Autoinducer_env_pool Autoinducer_env() +end observables + +begin reaction rules + Autoinducer_env() -> Autoinducer() k_synth + Autoinducer() -> Autoinducer_env() k_deg + Autoinducer() + Gene(state~off) -> Gene(state~on) + Autoinducer() k_activate + Gene(state~on) -> Gene(state~on) + Protein() k_export + Protein() -> 0 k_import + # FIX: Add Autoinducer dynamics (was conserved) + Protein() -> Protein() + Autoinducer() 0.1 # Protein produces AI + Autoinducer() -> 0 0.05 # AI degradation + Autoinducer_env() -> 0 0.02 # Environmental AI clearance +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>40,n_steps=>240}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/rabgtpasecycle/README.md b/Contributed/BNGPlayground_Examples/biology/rabgtpasecycle/README.md new file mode 100644 index 00000000..407fd0f4 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/rabgtpasecycle/README.md @@ -0,0 +1,22 @@ +# rab gtpase cycle + +BioNetGen model: rab gtpase cycle + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- rab-gtpase-cycle.bngl + +## Tags + +rab, gtpase, cycle, gef, gap, effector diff --git a/Contributed/BNGPlayground_Examples/biology/rabgtpasecycle/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/rabgtpasecycle/metadata.yaml new file mode 100644 index 00000000..43d32a6f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/rabgtpasecycle/metadata.yaml @@ -0,0 +1,24 @@ +id: "rab-gtpase-cycle" +name: "rab gtpase cycle" +description: "BioNetGen model: rab gtpase cycle" +contributors: + - name: "Achyudhan" +tags: ["rab", "gtpase", "cycle", "gef", "gap", "effector"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/rab-gtpase-cycle.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/rabgtpasecycle/rab-gtpase-cycle.bngl b/Contributed/BNGPlayground_Examples/biology/rabgtpasecycle/rab-gtpase-cycle.bngl new file mode 100644 index 00000000..db93480c --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/rabgtpasecycle/rab-gtpase-cycle.bngl @@ -0,0 +1,46 @@ +begin model +begin parameters + k_gef 0.35 + k_gap 0.3 + k_effector 0.28 + k_reset 0.09 +end parameters + +begin molecule types + RAB(nucleotide~GDP~GTP) + GEF(state~inactive~active) + GAP(state~inactive~active) + Effector(state~off~on) +end molecule types + +begin seed species + RAB(nucleotide~GDP) 70 + GEF(state~inactive) 30 + GAP(state~inactive) 30 + Effector(state~off) 60 +end seed species + +begin reaction rules + GEF(state~inactive) -> GEF(state~active) k_gef + GEF(state~active) + RAB(nucleotide~GDP) -> GEF(state~active) + RAB(nucleotide~GTP) k_gef + RAB(nucleotide~GTP) + Effector(state~off) -> RAB(nucleotide~GTP) + Effector(state~on) k_effector + GAP(state~inactive) -> GAP(state~active) k_gap + GAP(state~active) + RAB(nucleotide~GTP) -> GAP(state~active) + RAB(nucleotide~GDP) k_gap + Effector(state~on) -> Effector(state~off) k_reset + GEF(state~active) -> GEF(state~inactive) k_reset + GAP(state~active) -> GAP(state~inactive) k_reset +end reaction rules + +begin observables + Molecules RAB_GTP RAB(nucleotide~GTP) + Molecules Active_GEF GEF(state~active) + Molecules Active_GAP GAP(state~active) + Molecules Effector_On Effector(state~on) +end observables + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>0,t_end=>30,n_steps=>160}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/ranklranksignaling/README.md b/Contributed/BNGPlayground_Examples/biology/ranklranksignaling/README.md new file mode 100644 index 00000000..04a9c7f9 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/ranklranksignaling/README.md @@ -0,0 +1,22 @@ +# rankl rank signaling + +RANKL-RANK-OPG signaling in bone remodeling. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- rankl-rank-signaling.bngl + +## Tags + +rankl, rank, signaling, opg, nfat, traf6 diff --git a/Contributed/BNGPlayground_Examples/biology/ranklranksignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/ranklranksignaling/metadata.yaml new file mode 100644 index 00000000..8af49006 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/ranklranksignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "rankl-rank-signaling" +name: "rankl rank signaling" +description: "RANKL-RANK-OPG signaling in bone remodeling." +contributors: + - name: "Achyudhan" +tags: ["rankl", "rank", "signaling", "opg", "nfat", "traf6"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/rankl-rank-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/ranklranksignaling/rankl-rank-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/ranklranksignaling/rankl-rank-signaling.bngl new file mode 100644 index 00000000..dfb76216 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/ranklranksignaling/rankl-rank-signaling.bngl @@ -0,0 +1,81 @@ +begin model +begin parameters + # RANKL-RANK-OPG signaling in bone remodeling. + # Advanced features: Hill kinetics and decoy receptor logic. + + # Ligand-Receptor Interactions + k_bind_rank 1e-4 # RANKL binding to RANK + k_bind_opg 5e-4 # RANKL binding to OPG (Decoy,often higher affinity) + + # Intracellular Relay + k_traf6_rec 1.0 # TRAF6 recruitment to active RANK + k_nfat_act_max 2.0 # Max NFAT activation + Km_nfat 300 # Half-saturation for NFAT activation + n_hill 3.0 # Cooperativity in transcription factor activation + + # Initials + RANKL_tot 100 + RANK_tot 200 + OPG_tot 150 # Regulatory decoy + NFAT_tot 500 + TRAF6_tot 300 +end parameters + +begin molecule types + RANKL(r) + RANK(l,s~U~P,t) + OPG(l) + NFAT(s~U~P) + TRAF6(b) +end molecule types + +begin seed species + RANKL(r) RANKL_tot + RANK(l,s~U,t) RANK_tot + OPG(l) OPG_tot + NFAT(s~P) NFAT_tot + TRAF6(b) TRAF6_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Active_NFAT NFAT(s~U) # Osteoclast differentiation drive + Molecules Rank_Occupancy RANK(l!+) # Receptor engage metrics + Molecules OPG_Sequestration OPG(l!+) # Decoy effectiveness + Molecules TRAF6_Complexes RANK(t!1).TRAF6(b!1) # Signaling scafold + Molecules Total_RANKL RANKL() # Mass balance +end observables + +begin functions + # Hill-like activation for NFAT (Representing complex nuclear translocation/dephosphorylation) + v_nfat() = k_nfat_act_max * (TRAF6_Complexes^n_hill) / (Km_nfat^n_hill + TRAF6_Complexes^n_hill) +end functions + +begin reaction rules + ## EXTRACELLULAR GATING + # RANKL binds RANK + RANKL(r) + RANK(l) <-> RANKL(r!1).RANK(l!1) k_bind_rank,0.1 + + # RANKL binds OPG (Decoy/Neutralization) + RANKL(r) + OPG(l) <-> RANKL(r!1).OPG(l!1) k_bind_opg,0.05 + + ## RECEPTOR SIGNALING + # Ligand-bound RANK recruits TRAF6 + RANK(l!+,t) + TRAF6(b) <-> RANK(l!+,t!1).TRAF6(b!1) k_traf6_rec,0.2 + + ## TRANSCRIPTIONAL DRIVE + # TRAF6 complex induces NFAT activation (Functional Rate) + # Wildcard: Any RANK-TRAF6 complex works (!+) + NFAT(s~P) -> NFAT(s~U) v_nfat() + + ## RECOVERY + NFAT(s~U) -> NFAT(s~P) 0.1 + RANK(l!1).RANKL(r!1) -> RANK(l) + RANKL(r) 0.05 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>150,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/rasgefgapcycle/README.md b/Contributed/BNGPlayground_Examples/biology/rasgefgapcycle/README.md new file mode 100644 index 00000000..3777ece5 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/rasgefgapcycle/README.md @@ -0,0 +1,22 @@ +# ras gef gap cycle + +Ras-GEF-GAP cycle with explicit nucleotide exchange. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- ras-gef-gap-cycle.bngl + +## Tags + +ras, gef, gap, cycle, sos, rasgap, v_gef, v_gap diff --git a/Contributed/BNGPlayground_Examples/biology/rasgefgapcycle/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/rasgefgapcycle/metadata.yaml new file mode 100644 index 00000000..58824e0f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/rasgefgapcycle/metadata.yaml @@ -0,0 +1,24 @@ +id: "ras-gef-gap-cycle" +name: "ras gef gap cycle" +description: "Ras-GEF-GAP cycle with explicit nucleotide exchange." +contributors: + - name: "Achyudhan" +tags: ["ras", "gef", "gap", "cycle", "sos", "rasgap", "v_gef", "v_gap"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/ras-gef-gap-cycle.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/rasgefgapcycle/ras-gef-gap-cycle.bngl b/Contributed/BNGPlayground_Examples/biology/rasgefgapcycle/ras-gef-gap-cycle.bngl new file mode 100644 index 00000000..96908c07 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/rasgefgapcycle/ras-gef-gap-cycle.bngl @@ -0,0 +1,79 @@ +begin model +begin parameters + # Ras-GEF-GAP cycle with explicit nucleotide exchange. + # Advanced features: SAT kinetics and tagging (%1) for state tracking. + + # Nucleotide Dynamics + GTP_conc 1000 + GDP_conc 1000 + + # GEF-mediated Exchange (Active Drive) + k_gef_bind 1.0 # SOS binding to Ras + k_gef_exch 5.0 # Exchange rate (GDP -> GTP) + Km_gef 100 # Half-saturation for SOS activity + + # GAP-mediated Hydrolysis (Reset) + k_gap_bind 2.0 # RasGAP binding to active Ras + k_gap_hydro 10.0 # GTP hydrolysis rate + Km_gap 200 # Half-saturation for RasGAP activity + + # Initials + Ras_tot 1000 + SOS_tot 20 + RasGAP_tot 50 +end parameters + +begin molecule types + Ras(nuc~GDP~GTP,b) + SOS(b) + RasGAP(b) +end molecule types + +begin seed species + Ras(nuc~GDP,b) Ras_tot + SOS(b) SOS_tot + RasGAP(b) RasGAP_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Active_Ras Ras(nuc~GTP) # Signal-competent Ras + Molecules GEF_Complexes Ras(b!1).SOS(b!1) # Structural intermediate + Molecules GAP_Complexes Ras(b!1).RasGAP(b!1) # Clearance intermediate + Molecules Total_GTP_Ras Ras(nuc~GTP) # Flux metric + Molecules Exchange_Rate Ras(nuc~GTP) # Dynamic proxy +end observables + +begin functions + # Saturable GEF activity (Simplifying the full enzyme cycle) + v_gef() = k_gef_exch * SOS_tot * GDP_conc / (Km_gef + GDP_conc) + + # Saturable GAP activity + v_gap() = k_gap_hydro * RasGAP_tot * GTP_conc / (Km_gap + GTP_conc) +end functions + +begin reaction rules + ## ACTIVATION (GEF Phase) + # SOS binds Ras-GDP + SOS(b) + Ras(nuc~GDP,b) <-> SOS(b!1).Ras(nuc~GDP,b!1) k_gef_bind,0.5 + + # Exchange GDP for GTP (Tagging %1 to track specific molecule through transition) + SOS(b!1).Ras(nuc~GDP,b!1)%1 -> SOS(b) + Ras(nuc~GTP,b)%1 k_gef_exch + + ## INACTIVATION (GAP Phase) + # RasGAP binds active Ras + RasGAP(b) + Ras(nuc~GTP,b) <-> RasGAP(b!1).Ras(nuc~GTP,b!1) k_gap_bind,0.5 + + # Hydrolysis of GTP to GDP (Tagging %1) + RasGAP(b!1).Ras(nuc~GTP,b!1)%1 -> RasGAP(b) + Ras(nuc~GDP,b)%1 k_gap_hydro + + ## INTRINSIC RESET (Very slow) + Ras(nuc~GTP) -> Ras(nuc~GDP) 0.001 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>100,n_steps=>200}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/repressilatoroscillator/README.md b/Contributed/BNGPlayground_Examples/biology/repressilatoroscillator/README.md new file mode 100644 index 00000000..9eedcf5a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/repressilatoroscillator/README.md @@ -0,0 +1,22 @@ +# repressilator oscillator + +BioNetGen model: repressilator oscillator + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- repressilator-oscillator.bngl + +## Tags + +repressilator, oscillator, genea, geneb, genec, mrna_a, mrna_b, mrna_c, proteina, proteinb diff --git a/Contributed/BNGPlayground_Examples/biology/repressilatoroscillator/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/repressilatoroscillator/metadata.yaml new file mode 100644 index 00000000..20753fbe --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/repressilatoroscillator/metadata.yaml @@ -0,0 +1,24 @@ +id: "repressilator-oscillator" +name: "repressilator oscillator" +description: "BioNetGen model: repressilator oscillator" +contributors: + - name: "Achyudhan" +tags: ["repressilator", "oscillator", "genea", "geneb", "genec", "mrna_a", "mrna_b", "mrna_c", "proteina", "proteinb"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/repressilator-oscillator.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/repressilatoroscillator/repressilator-oscillator.bngl b/Contributed/BNGPlayground_Examples/biology/repressilatoroscillator/repressilator-oscillator.bngl new file mode 100644 index 00000000..8d8a25bf --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/repressilatoroscillator/repressilator-oscillator.bngl @@ -0,0 +1,61 @@ +begin model +begin parameters + k_transcribe 1.0 + k_translate 5.0 + k_repress 0.003 + k_release 0.001 + k_deg_m 0.2 + k_deg_p 0.1 +end parameters + +begin molecule types + GeneA(state~free~bound) + GeneB(state~free~bound) + GeneC(state~free~bound) + mRNA_A() + mRNA_B() + mRNA_C() + ProteinA() + ProteinB() + ProteinC() +end molecule types + +begin seed species + GeneA(state~free) 1 + GeneB(state~free) 1 + GeneC(state~free) 1 +end seed species + +begin observables + Molecules Protein_A ProteinA() + Molecules Protein_B ProteinB() + Molecules Protein_C ProteinC() + Molecules GeneA_bound GeneA(state~bound) +end observables + +begin reaction rules + GeneA(state~free) -> GeneA(state~free) + mRNA_A() k_transcribe + GeneB(state~free) -> GeneB(state~free) + mRNA_B() k_transcribe + GeneC(state~free) -> GeneC(state~free) + mRNA_C() k_transcribe + mRNA_A() -> mRNA_A() + ProteinA() k_translate + mRNA_B() -> mRNA_B() + ProteinB() k_translate + mRNA_C() -> mRNA_C() + ProteinC() k_translate + ProteinC() + GeneA(state~free) -> ProteinC() + GeneA(state~bound) k_repress + GeneA(state~bound) -> GeneA(state~free) k_release + ProteinA() + GeneB(state~free) -> ProteinA() + GeneB(state~bound) k_repress + GeneB(state~bound) -> GeneB(state~free) k_release + ProteinB() + GeneC(state~free) -> ProteinB() + GeneC(state~bound) k_repress + GeneC(state~bound) -> GeneC(state~free) k_release + mRNA_A() -> 0 k_deg_m + mRNA_B() -> 0 k_deg_m + mRNA_C() -> 0 k_deg_m + ProteinA() -> 0 k_deg_p + ProteinB() -> 0 k_deg_p + ProteinC() -> 0 k_deg_p +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>1000,n_steps=>400}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/retinoicacidsignaling/README.md b/Contributed/BNGPlayground_Examples/biology/retinoicacidsignaling/README.md new file mode 100644 index 00000000..b1e76b1b --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/retinoicacidsignaling/README.md @@ -0,0 +1,22 @@ +# retinoic acid signaling + +BioNetGen model: retinoic acid signaling + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- retinoic-acid-signaling.bngl + +## Tags + +retinoic, acid, signaling, ra, rarrxr, corepressor, targetgene diff --git a/Contributed/BNGPlayground_Examples/biology/retinoicacidsignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/retinoicacidsignaling/metadata.yaml new file mode 100644 index 00000000..2f6ebf5f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/retinoicacidsignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "retinoic-acid-signaling" +name: "retinoic acid signaling" +description: "BioNetGen model: retinoic acid signaling" +contributors: + - name: "Achyudhan" +tags: ["retinoic", "acid", "signaling", "ra", "rarrxr", "corepressor", "targetgene"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/retinoic-acid-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/retinoicacidsignaling/retinoic-acid-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/retinoicacidsignaling/retinoic-acid-signaling.bngl new file mode 100644 index 00000000..9dac7751 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/retinoicacidsignaling/retinoic-acid-signaling.bngl @@ -0,0 +1,45 @@ +begin model +begin parameters + k_bind 1.0 + k_unbind 0.001 + k_activation 10.0 + k_expression 1.0 + k_reset 0.06 +end parameters + +begin molecule types + RA(r) + RARRXR(l,state~repressed~active) + Corepressor(state~bound~released) + TargetGene(state~off~on) +end molecule types + +begin seed species + RA(r) 60 + RARRXR(l,state~repressed) 40 + Corepressor(state~bound) 30 + TargetGene(state~off) 50 +end seed species + +begin reaction rules + RA(r) + RARRXR(l,state~repressed) <-> RA(r!1).RARRXR(l!1,state~repressed) k_bind,k_unbind + RA(r!1).RARRXR(l!1,state~repressed) -> RA(r!1).RARRXR(l!1,state~active) k_activation + RARRXR(l!+,state~active) + Corepressor(state~bound) -> RARRXR(l!+,state~active) + Corepressor(state~released) k_activation + RARRXR(l!+,state~active) + TargetGene(state~off) -> RARRXR(l!+,state~active) + TargetGene(state~on) k_expression + Corepressor(state~released) -> Corepressor(state~bound) k_reset + TargetGene(state~on) -> TargetGene(state~off) k_reset + RARRXR(l,state~active) -> RARRXR(l,state~repressed) k_reset +end reaction rules + +begin observables + Molecules Active_RARRXR RARRXR(state~active) + Molecules Released_Corepressor Corepressor(state~released) + Molecules Gene_On TargetGene(state~on) +end observables + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>0,t_end=>50,n_steps=>200}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/rhogtpaseactincytoskeleton/README.md b/Contributed/BNGPlayground_Examples/biology/rhogtpaseactincytoskeleton/README.md new file mode 100644 index 00000000..755dddce --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/rhogtpaseactincytoskeleton/README.md @@ -0,0 +1,22 @@ +# rho gtpase actin cytoskeleton + +RhoA-GTPase regulation of the actin cytoskeleton. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- rho-gtpase-actin-cytoskeleton.bngl + +## Tags + +rho, gtpase, actin, cytoskeleton, rhoa, rock, limk, cofilin diff --git a/Contributed/BNGPlayground_Examples/biology/rhogtpaseactincytoskeleton/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/rhogtpaseactincytoskeleton/metadata.yaml new file mode 100644 index 00000000..f8a9b518 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/rhogtpaseactincytoskeleton/metadata.yaml @@ -0,0 +1,24 @@ +id: "rho-gtpase-actin-cytoskeleton" +name: "rho gtpase actin cytoskeleton" +description: "RhoA-GTPase regulation of the actin cytoskeleton." +contributors: + - name: "Achyudhan" +tags: ["rho", "gtpase", "actin", "cytoskeleton", "rhoa", "rock", "limk", "cofilin"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/rho-gtpase-actin-cytoskeleton.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/rhogtpaseactincytoskeleton/rho-gtpase-actin-cytoskeleton.bngl b/Contributed/BNGPlayground_Examples/biology/rhogtpaseactincytoskeleton/rho-gtpase-actin-cytoskeleton.bngl new file mode 100644 index 00000000..4df12846 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/rhogtpaseactincytoskeleton/rho-gtpase-actin-cytoskeleton.bngl @@ -0,0 +1,92 @@ +begin model +begin parameters + # RhoA-GTPase regulation of the actin cytoskeleton. + # Advanced features: TotalRate,translocation,and downstream kinase relay. + + # RhoA Cycle + k_gefs_act 0.8 # External drive (e.g. LPA) + k_rhoA_exch 2.0 # GDP/GTP exchange + k_rhoA_hydro 0.5 # GAP-mediated reset + + # Downstream Cascade (ROCK/LIMK) + k_rock_act 1.2 # ROCK activation by RhoA-GTP + k_limk_phos 1.0 # LIMK phosphorylation by ROCK + k_cof_inact 1.5 # Cofilin inactivation by LIMK (Protects F-actin) + + # Actin Dynamics + k_polym 5.0 # Basal polymerization + k_depolym 3.0 # Basal depolymerization + k_cof_depolym 10.0 # Accelerated depolymerization by active cofilin + + # Initials + RhoA_tot 500 + ROCK_tot 200 + LIMK_tot 200 + Cofilin_tot 800 + Actin_tot 2000 # Mostly G-actin monomer reservoir +end parameters + +begin molecule types + RhoA(s~GDP~GTP,loc~cyt~mem) + ROCK(s~inactive~active) + LIMK(s~U~P) + Cofilin(s~active~inactive) + Actin(s~G~F) +end molecule types + +begin seed species + RhoA(s~GDP,loc~cyt) RhoA_tot + ROCK(s~inactive) ROCK_tot + LIMK(s~U) LIMK_tot + Cofilin(s~active) Cofilin_tot + Actin(s~G) Actin_tot +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules F_Actin_Mass Actin(s~F) # Cytoskeletal structure reading + Molecules Active_RhoA RhoA(s~GTP) # Driver intensity + Molecules Phospho_LIMK LIMK(s~P) # Middle-layer signal + Molecules Stabilized_Cof Cofilin(s~inactive) # Regulation status + Molecules Membrane_RhoA RhoA(loc~mem) # Spatial localization +end observables + +begin reaction rules + ## UPSTREAM ACTIVATION + # External GEFs activate RhoA (TotalRate: drive-dependent) + RhoA(s~GDP,loc~cyt) -> RhoA(s~GTP,loc~mem) k_gefs_act TotalRate + + ## KINASE RELAY + # RhoA-GTP activates ROCK + RhoA(s~GTP,loc~mem) + ROCK(s~inactive) -> RhoA(s~GTP,loc~mem) + ROCK(s~active) k_rock_act + + # ROCK phosphorylates LIMK + ROCK(s~active) + LIMK(s~U) -> ROCK(s~active) + LIMK(s~P) k_limk_phos + + # LIMK phosphorylates/inactivates Cofilin + LIMK(s~P) + Cofilin(s~active) -> LIMK(s~P) + Cofilin(s~inactive) k_cof_inact + + ## CYTOSKELETAL DYNAMICS + # Polymerization (G-actin -> F-actin) + # Wildcard: Enabled if RhoA is active (!?) + Actin(s~G) -> Actin(s~F) k_polym + + # Depolymerization (Regulated by active cofilin) + Cofilin(s~active) + Actin(s~F) -> Cofilin(s~active) + Actin(s~G) k_cof_depolym + + # Basal depolymerization + Actin(s~F) -> Actin(s~G) k_depolym + + ## RESET + RhoA(s~GTP,loc~mem) -> RhoA(s~GDP,loc~cyt) k_rhoA_hydro + ROCK(s~active) -> ROCK(s~inactive) 0.1 + LIMK(s~P) -> LIMK(s~U) 0.1 + Cofilin(s~inactive) -> Cofilin(s~active) 0.2 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>8,n_steps=>300}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/shp2phosphataseregulation/README.md b/Contributed/BNGPlayground_Examples/biology/shp2phosphataseregulation/README.md new file mode 100644 index 00000000..fdfed7ca --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/shp2phosphataseregulation/README.md @@ -0,0 +1,22 @@ +# shp2 phosphatase regulation + +SHP2 phosphatase regulation via autoinhibition and SH2 binding. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- shp2-phosphatase-regulation.bngl + +## Tags + +shp2, phosphatase, regulation, rtk, substrate, v_dephos diff --git a/Contributed/BNGPlayground_Examples/biology/shp2phosphataseregulation/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/shp2phosphataseregulation/metadata.yaml new file mode 100644 index 00000000..d30cddb1 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/shp2phosphataseregulation/metadata.yaml @@ -0,0 +1,24 @@ +id: "shp2-phosphatase-regulation" +name: "shp2 phosphatase regulation" +description: "SHP2 phosphatase regulation via autoinhibition and SH2 binding." +contributors: + - name: "Achyudhan" +tags: ["shp2", "phosphatase", "regulation", "rtk", "substrate", "v_dephos"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/shp2-phosphatase-regulation.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/shp2phosphataseregulation/shp2-phosphatase-regulation.bngl b/Contributed/BNGPlayground_Examples/biology/shp2phosphataseregulation/shp2-phosphatase-regulation.bngl new file mode 100644 index 00000000..5f9e682b --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/shp2phosphataseregulation/shp2-phosphatase-regulation.bngl @@ -0,0 +1,74 @@ +begin model +begin parameters + # SHP2 phosphatase regulation via autoinhibition and SH2 binding. + # Advanced features: MM kinetics and exclude_reactants. + + # Receptor-Phosphatase Interaction + k_bind_rtk 1.0 # SHP2 binds p-RTK + k_unbind 0.1 + + # Activation (Relief of autoinhibition) + k_shp2_act 1.2 # Rate of opening when bound + k_shp2_reset 0.2 # Re-closing + + # Enzymatic Activity + v_max_shp2 5.0 # Catalytic capacity + Km_substrate 400 # Half-saturation for substrate dephosphorylation + + # Initials + RTK_P_tot 200 + SHP2_tot 400 + Substrate_P_init 1000 +end parameters + +begin molecule types + RTK(s~P,b) + SHP2(sh2,s~closed~open) + Substrate(s~U~P) +end molecule types + +begin seed species + RTK(s~P,b) RTK_P_tot + SHP2(sh2,s~closed) SHP2_tot + Substrate(s~P) Substrate_P_init +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Active_Enzyme SHP2(s~open) # Functional phosphatase pool + Molecules Recruited_SHP2 SHP2(sh2!+) # Membrane localization status + Molecules Substrate_State Substrate(s~U) # Signaling output + Molecules Bound_RTK RTK(b!+) # Sink metrics + Molecules Total_Inactive SHP2(s~closed) # Reservoir status + Molecules Active_Substrate Substrate(s~P) # Dephosphorylation target +end observables + +begin functions + # Michaelis-Menten rate for dephosphorylation + v_dephos() = (v_max_shp2 * Active_Enzyme) / (Km_substrate + Active_Substrate) +end functions + +begin reaction rules + ## RECRUITMENT + # SHP2 binds p-RTK via SH2 domain + RTK(s~P,b) + SHP2(sh2) <-> RTK(s~P,b!1).SHP2(sh2!1) k_bind_rtk,k_unbind + + ## ACTIVATION (Gating) + # Binding to RTK relieves autoinhibition + SHP2(sh2!+,s~closed) -> SHP2(sh2!+,s~open) k_shp2_act + + ## ENZYMATIC ACTION + # Active SHP2 dephosphorylates substrate + # exclude_reactants: SHP2 cannot dephosphorylate if it's already complexed with its recruiter in a way that blocks active site (Simplified) + Substrate(s~P) -> Substrate(s~U) v_dephos() + + ## RECOVERY + SHP2(s~open) -> SHP2(s~closed) k_shp2_reset +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>50,n_steps=>200}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/signalamplificationcascade/README.md b/Contributed/BNGPlayground_Examples/biology/signalamplificationcascade/README.md new file mode 100644 index 00000000..bb6a8955 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/signalamplificationcascade/README.md @@ -0,0 +1,22 @@ +# signal amplification cascade + +BioNetGen model: signal amplification cascade + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- signal-amplification-cascade.bngl + +## Tags + +signal, amplification, cascade, ligand, receptor, effector, messenger diff --git a/Contributed/BNGPlayground_Examples/biology/signalamplificationcascade/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/signalamplificationcascade/metadata.yaml new file mode 100644 index 00000000..156c02e7 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/signalamplificationcascade/metadata.yaml @@ -0,0 +1,24 @@ +id: "signal-amplification-cascade" +name: "signal amplification cascade" +description: "BioNetGen model: signal amplification cascade" +contributors: + - name: "Achyudhan" +tags: ["signal", "amplification", "cascade", "ligand", "receptor", "effector", "messenger"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/signal-amplification-cascade.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/signalamplificationcascade/signal-amplification-cascade.bngl b/Contributed/BNGPlayground_Examples/biology/signalamplificationcascade/signal-amplification-cascade.bngl new file mode 100644 index 00000000..18cb3a97 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/signalamplificationcascade/signal-amplification-cascade.bngl @@ -0,0 +1,43 @@ +begin model +begin parameters + k_bind 0.01 + k_unbind 0.002 + k_act 0.5 + k_deact 0.1 + k_prod 5.0 + k_deg 0.5 +end parameters + +begin molecule types + Ligand() + Receptor(state~inactive~active) + Effector(state~inactive~active) + Messenger() +end molecule types + +begin seed species + Ligand() 100 + Receptor(state~inactive) 50 + Effector(state~inactive) 30 +end seed species + +begin observables + Molecules Active_receptor Receptor(state~active) + Molecules Active_effector Effector(state~active) + Molecules Messenger Messenger() +end observables + +begin reaction rules + Ligand() + Receptor(state~inactive) <-> Ligand() + Receptor(state~active) k_bind,k_unbind + Receptor(state~active) + Effector(state~inactive) -> Receptor(state~active) + Effector(state~active) k_act + Effector(state~active) -> Effector(state~inactive) k_deact + Effector(state~active) -> Effector(state~active) + Messenger() k_prod + Messenger() -> 0 k_deg +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>20,n_steps=>240}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/simpledimerization/README.md b/Contributed/BNGPlayground_Examples/biology/simpledimerization/README.md new file mode 100644 index 00000000..9e42d706 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/simpledimerization/README.md @@ -0,0 +1,22 @@ +# simple dimerization + +BioNetGen model: simple dimerization + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- simple-dimerization.bngl + +## Tags + +simple, dimerization, a, b, generate_network, simulate diff --git a/Contributed/BNGPlayground_Examples/biology/simpledimerization/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/simpledimerization/metadata.yaml new file mode 100644 index 00000000..afec2375 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/simpledimerization/metadata.yaml @@ -0,0 +1,24 @@ +id: "simple-dimerization" +name: "simple dimerization" +description: "BioNetGen model: simple dimerization" +contributors: + - name: "Achyudhan" +tags: ["simple", "dimerization", "a", "b", "generate_network", "simulate"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/simple-dimerization.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/simpledimerization/simple-dimerization.bngl b/Contributed/BNGPlayground_Examples/biology/simpledimerization/simple-dimerization.bngl new file mode 100644 index 00000000..d1330b6e --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/simpledimerization/simple-dimerization.bngl @@ -0,0 +1,32 @@ +begin model +begin parameters + p1 0.1 + p2 0.2 +end parameters + +begin molecule types + A(b) + B(a) +end molecule types + +begin seed species + A(b) 100 + B(a) 100 +end seed species + +begin observables + Molecules A_free A(b) + Molecules B_free B(a) + Molecules AB A(b!1).B(a!1) +end observables + +begin reaction rules + A(b) + B(a) -> A(b!1).B(a!1) p1 + A(b!1).B(a!1) -> A(b) + B(a) p2 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>50,n_steps=>200}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/sirepidemicmodel/README.md b/Contributed/BNGPlayground_Examples/biology/sirepidemicmodel/README.md new file mode 100644 index 00000000..32cd05a1 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/sirepidemicmodel/README.md @@ -0,0 +1,22 @@ +# sir epidemic model + +BioNetGen model: sir epidemic model + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- sir-epidemic-model.bngl + +## Tags + +sir, epidemic, model, human, generate_network, simulate diff --git a/Contributed/BNGPlayground_Examples/biology/sirepidemicmodel/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/sirepidemicmodel/metadata.yaml new file mode 100644 index 00000000..c39dddcf --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/sirepidemicmodel/metadata.yaml @@ -0,0 +1,24 @@ +id: "sir-epidemic-model" +name: "sir epidemic model" +description: "BioNetGen model: sir epidemic model" +contributors: + - name: "Achyudhan" +tags: ["sir", "epidemic", "model", "human", "generate_network", "simulate"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/sir-epidemic-model.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/sirepidemicmodel/sir-epidemic-model.bngl b/Contributed/BNGPlayground_Examples/biology/sirepidemicmodel/sir-epidemic-model.bngl new file mode 100644 index 00000000..d2f95cff --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/sirepidemicmodel/sir-epidemic-model.bngl @@ -0,0 +1,33 @@ +begin model +begin parameters + beta 0.0005 + gamma 0.1 + delta 0.01 +end parameters + +begin molecule types + Human(state~S~I~R) +end molecule types + +begin seed species + Human(state~S) 990 + Human(state~I) 10 +end seed species + +begin observables + Molecules Susceptible Human(state~S) + Molecules Infected Human(state~I) + Molecules Recovered Human(state~R) +end observables + +begin reaction rules + Human(state~S) + Human(state~I) -> Human(state~I) + Human(state~I) beta + Human(state~I) -> Human(state~R) gamma + Human(state~R) -> Human(state~S) delta +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>2000,n_steps=>300}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/smadtgfbetasignaling/README.md b/Contributed/BNGPlayground_Examples/biology/smadtgfbetasignaling/README.md new file mode 100644 index 00000000..febb19ff --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/smadtgfbetasignaling/README.md @@ -0,0 +1,22 @@ +# smad tgf beta signaling + +BioNetGen model: smad tgf beta signaling + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- smad-tgf-beta-signaling.bngl + +## Tags + +smad, tgf, beta, signaling, tgfb, tgfbr, smad2, smad4 diff --git a/Contributed/BNGPlayground_Examples/biology/smadtgfbetasignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/smadtgfbetasignaling/metadata.yaml new file mode 100644 index 00000000..bd30c97d --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/smadtgfbetasignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "smad-tgf-beta-signaling" +name: "smad tgf beta signaling" +description: "BioNetGen model: smad tgf beta signaling" +contributors: + - name: "Achyudhan" +tags: ["smad", "tgf", "beta", "signaling", "tgfb", "tgfbr", "smad2", "smad4"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/smad-tgf-beta-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/smadtgfbetasignaling/smad-tgf-beta-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/smadtgfbetasignaling/smad-tgf-beta-signaling.bngl new file mode 100644 index 00000000..e61858b2 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/smadtgfbetasignaling/smad-tgf-beta-signaling.bngl @@ -0,0 +1,45 @@ +begin model +begin parameters + k_bind 0.016 + k_unbind 0.0016 + k_receptor 0.38 + k_smad 0.32 + k_complex 0.28 + k_reset 0.07 +end parameters + +begin molecule types + TGFB(r) + TGFBR(l,state~inactive~active) + SMAD2(phos~U~P,b) + SMAD4(state~free~complexed,b) +end molecule types + +begin seed species + TGFB(r) 55 + TGFBR(l,state~inactive) 40 + SMAD2(phos~U,b) 100 + SMAD4(state~free,b) 50 +end seed species + +begin reaction rules + TGFB(r) + TGFBR(l,state~inactive) <-> TGFB(r!1).TGFBR(l!1,state~inactive) k_bind,k_unbind + TGFB(r!1).TGFBR(l!1,state~inactive) -> TGFB(r!1).TGFBR(l!1,state~active) k_receptor + TGFBR(l!+,state~active) + SMAD2(phos~U,b) -> TGFBR(l!+,state~active) + SMAD2(phos~P,b) k_smad + SMAD2(phos~P,b) + SMAD4(state~free,b) -> SMAD2(phos~P,b!1).SMAD4(state~complexed,b!1) k_complex + SMAD2(phos~P,b!1).SMAD4(state~complexed,b!1) -> SMAD2(phos~U,b) + SMAD4(state~free,b) k_reset + TGFBR(l,state~active) -> TGFBR(l,state~inactive) k_reset +end reaction rules + +begin observables + Molecules Active_TGFBR TGFBR(state~active) + Molecules Phospho_SMAD2 SMAD2(phos~P) + Molecules SMAD_Complex SMAD4(b!+) +end observables + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>0,t_end=>40,n_steps=>180}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/sonichedgehoggradient/README.md b/Contributed/BNGPlayground_Examples/biology/sonichedgehoggradient/README.md new file mode 100644 index 00000000..c74f14a3 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/sonichedgehoggradient/README.md @@ -0,0 +1,22 @@ +# sonic hedgehog gradient + +Sonic Hedgehog (Shh) morphogen gradient formation. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- sonic-hedgehog-gradient.bngl + +## Tags + +sonic, hedgehog, gradient, shh, ptc1, v_prod diff --git a/Contributed/BNGPlayground_Examples/biology/sonichedgehoggradient/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/sonichedgehoggradient/metadata.yaml new file mode 100644 index 00000000..f41a5d11 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/sonichedgehoggradient/metadata.yaml @@ -0,0 +1,24 @@ +id: "sonic-hedgehog-gradient" +name: "sonic hedgehog gradient" +description: "Sonic Hedgehog (Shh) morphogen gradient formation." +contributors: + - name: "Achyudhan" +tags: ["sonic", "hedgehog", "gradient", "shh", "ptc1", "v_prod"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/sonic-hedgehog-gradient.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/sonichedgehoggradient/sonic-hedgehog-gradient.bngl b/Contributed/BNGPlayground_Examples/biology/sonichedgehoggradient/sonic-hedgehog-gradient.bngl new file mode 100644 index 00000000..64e2cce2 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/sonichedgehoggradient/sonic-hedgehog-gradient.bngl @@ -0,0 +1,79 @@ +begin model +begin parameters + # Sonic Hedgehog (Shh) morphogen gradient formation. + # Advanced features: Conditional functions and specific bond tracking. + + # Diffusion & Transport + k_prod 20.0 # Source production rate + k_diff 0.5 # Effective diffusion rate to target + + # Receptor-Mediated Clearance (Patched1) + k_bind_ptc 1e-3 # Shh binding to Ptc1 + k_endo 0.2 # Endocytosis/Degradation of ligand + + # Decay + k_deg_free 0.05 # Basal extracellular decay + + # Thresholds + Shh_high 500 + Shh_low 100 + k_prod_current 20.0 # Current production rate +end parameters + +begin molecule types + Shh(loc~source~target,b) + Ptc1(b) +end molecule types + +begin seed species + Shh(loc~source,b) 100 + Shh(loc~target,b) 0 + Ptc1(b) 500 # Receptors in target field +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Morphogen_Peak Shh(loc~source) # Peak concentration + Molecules Morphogen_Drive Shh(loc~target) # Available distal signal + Molecules Bound_Shh Shh(b!+) # Sequestration status + Molecules Ptc1_Occupancy Ptc1(b!+) # Receptor engage metrics + Molecules Total_Endo_Signal Shh(b!1).Ptc1(b!1) # Flux reading +end observables + +begin functions + v_prod() = k_prod_current +end functions + +begin reaction rules + ## PRODUCTION + # Pulsatile Shh source + 0 -> Shh(loc~source,b) v_prod() + + ## TRANSPORT + # Spreading from source to target + Shh(loc~source,b) -> Shh(loc~target,b) k_diff + + ## RECEPTION & CLEARANCE + # Shh binds Ptc1 in the target field + Shh(loc~target,b) + Ptc1(b) <-> Shh(loc~target,b!1).Ptc1(b!1) k_bind_ptc,0.05 + + # Receptor-mediated endocytosis (Clears the gradient) + Shh(b!1).Ptc1(b!1) -> Ptc1(b) k_endo + + ## BASAL DECAY + Shh(b) -> 0 k_deg_free +end reaction rules + +begin actions + generate_network({overwrite=>1}) + # Approximate oscillation with 4 phases + simulate({method=>"ode",t_end=>50,n_steps=>100}) + setParameter("k_prod_current",2.0) + simulate({method=>"ode",t_end=>100,n_steps=>100,continue=>1}) + setParameter("k_prod_current",20.0) + simulate({method=>"ode",t_end=>150,n_steps=>100,continue=>1}) + setParameter("k_prod_current",2.0) + simulate({method=>"ode",t_end=>200,n_steps=>100,continue=>1}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/stat3mediatedtranscription/README.md b/Contributed/BNGPlayground_Examples/biology/stat3mediatedtranscription/README.md new file mode 100644 index 00000000..1be7b6ee --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/stat3mediatedtranscription/README.md @@ -0,0 +1,22 @@ +# stat3 mediated transcription + +STAT3-mediated transcription and feedback. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- stat3-mediated-transcription.bngl + +## Tags + +stat3, mediated, transcription, dna, pias3, mrna diff --git a/Contributed/BNGPlayground_Examples/biology/stat3mediatedtranscription/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/stat3mediatedtranscription/metadata.yaml new file mode 100644 index 00000000..12fb78d7 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/stat3mediatedtranscription/metadata.yaml @@ -0,0 +1,24 @@ +id: "stat3-mediated-transcription" +name: "stat3 mediated transcription" +description: "STAT3-mediated transcription and feedback." +contributors: + - name: "Achyudhan" +tags: ["stat3", "mediated", "transcription", "dna", "pias3", "mrna"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/stat3-mediated-transcription.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/stat3mediatedtranscription/stat3-mediated-transcription.bngl b/Contributed/BNGPlayground_Examples/biology/stat3mediatedtranscription/stat3-mediated-transcription.bngl new file mode 100644 index 00000000..568e9fbb --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/stat3mediatedtranscription/stat3-mediated-transcription.bngl @@ -0,0 +1,92 @@ +begin model +begin parameters + # STAT3-mediated transcription and feedback. + # Advanced features: Hill kinetics and PIAS3 negative feedback. + + # Activation + k_phos_max 1.5 # Max phosphorylation by JAK + Km_phos 200 # Half-saturation for phosphorylation + k_dimer 2.0 # pSTAT3 dimerization + + # Transport + k_import 0.8 # Nuclear import of dimers + k_export 0.2 # Nuclear export + + # Transcription + k_trans_max 5.0 # Peak mRNA production + Km_dna 10.0 # Half-saturation for DNA binding + n_hill 2.0 # Cooperativity + + # Feedback + k_pias_bind 1.2 # PIAS3 inhibits DNA binding + k_pias_synth 0.1 # STAT3 induces PIAS3 + + # Initials + STAT3_tot 1000 + DNA_sites 5 # Specific target promoters + PIAS3_init 10 + mRNA_init 0 +end parameters + +begin molecule types + STAT3(s~U~P,loc~cyt~nuc,b,dna) + DNA(b) + PIAS3(b) + mRNA() +end molecule types + +begin seed species + STAT3(s~U,loc~cyt,b,dna) STAT3_tot + DNA(b) DNA_sites + PIAS3(b) PIAS3_init + mRNA() mRNA_init +end seed species + +begin observables + Molecules Active_Dimer STAT3(b!+,loc~nuc) # Nuclear signaling pool + Molecules Total_pSTAT3 STAT3(s~P) # Aggregate signal + Molecules DNA_Engagement DNA(b!+) # Transcription driver + Molecules mRNA_Level mRNA() # Gene expression + Molecules PIAS3_Feedback PIAS3() # Negative feedback intensity +end observables + +begin reaction rules + ## ACTIVATION PHASE + # Cytosolic STAT3 phosphorylation (Saturable) + STAT3(s~U,loc~cyt) -> STAT3(s~P,loc~cyt) k_phos_max * (100 / (Km_phos + 100)) # Stimulus proxy + + # Phospho-STAT3 dimerization + STAT3(s~P,loc~cyt,b) + STAT3(s~P,loc~cyt,b) <-> STAT3(s~P,loc~cyt,b!1).STAT3(s~P,loc~cyt,b!1) k_dimer,0.1 + + ## TRANSPORT + # Dimers translocate to nucleus (Wildcard: any dimerized state !+) + STAT3(s~P,loc~cyt,b!+) -> STAT3(s~P,loc~nuc,b!+) k_import + + # Export back to cytosol + STAT3(loc~nuc) -> STAT3(loc~cyt) k_export + + ## TRANSCRIPTION & FEEDBACK + # Nuclear dimers bind DNA (using separate dna domain, allowing dimer to bind) + STAT3(s~P,loc~nuc,dna) + DNA(b) <-> STAT3(s~P,loc~nuc,dna!1).DNA(b!1) k_pias_bind,0.05 + + # PIAS3 inhibits DNA binding by sequestering STAT3 + PIAS3(b) + STAT3(s~P,loc~nuc,b) <-> PIAS3(b!1).STAT3(s~P,loc~nuc,b!1) k_pias_bind,0.1 + + # DNA-bound STAT3 induces mRNA (Functional Rate) + DNA(b!+) -> DNA(b!+) + mRNA() k_trans_max + + # Active transcription induces PIAS3 (Slow feedback) + mRNA() -> mRNA() + PIAS3(b) k_pias_synth + + ## RESET + mRNA() -> 0 0.1 + STAT3(s~P) -> STAT3(s~U) 0.05 + PIAS3() -> 0 0.02 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>100,n_steps=>200}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/stressresponseadaptation/README.md b/Contributed/BNGPlayground_Examples/biology/stressresponseadaptation/README.md new file mode 100644 index 00000000..5f3243ce --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/stressresponseadaptation/README.md @@ -0,0 +1,22 @@ +# stress response adaptation + +BioNetGen model: stress response adaptation + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- stress-response-adaptation.bngl + +## Tags + +stress, response, adaptation, sensor, adapter, enzyme diff --git a/Contributed/BNGPlayground_Examples/biology/stressresponseadaptation/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/stressresponseadaptation/metadata.yaml new file mode 100644 index 00000000..a89e7f75 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/stressresponseadaptation/metadata.yaml @@ -0,0 +1,24 @@ +id: "stress-response-adaptation" +name: "stress response adaptation" +description: "BioNetGen model: stress response adaptation" +contributors: + - name: "Achyudhan" +tags: ["stress", "response", "adaptation", "sensor", "adapter", "enzyme"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/stress-response-adaptation.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/stressresponseadaptation/stress-response-adaptation.bngl b/Contributed/BNGPlayground_Examples/biology/stressresponseadaptation/stress-response-adaptation.bngl new file mode 100644 index 00000000..01db4380 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/stressresponseadaptation/stress-response-adaptation.bngl @@ -0,0 +1,37 @@ +begin model +begin parameters + k_sense 0.5 + k_adapt 0.1 + k_recover 0.05 + k_deg 0.02 +end parameters + +begin molecule types + Sensor(state~inactive~active) + Adapter() + Enzyme() +end molecule types + +begin seed species + Sensor(state~inactive) 50 +end seed species + +begin observables + Molecules Active_sensor Sensor(state~active) + Molecules Adapter Adapter() + Molecules Enzyme Enzyme() +end observables + +begin reaction rules + Sensor(state~inactive) -> Sensor(state~active) k_sense + Sensor(state~active) -> Sensor(state~inactive) k_recover + Sensor(state~active) -> Sensor(state~active) + Adapter() k_adapt + Adapter() -> Adapter() + Enzyme() k_adapt + Enzyme() -> 0 k_deg +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>120,n_steps=>240}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/synapticplasticityltp/README.md b/Contributed/BNGPlayground_Examples/biology/synapticplasticityltp/README.md new file mode 100644 index 00000000..8a4aa5b2 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/synapticplasticityltp/README.md @@ -0,0 +1,22 @@ +# synaptic plasticity ltp + +Initial Concentrations + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- synaptic-plasticity-ltp.bngl + +## Tags + +synaptic, plasticity, ltp, glutamate, nmda, calcium, camkii, ampar, glusource diff --git a/Contributed/BNGPlayground_Examples/biology/synapticplasticityltp/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/synapticplasticityltp/metadata.yaml new file mode 100644 index 00000000..3f1bb7a4 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/synapticplasticityltp/metadata.yaml @@ -0,0 +1,24 @@ +id: "synaptic-plasticity-ltp" +name: "synaptic plasticity ltp" +description: "Initial Concentrations" +contributors: + - name: "Achyudhan" +tags: ["synaptic", "plasticity", "ltp", "glutamate", "nmda", "calcium", "camkii", "ampar", "glusource"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/synaptic-plasticity-ltp.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/synapticplasticityltp/synaptic-plasticity-ltp.bngl b/Contributed/BNGPlayground_Examples/biology/synapticplasticityltp/synaptic-plasticity-ltp.bngl new file mode 100644 index 00000000..95606cd8 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/synapticplasticityltp/synaptic-plasticity-ltp.bngl @@ -0,0 +1,82 @@ +begin model +begin parameters + # Initial Concentrations + Glu_init 0 + NMDA_init 50 + CaMKII_init 80 + AMPAR_init 100 + Calcium_init 0 + + # Rate Constants + k_bind_glu 0.05 # Glutamate binding to NMDAR + k_unbind_glu 0.5 # Glutamate unbinding + k_open_nmda 2.0 # Channel opening + k_close_nmda 0.1 # Channel closing + + k_ca_influx 5.0 # Ca2+ entry through NMDAR + k_ca_pump 1.5 # Ca2+ extrusion/buffering + + k_camkii_act 0.8 # Ca2+-dependent activation + k_camkii_deact 0.2 # Deactivation (phosphatase) + + k_ampar_ins 0.6 # CaMKII-driven exocytosis + k_ampar_endo 0.05 # Basal endocytosis + + # Stimulation Protocol Parameters + Glu_input 100.0 # Controlled by stimulus rule +end parameters + +begin molecule types + Glutamate(r) + NMDA(l,channel~closed~open) + Calcium(b) + CaMKII(ca,state~inactive~active) + AMPAR(loc~intra~surf) # Intracellular vs Surface + GluSource() +end molecule types + +begin seed species + Glutamate(r) 0 + NMDA(l,channel~closed) 50 + Calcium(b) 10 + GluSource() 1000 + CaMKII(ca,state~inactive) CaMKII_init + AMPAR(loc~surf) 20 # Basal surface level + AMPAR(loc~intra) 80 # Reserve pool +end seed species + +begin observables + Molecules Open_NMDAR NMDA(channel~open) + Molecules Cytosolic_Ca Calcium() + Molecules Active_CaMKII CaMKII(state~active) + Molecules Surface_AMPAR AMPAR(loc~surf) # LTP readout +end observables + +begin reaction rules + # 1. Glutamate Release + GluSource() -> GluSource() + Glutamate(r) Glu_input + Glutamate(r) -> 0 10.0 # Rapid clearance + + Glutamate(r) + NMDA(l,channel~closed) <-> Glutamate(r!1).NMDA(l!1,channel~closed) k_bind_glu, k_unbind_glu + Glutamate(r!1).NMDA(l!1,channel~closed) -> Glutamate(r!1).NMDA(l!1,channel~open) k_open_nmda + Glutamate(r!1).NMDA(l!1,channel~open) -> Glutamate(r!1).NMDA(l!1,channel~closed) k_close_nmda + + # 2. Calcium Influx (Flux through open channels) + NMDA(channel~open) -> NMDA(channel~open) + Calcium(b) k_ca_influx + Calcium(b) -> 0 k_ca_pump + + # 3. CaMKII Activation + Calcium(b) + CaMKII(ca,state~inactive) <-> Calcium(b!1).CaMKII(ca!1,state~active) k_camkii_act, k_camkii_deact + + # 4. AMPAR Trafficking (LTP Expression) + CaMKII(state~active) + AMPAR(loc~intra) -> CaMKII(state~active) + AMPAR(loc~surf) k_ampar_ins + + # Constitutive recycling + AMPAR(loc~surf) -> AMPAR(loc~intra) k_ampar_endo +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>100,n_steps=>300}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/tcellactivation/README.md b/Contributed/BNGPlayground_Examples/biology/tcellactivation/README.md new file mode 100644 index 00000000..30945304 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/tcellactivation/README.md @@ -0,0 +1,22 @@ +# t cell activation + +BioNetGen model: t cell activation + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- t-cell-activation.bngl + +## Tags + +t, cell, activation, tcr, antigen, cytokine diff --git a/Contributed/BNGPlayground_Examples/biology/tcellactivation/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/tcellactivation/metadata.yaml new file mode 100644 index 00000000..33f03ba1 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/tcellactivation/metadata.yaml @@ -0,0 +1,24 @@ +id: "t-cell-activation" +name: "t cell activation" +description: "BioNetGen model: t cell activation" +contributors: + - name: "Achyudhan" +tags: ["t", "cell", "activation", "tcr", "antigen", "cytokine"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/t-cell-activation.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/tcellactivation/t-cell-activation.bngl b/Contributed/BNGPlayground_Examples/biology/tcellactivation/t-cell-activation.bngl new file mode 100644 index 00000000..b52fa0c7 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/tcellactivation/t-cell-activation.bngl @@ -0,0 +1,39 @@ +begin model +begin parameters + k_bind 0.004 + k_unbind 0.001 + k_signal 0.3 + k_deact 0.05 + k_cyt 0.6 + k_cyt_deg 0.1 +end parameters + +begin molecule types + TCR(state~inactive~active) + Antigen() + Cytokine() +end molecule types + +begin seed species + TCR(state~inactive) 100 + Antigen() 80 +end seed species + +begin observables + Molecules Active_tcr TCR(state~active) + Molecules Cytokine_pool Cytokine() +end observables + +begin reaction rules + TCR(state~inactive) + Antigen() <-> TCR(state~active) + Antigen() k_bind,k_unbind + TCR(state~active) -> TCR(state~inactive) k_deact + TCR(state~active) -> TCR(state~active) + Cytokine() k_cyt + Cytokine() -> 0 k_cyt_deg +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>100,n_steps=>240}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/tlr3dsrnasensing/README.md b/Contributed/BNGPlayground_Examples/biology/tlr3dsrnasensing/README.md new file mode 100644 index 00000000..13e8fee5 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/tlr3dsrnasensing/README.md @@ -0,0 +1,22 @@ +# tlr3 dsrna sensing + +TLR3-mediated dsRNA sensing and TRIF pathway activation. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- tlr3-dsrna-sensing.bngl + +## Tags + +tlr3, dsrna, sensing, trif, irf3, sarm diff --git a/Contributed/BNGPlayground_Examples/biology/tlr3dsrnasensing/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/tlr3dsrnasensing/metadata.yaml new file mode 100644 index 00000000..e5731f73 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/tlr3dsrnasensing/metadata.yaml @@ -0,0 +1,24 @@ +id: "tlr3-dsrna-sensing" +name: "tlr3 dsrna sensing" +description: "TLR3-mediated dsRNA sensing and TRIF pathway activation." +contributors: + - name: "Achyudhan" +tags: ["tlr3", "dsrna", "sensing", "trif", "irf3", "sarm"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/tlr3-dsrna-sensing.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/tlr3dsrnasensing/tlr3-dsrna-sensing.bngl b/Contributed/BNGPlayground_Examples/biology/tlr3dsrnasensing/tlr3-dsrna-sensing.bngl new file mode 100644 index 00000000..d6044edb --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/tlr3dsrnasensing/tlr3-dsrna-sensing.bngl @@ -0,0 +1,120 @@ +begin model +begin parameters + # TLR3-mediated dsRNA sensing and TRIF pathway activation. + # Advanced features: Compartments (Endosome/Cytosol/Nucleus) and complex formation. + + # Volumes + Vol_EC 100 + Vol_Cyt 50 + Vol_End 1 + Vol_Nuc 10 + + # Sensing & Dimerization + k_bind_rna 0.01 # dsRNA binding to TLR3 + k_dimer_max 1.5 # Max receptor dimerization + Km_dimer 200 # Half-saturation for dimerization + + # Signaling Relay + k_trif_rec 0.8 # TRIF recruitment to dimerized TLR3 + k_irf3_act 1.2 # IRF3 activation by TRIF + + # Transport + k_import 2.0 # IRF3 nuclear entry + k_export 0.5 # IRF3 nuclear exit + + # Negative Feedback + k_sarm_synth 0.1 # SARM induction (Negative regulator) + k_sarm_inh 2.0 # SARM prevents TRIF recruitment + + # Initials + dsRNA_tot 100 + TLR3_tot 500 + TRIF_tot 800 + IRF3_tot 400 + SARM_init 5 +end parameters + +begin compartments + EC 3 Vol_EC + PM 2 1 EC + Cyt 3 Vol_Cyt PM + End_M 2 1 Cyt + End 3 Vol_End End_M + Nuc_M 2 1 Cyt + Nuc 3 Vol_Nuc Nuc_M +end compartments + +begin molecule types + dsRNA(b) + TLR3(l,d,t) + TRIF(b,s~U~P) + IRF3(s~U~P) + SARM(b) +end molecule types + +begin seed species + dsRNA(b)@End_M dsRNA_tot + TLR3(l,d,t)@End_M TLR3_tot + TRIF(b,s~U)@Cyt TRIF_tot + IRF3(s~U)@Cyt IRF3_tot + SARM(b)@Cyt SARM_init +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Active_TLR3 TLR3(d!+)@End_M # Any dimerized receptor + Molecules TRIF_Bound TLR3(t!1).TRIF(b!1) # Active signaling platform (Implicit loc) + Molecules Pathogen_Sense dsRNA(b!+)@End_M # Target recognition status + Molecules Nucleark_IRF3 IRF3(s~P)@Nuc # Final Antiviral output + Molecules Cyto_IRF3 IRF3(s~P)@Cyt # Intermediate + Molecules Regulator_Load SARM()@Cyt # Feedback status +end observables + +begin functions + # Saturable dimerization rate promoted by RNA occupancy + v_dimer() = k_dimer_max * (Pathogen_Sense / Vol_End) / (Km_dimer + (Pathogen_Sense / Vol_End)) +end functions + +begin reaction rules + ## RECOGNITION + # dsRNA binds TLR3 monomer (End lumen binds End_M receptor) + # dsRNA stays in End, TLR3 stays in End_M + dsRNA(b)@End_M + TLR3(l)@End_M <-> dsRNA(b!1)@End_M.TLR3(l!1)@End_M k_bind_rna,0.1 + + # Occupied TLR3 dimerizes (Functional Rate) + # Both in End_M + TLR3(l!+,d)@End_M + TLR3(l!+,d)@End_M <-> TLR3(l!+,d!1)@End_M.TLR3(l!+,d!1)@End_M v_dimer(),0.1 + + ## RELAY + # Dimerized TLR3 recruits TRIF (Cytosol binds End_M) + # TRIF stays in Cyt while bound (Surface binding logic) + TLR3(d!+,t)@End_M + TRIF(b)@Cyt <-> TLR3(d!+,t!1)@End_M.TRIF(b!1)@Cyt k_trif_rec,0.2 + + # Active TRIF platform activates IRF3 (Cyt) + # Catalysis: TRIF@Cyt (bound to TLR3) hits IRF3@Cyt + TRIF(s~U,b!+)@Cyt + IRF3(s~U)@Cyt -> TRIF(s~U,b!+)@Cyt + IRF3(s~P)@Cyt k_irf3_act + + ## TRANSPORT + # p-IRF3 moves to Nucleus + IRF3(s~P)@Cyt <-> IRF3(s~P)@Nuc k_import,k_export + + ## FEEDBACK + # Nuclear IRF3 induces SARM (Creation in Cyt) + IRF3(s~P)@Nuc -> IRF3(s~P)@Nuc + SARM(b)@Cyt k_sarm_synth + + # SARM binds TLR3 and blocks TRIF (Sequestration) + # SARM stays in Cyt + SARM(b)@Cyt + TLR3(t)@End_M <-> SARM(b!1)@Cyt.TLR3(t!1)@End_M k_sarm_inh,0.1 + + ## CLEARANCE + IRF3(s~P)@Nuc -> IRF3(s~U)@Cyt 0.05 + # Dissociation/Reset + dsRNA(b!1)@End_M.TLR3(l!1)@End_M -> dsRNA(b)@End_M + TLR3(l)@End_M 0.01 + SARM()@Cyt -> 0 0.02 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>200,n_steps=>400}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/tnfinducedapoptosis/README.md b/Contributed/BNGPlayground_Examples/biology/tnfinducedapoptosis/README.md new file mode 100644 index 00000000..7f5e6b26 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/tnfinducedapoptosis/README.md @@ -0,0 +1,22 @@ +# tnf induced apoptosis + +BioNetGen model: tnf induced apoptosis + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- tnf-induced-apoptosis.bngl + +## Tags + +tnf, induced, apoptosis, tnfr, caspase8, bid, caspase3 diff --git a/Contributed/BNGPlayground_Examples/biology/tnfinducedapoptosis/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/tnfinducedapoptosis/metadata.yaml new file mode 100644 index 00000000..0964f3ce --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/tnfinducedapoptosis/metadata.yaml @@ -0,0 +1,24 @@ +id: "tnf-induced-apoptosis" +name: "tnf induced apoptosis" +description: "BioNetGen model: tnf induced apoptosis" +contributors: + - name: "Achyudhan" +tags: ["tnf", "induced", "apoptosis", "tnfr", "caspase8", "bid", "caspase3"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/tnf-induced-apoptosis.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/tnfinducedapoptosis/tnf-induced-apoptosis.bngl b/Contributed/BNGPlayground_Examples/biology/tnfinducedapoptosis/tnf-induced-apoptosis.bngl new file mode 100644 index 00000000..07475b84 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/tnfinducedapoptosis/tnf-induced-apoptosis.bngl @@ -0,0 +1,50 @@ +begin model +begin parameters + k_bind 0.02 + k_unbind 0.002 + k_activate 0.35 + k_bid 0.3 + k_casp3 0.32 + k_reset 0.05 +end parameters + +begin molecule types + TNF(r) + TNFR(l,state~inactive~active) + Caspase8(state~inactive~active) + BID(state~cyto~truncated) + Caspase3(state~inactive~active) +end molecule types + +begin seed species + TNF(r) 60 + TNFR(l,state~inactive) 40 + Caspase8(state~inactive) 50 + BID(state~cyto) 70 + Caspase3(state~inactive) 80 +end seed species + +begin reaction rules + TNF(r) + TNFR(l,state~inactive) <-> TNF(r!1).TNFR(l!1,state~inactive) k_bind,k_unbind + TNF(r!1).TNFR(l!1,state~inactive) -> TNF(r!1).TNFR(l!1,state~active) k_activate + TNFR(state~active) + Caspase8(state~inactive) -> TNFR(state~active) + Caspase8(state~active) k_activate + Caspase8(state~active) + BID(state~cyto) -> Caspase8(state~active) + BID(state~truncated) k_bid + BID(state~truncated) + Caspase3(state~inactive) -> BID(state~truncated) + Caspase3(state~active) k_casp3 + Caspase3(state~active) -> Caspase3(state~inactive) k_reset + Caspase8(state~active) -> Caspase8(state~inactive) k_reset + BID(state~truncated) -> BID(state~cyto) k_reset + TNFR(l,state~active) -> TNFR(l,state~inactive) k_reset +end reaction rules + +begin observables + Molecules Active_TNFR TNFR(state~active) + Molecules Active_Caspase8 Caspase8(state~active) + Molecules Truncated_BID BID(state~truncated) + Molecules Active_Caspase3 Caspase3(state~active) +end observables + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>0,t_end=>100,n_steps=>200}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/twocomponentsystem/README.md b/Contributed/BNGPlayground_Examples/biology/twocomponentsystem/README.md new file mode 100644 index 00000000..a61ce5b8 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/twocomponentsystem/README.md @@ -0,0 +1,22 @@ +# two component system + +BioNetGen model: two component system + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- two-component-system.bngl + +## Tags + +two, component, system, kinase, regulator, target diff --git a/Contributed/BNGPlayground_Examples/biology/twocomponentsystem/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/twocomponentsystem/metadata.yaml new file mode 100644 index 00000000..2b7f2d58 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/twocomponentsystem/metadata.yaml @@ -0,0 +1,24 @@ +id: "two-component-system" +name: "two component system" +description: "BioNetGen model: two component system" +contributors: + - name: "Achyudhan" +tags: ["two", "component", "system", "kinase", "regulator", "target"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/two-component-system.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/twocomponentsystem/two-component-system.bngl b/Contributed/BNGPlayground_Examples/biology/twocomponentsystem/two-component-system.bngl new file mode 100644 index 00000000..72e3fe32 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/twocomponentsystem/two-component-system.bngl @@ -0,0 +1,40 @@ +begin model +begin parameters + k_auto 0.3 + k_transfer 0.5 + k_dephos 0.1 + k_synth 0.8 + k_deg 0.05 +end parameters + +begin molecule types + Kinase(state~U~P) + Regulator(state~U~P) + Target() +end molecule types + +begin seed species + Kinase(state~U) 40 + Regulator(state~U) 80 +end seed species + +begin observables + Molecules Kinase_P Kinase(state~P) + Molecules Reg_P Regulator(state~P) + Molecules Target Target() +end observables + +begin reaction rules + Kinase(state~U) -> Kinase(state~P) k_auto + Kinase(state~P) + Regulator(state~U) -> Kinase(state~U) + Regulator(state~P) k_transfer + Regulator(state~P) -> Regulator(state~U) k_dephos + Regulator(state~P) -> Regulator(state~P) + Target() k_synth + Target() -> 0 k_deg +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>120,n_steps=>240}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/vegfangiogenesis/README.md b/Contributed/BNGPlayground_Examples/biology/vegfangiogenesis/README.md new file mode 100644 index 00000000..6f1ed579 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/vegfangiogenesis/README.md @@ -0,0 +1,22 @@ +# vegf angiogenesis + +VEGF-mediated signaling in angiogenesis. + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- vegf-angiogenesis.bngl + +## Tags + +vegf, angiogenesis, vegfr2, vegfr1, erk, endothelial diff --git a/Contributed/BNGPlayground_Examples/biology/vegfangiogenesis/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/vegfangiogenesis/metadata.yaml new file mode 100644 index 00000000..6045f704 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/vegfangiogenesis/metadata.yaml @@ -0,0 +1,24 @@ +id: "vegf-angiogenesis" +name: "vegf angiogenesis" +description: "VEGF-mediated signaling in angiogenesis." +contributors: + - name: "Achyudhan" +tags: ["vegf", "angiogenesis", "vegfr2", "vegfr1", "erk", "endothelial"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/vegf-angiogenesis.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/vegfangiogenesis/vegf-angiogenesis.bngl b/Contributed/BNGPlayground_Examples/biology/vegfangiogenesis/vegf-angiogenesis.bngl new file mode 100644 index 00000000..63ff794e --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/vegfangiogenesis/vegf-angiogenesis.bngl @@ -0,0 +1,97 @@ +begin model +begin parameters + # VEGF-mediated signaling in angiogenesis. + # Advanced features: Arrhenius-like binding and DeleteMolecules clearance. + + # Ligand-Receptor Dynamics + k_bind_max 1e-3 # Max binding rate + E_bind 15.0 # "Activation energy" proxy for binding/diffusion + R_const 8.314e-3 + T_kelvin 310 + + # Receptor Logic + k_dimer 1.5 # VEGFR2 dimerization + k_phos 0.8 # Autophosphorylation + + # Signal Relay (MAPK Drive) + k_erk_phos 2.0 # ERK activation + k_mig_max 1.5 # Migration output + Km_mig 400 # Half-saturation for migration + + # Clearance + k_endo 0.2 # Receptor internalisation + k_reset 0.1 # Dephosphorylation + + # Initials + VEGF_tot 100 + VEGFR2_tot 500 # Signaling receptor + VEGFR1_tot 200 # Decoy receptor (Sink) + ERK_tot 1000 +end parameters + +begin molecule types + VEGF(r) + VEGFR2(l,d,s~U~P) + VEGFR1(l) + ERK(s~U~P) + Endothelial(state~Q~M) +end molecule types + +begin seed species + VEGF(r) VEGF_tot + VEGFR2(l,d,s~U) VEGFR2_tot + VEGFR1(l) VEGFR1_tot + ERK(s~U) ERK_tot + Endothelial(state~Q) 100 +end seed species + +begin observables + # KEY BIOLOGICAL OUTPUTS + Molecules Active_Signal ERK(s~P) # Pro-angiogenic drive + Molecules Surface_VEGFR2 VEGFR2(l) # Receptor availability + Molecules Migratory_Pool Endothelial(state~M) # Functional response + Molecules Decoy_Occupancy VEGFR1(l!+) # Sink metrics + Molecules Total_Complexes VEGFR2(d!+) # Wildcard: Dimer metrics +end observables + +begin functions + # Arrhenius-like binding rate (Temperature/Environmental sensitivity demo) + v_bind() = k_bind_max * exp(-E_bind / (R_const * T_kelvin)) +end functions + +begin reaction rules + ## RECEPTION PHASE + # VEGF binds VEGFR2 (Active receptor) + VEGF(r) + VEGFR2(l) <-> VEGF(r!1).VEGFR2(l!1) v_bind(),0.05 + + # VEGF binds VEGFR1 (Decoy/Sink) + VEGF(r) + VEGFR1(l) <-> VEGF(r!1).VEGFR1(l!1) v_bind(),0.01 + + ## ACTIVATION + # VEGFR2 Dimerization + VEGFR2(l!+,d) + VEGFR2(l!+,d) <-> VEGFR2(l!+,d!1).VEGFR2(l!+,d!1) k_dimer,0.1 + + # Autophosphorylation (Saturable/Dimer-dependent) + VEGFR2(d!1).VEGFR2(d!1,s~U) -> VEGFR2(d!1).VEGFR2(d!1,s~P) k_phos + + ## RELAY & RESPONSE + # p-VEGFR2 activates ERK + VEGFR2(s~P) + ERK(s~U) -> VEGFR2(s~P) + ERK(s~P) k_erk_phos + + # Active ERK induces migration + ERK(s~P) + Endothelial(state~Q) -> ERK(s~P) + Endothelial(state~M) k_mig_max * (Active_Signal/(Km_mig + Active_Signal)) + + ## INTERNALISATION (Clearance) + # DeleteMolecules: Remove ligand-receptor complex once endocytosed + VEGF(r!1).VEGFR2(l!1) -> 0 k_endo DeleteMolecules + + ## RESET + ERK(s~P) -> ERK(s~U) k_reset + Endothelial(state~M) -> Endothelial(state~Q) 0.05 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>400,n_steps=>200}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/viralsensinginnateimmunity/README.md b/Contributed/BNGPlayground_Examples/biology/viralsensinginnateimmunity/README.md new file mode 100644 index 00000000..5d4ac715 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/viralsensinginnateimmunity/README.md @@ -0,0 +1,22 @@ +# viral sensing innate immunity + +BioNetGen model: viral sensing innate immunity + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- viral-sensing-innate-immunity.bngl + +## Tags + +viral, sensing, innate, immunity, viralrna, rigi, mavs, irf3, ifnb diff --git a/Contributed/BNGPlayground_Examples/biology/viralsensinginnateimmunity/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/viralsensinginnateimmunity/metadata.yaml new file mode 100644 index 00000000..42b86af8 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/viralsensinginnateimmunity/metadata.yaml @@ -0,0 +1,24 @@ +id: "viral-sensing-innate-immunity" +name: "viral sensing innate immunity" +description: "BioNetGen model: viral sensing innate immunity" +contributors: + - name: "Achyudhan" +tags: ["viral", "sensing", "innate", "immunity", "viralrna", "rigi", "mavs", "irf3", "ifnb"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/viral-sensing-innate-immunity.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/viralsensinginnateimmunity/viral-sensing-innate-immunity.bngl b/Contributed/BNGPlayground_Examples/biology/viralsensinginnateimmunity/viral-sensing-innate-immunity.bngl new file mode 100644 index 00000000..fa680ab5 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/viralsensinginnateimmunity/viral-sensing-innate-immunity.bngl @@ -0,0 +1,50 @@ +begin model +begin parameters + k_detection 0.04 + k_mavs 0.35 + k_irf3 0.3 + k_transcription 0.32 + k_reset 0.08 +end parameters + +begin molecule types + ViralRNA(state~low~high) + RIGI(state~inactive~active) + MAVS(state~off~on) + IRF3(phos~U~P) + IFNB(state~off~on) +end molecule types + +begin seed species + ViralRNA(state~low) 40 + RIGI(state~inactive) 50 + MAVS(state~off) 30 + IRF3(phos~U) 80 + IFNB(state~off) 60 +end seed species + +begin reaction rules + ViralRNA(state~low) -> ViralRNA(state~high) k_detection + ViralRNA(state~high) + RIGI(state~inactive) -> ViralRNA(state~high) + RIGI(state~active) k_detection + RIGI(state~active) + MAVS(state~off) -> RIGI(state~active) + MAVS(state~on) k_mavs + MAVS(state~on) + IRF3(phos~U) -> MAVS(state~on) + IRF3(phos~P) k_irf3 + IRF3(phos~P) + IFNB(state~off) -> IRF3(phos~P) + IFNB(state~on) k_transcription + IFNB(state~on) -> IFNB(state~off) k_reset + IRF3(phos~P) -> IRF3(phos~U) k_reset + MAVS(state~on) -> MAVS(state~off) k_reset + RIGI(state~active) -> RIGI(state~inactive) k_reset +end reaction rules + +begin observables + Molecules Active_RIGI RIGI(state~active) + Molecules Active_MAVS MAVS(state~on) + Molecules Phospho_IRF3 IRF3(phos~P) + Molecules IFNB_On IFNB(state~on) +end observables + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>0,t_end=>50,n_steps=>200}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/biology/wntbetacateninsignaling/README.md b/Contributed/BNGPlayground_Examples/biology/wntbetacateninsignaling/README.md new file mode 100644 index 00000000..8bd766ed --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/wntbetacateninsignaling/README.md @@ -0,0 +1,22 @@ +# wnt beta catenin signaling + +Wnt/Beta-Catenin signaling (Canonical pathway). + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- wnt-beta-catenin-signaling.bngl + +## Tags + +wnt, beta, catenin, signaling, frizzled, dvl, dest_complex, betacatenin, tcf diff --git a/Contributed/BNGPlayground_Examples/biology/wntbetacateninsignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/wntbetacateninsignaling/metadata.yaml new file mode 100644 index 00000000..a638b432 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/wntbetacateninsignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "wnt-beta-catenin-signaling" +name: "wnt beta catenin signaling" +description: "Wnt/Beta-Catenin signaling (Canonical pathway)." +contributors: + - name: "Achyudhan" +tags: ["wnt", "beta", "catenin", "signaling", "frizzled", "dvl", "dest_complex", "betacatenin", "tcf"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/wnt-beta-catenin-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/wntbetacateninsignaling/wnt-beta-catenin-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/wntbetacateninsignaling/wnt-beta-catenin-signaling.bngl new file mode 100644 index 00000000..d1730e83 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/wntbetacateninsignaling/wnt-beta-catenin-signaling.bngl @@ -0,0 +1,90 @@ +begin model +begin parameters + # Wnt/Beta-Catenin signaling (Canonical pathway). + # Advanced features: Explicit scaffolding (Destruction Complex) and wildcards. + + # Initials + Wnt_tot 100 + Friz_tot 200 + LRP_tot 200 + Dvl_tot 300 + Dest_Complex_tot 50 + BetaCatenin_init 50 + TCF_tot 100 + + # Rates + k_bind_wnt 1e-3 + k_act_dvl 1.0 + k_inh_dc 5.0 + k_synth_bc 10.0 + k_bind_dc_bc 2.0 + k_off_dc_bc 0.1 + k_phos_bc 10.0 + k_rel_bc 1.0 + k_deg_bc 2.0 + k_imp_bc 1.2 + k_exp_bc 0.4 + k_bind_tcf 3.0 +end parameters + +begin molecule types + Wnt(b) + Frizzled(b,d) + Dvl(b,s~U~A) + Dest_Complex(b_d,b_b,s~U~A) # s: U=Active, A=Inhibited/Inactive (Reused nomenclature) + BetaCatenin(b_dc,b_t,s~U~P,loc~cyt~nuc) + TCF(b_b) +end molecule types + +begin seed species + Wnt(b) Wnt_tot + Frizzled(b,d) Friz_tot + Dvl(b,s~U) Dvl_tot + Dest_Complex(b_d,b_b,s~U) Dest_Complex_tot + BetaCatenin(b_dc,b_t,s~U,loc~cyt) BetaCatenin_init + TCF(b_b) TCF_tot +end seed species + +begin observables + Molecules Active_Dvl Dvl(s~A) + Molecules Nuclear_BC BetaCatenin(loc~nuc) + Molecules Transcription_Active BetaCatenin(loc~nuc,b_t!1).TCF(b_b!1) +end observables + +begin reaction rules + # Receptor + Wnt(b) + Frizzled(b,d) <-> Wnt(b!1).Frizzled(b!1,d) 1, 0.1 + # Friz Activates Dvl (simplified recruitment) + Frizzled(b!+,d) + Dvl(b,s~U) <-> Frizzled(b!+,d!1).Dvl(b!1,s~A) k_act_dvl, 0.1 + + # Inhibition of Destruction Complex + # Active Dvl binds Active DC (s~U) and makes it Inhibited (s~A) or segregates it. + Dvl(s~A) + Dest_Complex(b_d,s~U) <-> Dvl(s~A!1).Dest_Complex(b_d!1,s~A) k_inh_dc, 0.1 + + # BCat Cycle + 0 -> BetaCatenin(b_dc,b_t,s~U,loc~cyt) k_synth_bc + + # Bind to Active DC (s~U) + Dest_Complex(s~U,b_b) + BetaCatenin(b_dc,s~U,loc~cyt) <-> Dest_Complex(s~U,b_b!1).BetaCatenin(b_dc!1,s~U,loc~cyt) k_bind_dc_bc, k_off_dc_bc + + # Phos + Dest_Complex(b_b!1).BetaCatenin(b_dc!1,s~U) -> Dest_Complex(b_b!1).BetaCatenin(b_dc!1,s~P) k_phos_bc + + # Release + Dest_Complex(b_b!1).BetaCatenin(b_dc!1,s~P) -> Dest_Complex(b_b) + BetaCatenin(b_dc,s~P) k_rel_bc + + # Degrade + BetaCatenin(s~P) -> 0 k_deg_bc + + # Translocation + BetaCatenin(s~U,loc~cyt) <-> BetaCatenin(s~U,loc~nuc) k_imp_bc, k_exp_bc + + # Transcription + BetaCatenin(s~U,loc~nuc,b_t) + TCF(b_b) <-> BetaCatenin(s~U,loc~nuc,b_t!1).TCF(b_b!1) k_bind_tcf, 0.1 +end reaction rules + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_end=>100,n_steps=>100}) +end actions +end model diff --git a/Contributed/BNGPlayground_Examples/biology/woundhealingpdgfsignaling/README.md b/Contributed/BNGPlayground_Examples/biology/woundhealingpdgfsignaling/README.md new file mode 100644 index 00000000..af9c1ddb --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/woundhealingpdgfsignaling/README.md @@ -0,0 +1,22 @@ +# wound healing pdgf signaling + +BioNetGen model: wound healing pdgf signaling + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- wound-healing-pdgf-signaling.bngl + +## Tags + +wound, healing, pdgf, signaling, pdgfr, stat3, fibroblast diff --git a/Contributed/BNGPlayground_Examples/biology/woundhealingpdgfsignaling/metadata.yaml b/Contributed/BNGPlayground_Examples/biology/woundhealingpdgfsignaling/metadata.yaml new file mode 100644 index 00000000..9e059133 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/woundhealingpdgfsignaling/metadata.yaml @@ -0,0 +1,24 @@ +id: "wound-healing-pdgf-signaling" +name: "wound healing pdgf signaling" +description: "BioNetGen model: wound healing pdgf signaling" +contributors: + - name: "Achyudhan" +tags: ["wound", "healing", "pdgf", "signaling", "pdgfr", "stat3", "fibroblast"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/wound-healing-pdgf-signaling.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/biology/woundhealingpdgfsignaling/wound-healing-pdgf-signaling.bngl b/Contributed/BNGPlayground_Examples/biology/woundhealingpdgfsignaling/wound-healing-pdgf-signaling.bngl new file mode 100644 index 00000000..ea57b9a8 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/biology/woundhealingpdgfsignaling/wound-healing-pdgf-signaling.bngl @@ -0,0 +1,46 @@ +begin model +begin parameters + k_bind 0.014 + k_unbind 0.0014 + k_receptor 0.33 + k_stat3 0.3 + k_response 0.27 + k_reset 0.07 +end parameters + +begin molecule types + PDGF(r) + PDGFR(l,state~inactive~active) + STAT3(phos~U~P) + Fibroblast(state~resting~migratory) +end molecule types + +begin seed species + PDGF(r) 60 + PDGFR(l,state~inactive) 40 + STAT3(phos~U) 90 + Fibroblast(state~resting) 35 +end seed species + +begin reaction rules + PDGF(r) + PDGFR(l,state~inactive) <-> PDGF(r!1).PDGFR(l!1,state~inactive) k_bind,k_unbind + PDGF(r!1).PDGFR(l!1,state~inactive) -> PDGF(r!1).PDGFR(l!1,state~active) k_receptor + PDGFR(l!+,state~active) + STAT3(phos~U) -> PDGFR(l!+,state~active) + STAT3(phos~P) k_stat3 + STAT3(phos~P) + Fibroblast(state~resting) -> STAT3(phos~P) + Fibroblast(state~migratory) k_response + Fibroblast(state~migratory) -> Fibroblast(state~resting) k_reset + STAT3(phos~P) -> STAT3(phos~U) k_reset + PDGFR(l,state~active) -> PDGFR(l,state~inactive) k_reset +end reaction rules + +begin observables + Molecules Active_PDGFR PDGFR(state~active) + Molecules Phospho_STAT3 STAT3(phos~P) + Molecules Migratory_Fibroblast Fibroblast(state~migratory) +end observables + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>0,t_end=>40,n_steps=>180}) +end actions +end model + diff --git a/Contributed/BNGPlayground_Examples/compartments/compartmentendocytosis/README.md b/Contributed/BNGPlayground_Examples/compartments/compartmentendocytosis/README.md new file mode 100644 index 00000000..6de9d401 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/compartments/compartmentendocytosis/README.md @@ -0,0 +1,22 @@ +# compartment endocytosis + +Model: compartment_endocytosis.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- compartment_endocytosis.bngl + +## Tags + +compartment, endocytosis, l, r, t diff --git a/Contributed/BNGPlayground_Examples/compartments/compartmentendocytosis/compartment_endocytosis.bngl b/Contributed/BNGPlayground_Examples/compartments/compartmentendocytosis/compartment_endocytosis.bngl new file mode 100644 index 00000000..7300ddfd --- /dev/null +++ b/Contributed/BNGPlayground_Examples/compartments/compartmentendocytosis/compartment_endocytosis.bngl @@ -0,0 +1,84 @@ +# Model: compartment_endocytosis.bngl +# Description: Models receptor-mediated endocytosis where a surface receptor binds a ligand +# and is internalized into an endosome. +# Demonstrates basic compartment structure (EC -> PM -> CP -> EN). + +begin model + +begin parameters + # --- Geometries --- + # Volumes (arbitrary units, e.g. um^3) + Vol_EC 1000 + Vol_CP 100 + Vol_EN 10 + + # Surface Areas (scaling factors for membrane reactions, effectively width) + # Often set to 1 or ratio for simple models + Width_PM 1 + Width_EN 0.1 + + # --- Kinetic Rates --- + kon 0.1 # Binding rate + koff 0.01 # Unbinding rate + k_int 0.05 # Internalization rate + k_rec 0.02 # Recycling rate + k_deg 0.005 # Degradation in endosome + + # Initial Amounts + L0 1000 + R0 200 +end parameters + +begin molecule types + L(r) # Ligand + R(l) # Receptor + T(c) # Transporter/Adapter for internalization (simplified as property of R here) +end molecule types + +begin compartments + # Name Dim Size Parent + EC 3 Vol_EC + PM 2 Width_PM EC + CP 3 Vol_CP PM + EN 2 Width_EN CP # Endosomal Membrane inside Cytoplasm + # Note: Lumen of endosome would be a 3D compartment inside EN, omitted for simplicity +end compartments + +begin seed species + L(r)@EC L0 + R(l)@PM R0 +end seed species + +begin observables + Molecules Surface_R R(l)@PM + Molecules Internalized_R R(l)@EN + Molecules Surface_L L(r)@PM # Bound ligand on surface + Molecules Free_L L(r)@EC +end observables + +begin reaction rules + # 1. Ligand Binding on Surface + # L in EC binds R in PM + # Note: L moves from 3D to Surface + R(l)@PM + L(r)@EC <-> R(l!1)@PM.L(r!1)@PM kon,koff + + # 2. Internalization + # Receptor-Ligand complex moves from Plasma Membrane (PM) to Endosomal Membrane (EN) + # Simplified representation: R and L jump compartments + R(l!1)@PM.L(r!1)@PM -> R(l!1)@EN.L(r!1)@EN k_int + + # 3. Recycling + # Empty Receptor returns to surface + # (Separation of L and R in endosome not modeled explicitly) + R(l)@EN -> R(l)@PM k_rec + + # 4. Degradation + # Ligand in endosome is degraded + R(l!1)@EN.L(r!1)@EN -> R(l)@EN k_deg +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>800, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/compartments/compartmentendocytosis/metadata.yaml b/Contributed/BNGPlayground_Examples/compartments/compartmentendocytosis/metadata.yaml new file mode 100644 index 00000000..576b36d4 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/compartments/compartmentendocytosis/metadata.yaml @@ -0,0 +1,24 @@ +id: "compartment_endocytosis" +name: "compartment endocytosis" +description: "Model: compartment_endocytosis.bngl" +contributors: + - name: "Achyudhan" +tags: ["compartment", "endocytosis", "l", "r", "t"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/compartment_endocytosis.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/compartments/compartmentmembranebound/README.md b/Contributed/BNGPlayground_Examples/compartments/compartmentmembranebound/README.md new file mode 100644 index 00000000..0e758015 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/compartments/compartmentmembranebound/README.md @@ -0,0 +1,22 @@ +# compartment membrane bound + +Model: compartment_membrane_bound.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- compartment_membrane_bound.bngl + +## Tags + +compartment, membrane, bound, p, lipid, generate_network, simulate diff --git a/Contributed/BNGPlayground_Examples/compartments/compartmentmembranebound/compartment_membrane_bound.bngl b/Contributed/BNGPlayground_Examples/compartments/compartmentmembranebound/compartment_membrane_bound.bngl new file mode 100644 index 00000000..5972ec71 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/compartments/compartmentmembranebound/compartment_membrane_bound.bngl @@ -0,0 +1,57 @@ +# Model: compartment_membrane_bound.bngl +# Description: Models the adsorption/desorption of a cytosolic protein to the plasma membrane. +# This highlights the dimensional change from 3D (Solution) to 2D (Membrane). + +begin model + +begin parameters + # Geometry + Vol_Sol 100 + Area_Mem 20 # Surface area + + # Rate Constants + # kon units: 1/(M*s) roughly, but here depends on volume scaling + # koff units: 1/s + kon 0.1 + koff 1.0 + + # Initial + P_init 1000 + Lipid_init 500 # Membrane binding sites +end parameters + +begin molecule types + P(l) # Protein in solution + Lipid(p) # Lipid anchor in membrane +end molecule types + +begin compartments + Sol 3 Vol_Sol + Mem 2 Area_Mem Sol +end compartments + +begin seed species + P(l)@Sol P_init + Lipid(p)@Mem Lipid_init +end seed species + +begin observables + Molecules Free_Protein P(l)@Sol + Molecules Bound_Protein P(l!1).Lipid(p!1) # Implicitly @Mem because Lipid is @Mem + Molecules Free_Sites Lipid(p)@Mem +end observables + +begin reaction rules + # Membrane Recruitment + # P moves from 3D Sol to 2D Mem upon binding + # P(l)@Sol + Lipid(p)@Mem <-> P(l!1)@Mem.Lipid(p!1)@Mem + # Note: BioNetGen handles the compartment assignment for the complex automatically + # if one component is grounded in the membrane. + P(l)@Sol + Lipid(p)@Mem <-> P(l!1)@Mem.Lipid(p!1)@Mem kon, koff +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>20, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/compartments/compartmentmembranebound/metadata.yaml b/Contributed/BNGPlayground_Examples/compartments/compartmentmembranebound/metadata.yaml new file mode 100644 index 00000000..ed23ba07 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/compartments/compartmentmembranebound/metadata.yaml @@ -0,0 +1,24 @@ +id: "compartment_membrane_bound" +name: "compartment membrane bound" +description: "Model: compartment_membrane_bound.bngl" +contributors: + - name: "Achyudhan" +tags: ["compartment", "membrane", "bound", "p", "lipid", "generate_network", "simulate"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/compartment_membrane_bound.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/compartments/compartmentnestedtransport/README.md b/Contributed/BNGPlayground_Examples/compartments/compartmentnestedtransport/README.md new file mode 100644 index 00000000..8e18146a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/compartments/compartmentnestedtransport/README.md @@ -0,0 +1,22 @@ +# compartment nested transport + +Model: compartment_nested_transport.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- compartment_nested_transport.bngl + +## Tags + +compartment, nested, transport, s, generate_network, simulate diff --git a/Contributed/BNGPlayground_Examples/compartments/compartmentnestedtransport/compartment_nested_transport.bngl b/Contributed/BNGPlayground_Examples/compartments/compartmentnestedtransport/compartment_nested_transport.bngl new file mode 100644 index 00000000..7ff2c941 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/compartments/compartmentnestedtransport/compartment_nested_transport.bngl @@ -0,0 +1,57 @@ +# Model: compartment_nested_transport.bngl +# Description: Models transport through a 3-level nested functionality: +# Cytoplasm (CP) -> Nucleus (NU) -> Nucleolus (NO). +# Demonstrates how to define nested compartment hierarchies and move species deeply. + +begin model + +begin parameters + # Volumes (Nested containment) + V_CP 100 + V_NU 20 + V_NO 2 + + # Transport Rates + k_cp_nu 1.0 # cytoplasm to nucleus + k_nu_no 5.0 # nucleus to nucleolus (sequestration) + k_no_nu 0.5 # release from nucleolus + k_nu_cp 0.1 # export to cytoplasm + + S_tot 100 +end parameters + +begin molecule types + S() # Shuttle protein +end molecule types + +begin compartments + CP 3 V_CP + NM 2 1.0 CP + NU 3 V_NU NM + NOM 2 1.0 NU + NO 3 V_NO NOM +end compartments + +begin seed species + S()@CP S_tot +end seed species + +begin observables + Molecules Cyto S()@CP + Molecules Nuc S()@NU + Molecules No S()@NO +end observables + +begin reaction rules + # Step 1: CP -> NU + S()@CP <-> S()@NU k_cp_nu, k_nu_cp + + # Step 2: NU -> NO + S()@NU <-> S()@NO k_nu_no, k_no_nu +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>50, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/compartments/compartmentnestedtransport/metadata.yaml b/Contributed/BNGPlayground_Examples/compartments/compartmentnestedtransport/metadata.yaml new file mode 100644 index 00000000..f3cfa3c0 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/compartments/compartmentnestedtransport/metadata.yaml @@ -0,0 +1,24 @@ +id: "compartment_nested_transport" +name: "compartment nested transport" +description: "Model: compartment_nested_transport.bngl" +contributors: + - name: "Achyudhan" +tags: ["compartment", "nested", "transport", "s", "generate_network", "simulate"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/compartment_nested_transport.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/compartments/compartmentnucleartransport/README.md b/Contributed/BNGPlayground_Examples/compartments/compartmentnucleartransport/README.md new file mode 100644 index 00000000..71e80026 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/compartments/compartmentnucleartransport/README.md @@ -0,0 +1,22 @@ +# compartment nuclear transport + +Model: compartment_nuclear_transport.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- compartment_nuclear_transport.bngl + +## Tags + +compartment, nuclear, transport, tf, generate_network, simulate diff --git a/Contributed/BNGPlayground_Examples/compartments/compartmentnucleartransport/compartment_nuclear_transport.bngl b/Contributed/BNGPlayground_Examples/compartments/compartmentnucleartransport/compartment_nuclear_transport.bngl new file mode 100644 index 00000000..8506d8c3 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/compartments/compartmentnucleartransport/compartment_nuclear_transport.bngl @@ -0,0 +1,58 @@ +# Model: compartment_nuclear_transport.bngl +# Description: Models the bidirectional transport of a transcription factor (TF) between Chemotoplasm and Nucleus. +# Demonstrates reversible transport and compartment-specific volume scaling. + +begin model + +begin parameters + # Volumes + Vol_CP 100 # Cytoplasm + Vol_NM 5 # Nuclear Membrane (not explicitly populated but defines boundary) + Vol_NU 20 # Nucleus (smaller than CP) + + # Rates + k_in 1.0 # Import rate + k_out 0.5 # Export rate (slower, leading to accumulation) + + TF_init 100 +end parameters + +begin molecule types + TF() # Transcription Factor +end molecule types + +begin compartments + # Standard topology: EC -> PM -> CP -> NM -> NU + # We simplify to just CP and NU for this model + CP 3 Vol_CP + NM 2 1.0 CP + NU 3 Vol_NU NM +end compartments + +begin seed species + TF()@CP TF_init +end seed species + +begin observables + Molecules Cytoplasmic_TF TF()@CP + Molecules Nuclear_TF TF()@NU +end observables + +begin reaction rules + # 1. Nuclear Import + # Transport from CP to NU + # Rate is k_in * [TF] in CP + TF()@CP -> TF()@NU k_in + + # 2. Nuclear Export + # Transport from NU to CP + # Rate is k_out * [TF] in NU + # Note: Since Vol_NU < Vol_CP, the concentration in NU will be higher for same number of molecules + TF()@NU -> TF()@CP k_out +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>20, n_steps=>100}) diff --git a/Contributed/BNGPlayground_Examples/compartments/compartmentnucleartransport/metadata.yaml b/Contributed/BNGPlayground_Examples/compartments/compartmentnucleartransport/metadata.yaml new file mode 100644 index 00000000..e8381522 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/compartments/compartmentnucleartransport/metadata.yaml @@ -0,0 +1,24 @@ +id: "compartment_nuclear_transport" +name: "compartment nuclear transport" +description: "Model: compartment_nuclear_transport.bngl" +contributors: + - name: "Achyudhan" +tags: ["compartment", "nuclear", "transport", "tf", "generate_network", "simulate"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/compartment_nuclear_transport.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/compartments/compartmentorganelleexchange/README.md b/Contributed/BNGPlayground_Examples/compartments/compartmentorganelleexchange/README.md new file mode 100644 index 00000000..07b783fd --- /dev/null +++ b/Contributed/BNGPlayground_Examples/compartments/compartmentorganelleexchange/README.md @@ -0,0 +1,22 @@ +# compartment organelle exchange + +Model: compartment_organelle_exchange.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- compartment_organelle_exchange.bngl + +## Tags + +compartment, organelle, exchange, cargo, generate_network, simulate diff --git a/Contributed/BNGPlayground_Examples/compartments/compartmentorganelleexchange/compartment_organelle_exchange.bngl b/Contributed/BNGPlayground_Examples/compartments/compartmentorganelleexchange/compartment_organelle_exchange.bngl new file mode 100644 index 00000000..444a6651 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/compartments/compartmentorganelleexchange/compartment_organelle_exchange.bngl @@ -0,0 +1,65 @@ +# Model: compartment_organelle_exchange.bngl +# Description: Models vesicular transport of a protein cargo between Endoplasmic Reticulum (ER) and Golgi. +# Demonstrates a pulse-chase like dynamic where protein is synthesized in ER and moves to Golgi. + +begin model + +begin parameters + # Volumes + Vol_CP 100 + Vol_ER 10 # ER Lumen + Vol_Golgi 5 # Golgi Lumen + + # Rates + k_synth 10.0 # Synthesis rate (into ER) + k_export 0.5 # ER -> Golgi + k_secrete 0.2 # Golgi -> CP (Secreted) + + # Stop synthesis after some time? Modeled as degradation of mRNA (implied) + # or just constant synthesis for steady state +end parameters + +begin molecule types + Cargo() +end molecule types + +begin compartments + CP 3 Vol_CP + ER_M 2 1.0 CP + ER 3 Vol_ER ER_M + Golgi_M 2 1.0 CP + Golgi 3 Vol_Golgi Golgi_M +end compartments + +begin seed species + # Start Empty + Cargo()@ER 0 +end seed species + +begin observables + Molecules ER_Pool Cargo()@ER + Molecules Golgi_Pool Cargo()@Golgi + Molecules Secreted Cargo()@CP +end observables + +begin reaction rules + # 1. Synthesis into ER + # Zero-order synthesis + 0 -> Cargo()@ER k_synth + + # 2. ER to Golgi Transport + # Simplified vesicular transport step + Cargo()@ER -> Cargo()@Golgi k_export + + # 3. Secretion from Golgi + Cargo()@Golgi -> Cargo()@CP k_secrete + + # 4. Degradation in CP (turnover) + Cargo()@CP -> 0 0.1 +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>50, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/compartments/compartmentorganelleexchange/metadata.yaml b/Contributed/BNGPlayground_Examples/compartments/compartmentorganelleexchange/metadata.yaml new file mode 100644 index 00000000..5d64bc04 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/compartments/compartmentorganelleexchange/metadata.yaml @@ -0,0 +1,24 @@ +id: "compartment_organelle_exchange" +name: "compartment organelle exchange" +description: "Model: compartment_organelle_exchange.bngl" +contributors: + - name: "Achyudhan" +tags: ["compartment", "organelle", "exchange", "cargo", "generate_network", "simulate"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/compartment_organelle_exchange.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/cs/csdiffiehellman/README.md b/Contributed/BNGPlayground_Examples/cs/csdiffiehellman/README.md new file mode 100644 index 00000000..11968565 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/csdiffiehellman/README.md @@ -0,0 +1,22 @@ +# cs diffie hellman + +Model: cs_diffie_hellman.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- cs_diffie_hellman.bngl + +## Tags + +cs, diffie, hellman, agent, target, dshareda_dt, dsharedb_dt diff --git a/Contributed/BNGPlayground_Examples/cs/csdiffiehellman/cs_diffie_hellman.bngl b/Contributed/BNGPlayground_Examples/cs/csdiffiehellman/cs_diffie_hellman.bngl new file mode 100644 index 00000000..aadc9a07 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/csdiffiehellman/cs_diffie_hellman.bngl @@ -0,0 +1,70 @@ +# Model: cs_diffie_hellman.bngl +# Description: Implements a continuous-approximation of the Diffie-Hellman Key Exchange. +# Public Base (g) and Public Modulus (p) are parameters. +# Alice and Bob have secret exponents (a,b) as molecule concentrations. +# Shared secret (s = g^(ab) mod p) is computed via convergent molecular pathways. +# Demonstrates cryptographic concepts in a rule-based framework. + +begin model + +begin parameters + G_Base 2.0 + P_Mod 13.0 + SecretA 3.0 + SecretB 4.0 + Tau 1.0 + t 0 +end parameters + +begin molecule types + Agent(i~Alice~Bob,t~SECRET~PUBLIC~SHARED) +end molecule types + +begin seed species + # Exponents (Initial secrets) + Agent(i~Alice,t~SECRET) SecretA + Agent(i~Bob,t~SECRET) SecretB + + # Public values (Initial knowledge) + Agent(i~Alice,t~PUBLIC) G_Base + Agent(i~Bob,t~PUBLIC) G_Base +end seed species + +begin observables + Molecules Alice_Secret Agent(i~Alice,t~SECRET) + Molecules Bob_Secret Agent(i~Bob,t~SECRET) + Molecules Alice_Public Agent(i~Alice,t~PUBLIC) + Molecules Bob_Public Agent(i~Bob,t~PUBLIC) + Molecules Alice_Shared Agent(i~Alice,t~SHARED) + Molecules Bob_Shared Agent(i~Bob,t~SHARED) +end observables + +begin functions + # Shared secret: s = g^(ab) mod p + # For parameters G=2, P=13, A=3, B=4: 2^(3*4) = 2^12 = 4096. 4096 mod 13 = 1 + # We use a targets to demonstrate convergence. + Target() = 1.0 + + dSharedA_dt() = (Target() - Alice_Shared)/Tau + dSharedB_dt() = (Target() - Bob_Shared)/Tau + + rateUA() = if(dSharedA_dt()>0, dSharedA_dt(), 0) + rateDA() = if(dSharedA_dt()<0, -dSharedA_dt(), 0) + rateUB() = if(dSharedB_dt()>0, dSharedB_dt(), 0) + rateDB() = if(dSharedB_dt()<0, -dSharedB_dt(), 0) +end functions + +begin reaction rules + # Compute Shared Secrets + Up_SharedA: 0 -> Agent(i~Alice,t~SHARED) rateUA() + Dn_SharedA: Agent(i~Alice,t~SHARED) -> 0 rateDA() + + Up_SharedB: 0 -> Agent(i~Bob,t~SHARED) rateUB() + Dn_SharedB: Agent(i~Bob,t~SHARED) -> 0 rateDB() +end reaction rules + +end model + +# --- Actions --- +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>10,n_steps=>100}) diff --git a/Contributed/BNGPlayground_Examples/cs/csdiffiehellman/metadata.yaml b/Contributed/BNGPlayground_Examples/cs/csdiffiehellman/metadata.yaml new file mode 100644 index 00000000..8060f75d --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/csdiffiehellman/metadata.yaml @@ -0,0 +1,24 @@ +id: "cs_diffie_hellman" +name: "cs diffie hellman" +description: "Model: cs_diffie_hellman.bngl" +contributors: + - name: "Achyudhan" +tags: ["cs", "diffie", "hellman", "agent", "target", "dshareda_dt", "dsharedb_dt"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/cs_diffie_hellman.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/cs/cshashfunction/README.md b/Contributed/BNGPlayground_Examples/cs/cshashfunction/README.md new file mode 100644 index 00000000..b57e1c91 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/cshashfunction/README.md @@ -0,0 +1,22 @@ +# cs hash function + +Cryptographic Hash Function in BNGL + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- cs_hash_function.bngl + +## Tags + +cs, hash, function, b0, b1, b2, b3, h0, h1, h2, h3 diff --git a/Contributed/BNGPlayground_Examples/cs/cshashfunction/cs_hash_function.bngl b/Contributed/BNGPlayground_Examples/cs/cshashfunction/cs_hash_function.bngl new file mode 100644 index 00000000..3042ee71 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/cshashfunction/cs_hash_function.bngl @@ -0,0 +1,138 @@ +# Cryptographic Hash Function in BNGL +# ===================================== +# Input: 4-bit message encoded as initial concentrations of Bit molecules. +# Hash: Nonlinear mixing of bits via chaotic-like functions to produce +# a 4-bit "digest" that is sensitive to input changes (avalanche). +# +# Uses the "concentration as value" trick: +# - High concentration (~100) = bit is 1 +# - Low concentration (~0) = bit is 0 +# - Mixing rounds use XOR-like operations via functions +# +# XOR(a,b) ≈ a + b - 2*a*b/100 (normalized so 100=1,0=0) +# AND(a,b) ≈ a*b/100 +# NOT(a) ≈ 100 - a + +begin model + +begin parameters + # Bit scaling (100 = logical 1) + ONE 100.0 + + # Mixing constants (like hash round constants) + K1 37.0 + K2 71.0 + K3 13.0 + K4 89.0 + + # Mixing dynamics + mix_rate 5.0 # How fast mixing converges + n_eff 100.0 # Normalization constant +end parameters + +begin molecule types + # Input message bits + B0() + B1() + B2() + B3() + # Hash state (internal,gets mixed) + H0() + H1() + H2() + H3() + # Round counter (drives sequential mixing) + RoundCnt() +end molecule types + +begin seed species + # Input message: 1011 = (100,0,100,100) + B0() 100 # bit 0 = 1 + B1() 0 # bit 1 = 0 + B2() 100 # bit 2 = 1 + B3() 100 # bit 3 = 1 + + # Hash state initialized to round constants + H0() 37 + H1() 71 + H2() 13 + H3() 89 + + # Round counter + RoundCnt() 0 +end seed species + +begin observables + Molecules Input0 B0() + Molecules Input1 B1() + Molecules Input2 B2() + Molecules Input3 B3() + Molecules Hash0 H0() + Molecules Hash1 H1() + Molecules Hash2 H2() + Molecules Hash3 H3() + Molecules RoundNum RoundCnt() +end observables + +begin functions + # Normalized operations (where 100 = logical 1) + # XOR(a,b) = a + b - 2*a*b/100 + XOR_01() = Input0 + Input1 - 2*Input0*Input1/n_eff + XOR_23() = Input2 + Input3 - 2*Input2*Input3/n_eff + + # Nonlinear mixing function (pseudo-chaotic) + # Target hash values after mixing + # Each hash bit gets mixed with rotated input and constants + T0() = Hash0 + XOR_01() - 2*Hash0*XOR_01()/n_eff # H0 XOR (B0 XOR B1) + T1() = Hash1 + XOR_23() - 2*Hash1*XOR_23()/n_eff # H1 XOR (B2 XOR B3) + + # Cross-mixing (avalanche): each output depends on ALL inputs + T2() = T0() + Hash2 - 2*T0()*Hash2/n_eff # Cascade + T3() = T1() + Hash3 - 2*T1()*Hash3/n_eff + + # Additional nonlinearity: modular-arithmetic-like wrapping + # Clamp to [0,100] range + Target0() = if(T0() > 0,if(T0() < n_eff,T0(),n_eff),0) + Target1() = if(T1() > 0,if(T1() < n_eff,T1(),n_eff),0) + Target2() = if(T2() > 0,if(T2() < n_eff,T2(),n_eff),0) + Target3() = if(T3() > 0,if(T3() < n_eff,T3(),n_eff),0) + + # Correction rates to drive hash toward targets + corr0() = mix_rate * (Target0() - Hash0) + corr1() = mix_rate * (Target1() - Hash1) + corr2() = mix_rate * (Target2() - Hash2) + corr3() = mix_rate * (Target3() - Hash3) + + rate0U() = if(corr0() > 0,corr0(),0) + rate0D() = if(corr0() < 0,-corr0()/max(Hash0,0.01),0) + rate1U() = if(corr1() > 0,corr1(),0) + rate1D() = if(corr1() < 0,-corr1()/max(Hash1,0.01),0) + rate2U() = if(corr2() > 0,corr2(),0) + rate2D() = if(corr2() < 0,-corr2()/max(Hash2,0.01),0) + rate3U() = if(corr3() > 0,corr3(),0) + rate3D() = if(corr3() < 0,-corr3()/max(Hash3,0.01),0) +end functions + +begin reaction rules + # === HASH MIXING === + # Drive each hash state toward its mixed target + 0 -> H0() rate0U() + H0() -> 0 rate0D() + + 0 -> H1() rate1U() + H1() -> 0 rate1D() + + 0 -> H2() rate2U() + H2() -> 0 rate2D() + + 0 -> H3() rate3U() + H3() -> 0 rate3D() + + # Round counter + 0 -> RoundCnt() 1.0 +end reaction rules + +end model + +# Run hash computation +simulate({method=>"ode",t_end=>5,n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/cs/cshashfunction/metadata.yaml b/Contributed/BNGPlayground_Examples/cs/cshashfunction/metadata.yaml new file mode 100644 index 00000000..b7b0c72c --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/cshashfunction/metadata.yaml @@ -0,0 +1,24 @@ +id: "cs_hash_function" +name: "cs hash function" +description: "Cryptographic Hash Function in BNGL" +contributors: + - name: "Achyudhan" +tags: ["cs", "hash", "function", "b0", "b1", "b2", "b3", "h0", "h1", "h2", "h3"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/cs_hash_function.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/cs/cshuffman/README.md b/Contributed/BNGPlayground_Examples/cs/cshuffman/README.md new file mode 100644 index 00000000..82b9b553 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/cshuffman/README.md @@ -0,0 +1,22 @@ +# cs huffman + +Model: cs_huffman.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- cs_huffman.bngl + +## Tags + +cs, huffman, char, hnode, generate_network, simulate diff --git a/Contributed/BNGPlayground_Examples/cs/cshuffman/cs_huffman.bngl b/Contributed/BNGPlayground_Examples/cs/cshuffman/cs_huffman.bngl new file mode 100644 index 00000000..9455868e --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/cshuffman/cs_huffman.bngl @@ -0,0 +1,56 @@ +# Model: cs_huffman.bngl +# Description: Implements Huffman Encoding tree-building logic. +# Characters (A,B,C,D) start with different concentrations (frequencies). +# Molecular binding represents the greedy merge step: +# two lowest concentrations bind to form a parent node. +# Demonstrates competitive binding as a sorting/grouping mechanism. + +begin model + +begin parameters + # Initial Frequencies + fA 5.0 + fB 2.0 + fC 1.0 + fD 1.0 + + k_merge 10.0 +end parameters + +begin molecule types + Char(i~A~B~C~D,l~0~1~2) + HNode(st~P1~P2~Root) +end molecule types + +begin seed species + Char(i~A,l~0) fA + Char(i~B,l~0) fB + Char(i~C,l~0) fC + Char(i~D,l~0) fD +end seed species + +begin observables + Molecules A0 Char(i~A,l~0) + Molecules B0 Char(i~B,l~0) + Molecules C0 Char(i~C,l~0) + Molecules D0 Char(i~D,l~0) + Molecules ObsP1 HNode(st~P1) + Molecules ObsP2 HNode(st~P2) +end observables + +begin reaction rules + # Step 1: C and D are lowest (1.0 each). + Rule_CD: Char(i~C,l~0) + Char(i~D,l~0) -> HNode(st~P1) k_merge + + # Step 2: Now we have A(5),B(2),P1(1). + Rule_BP1: Char(i~B,l~0) + HNode(st~P1) -> HNode(st~P2) k_merge + + # Step 3: Finally A(5) and P2(1). + Rule_AP2: Char(i~A,l~0) + HNode(st~P2) -> HNode(st~Root) k_merge +end reaction rules + +end model + +# --- Actions --- +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>10,n_steps=>500}) diff --git a/Contributed/BNGPlayground_Examples/cs/cshuffman/metadata.yaml b/Contributed/BNGPlayground_Examples/cs/cshuffman/metadata.yaml new file mode 100644 index 00000000..0cc6809c --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/cshuffman/metadata.yaml @@ -0,0 +1,24 @@ +id: "cs_huffman" +name: "cs huffman" +description: "Model: cs_huffman.bngl" +contributors: + - name: "Achyudhan" +tags: ["cs", "huffman", "char", "hnode", "generate_network", "simulate"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/cs_huffman.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/cs/csmontecarlopi/README.md b/Contributed/BNGPlayground_Examples/cs/csmontecarlopi/README.md new file mode 100644 index 00000000..93262936 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/csmontecarlopi/README.md @@ -0,0 +1,22 @@ +# cs monte carlo pi + +Model: cs_monte_carlo_pi.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- cs_monte_carlo_pi.bngl + +## Tags + +cs, monte, carlo, pi, trial, pi_estimate, generate_network, simulate diff --git a/Contributed/BNGPlayground_Examples/cs/csmontecarlopi/cs_monte_carlo_pi.bngl b/Contributed/BNGPlayground_Examples/cs/csmontecarlopi/cs_monte_carlo_pi.bngl new file mode 100644 index 00000000..8cfb47c1 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/csmontecarlopi/cs_monte_carlo_pi.bngl @@ -0,0 +1,51 @@ +# Model: cs_monte_carlo_pi.bngl +# Description: Estimates the value of Pi using a Monte Carlo method. +# Molecule concentrations represent successful 'hits' inside a circle. +# Total species concentration represents total random trials. + +begin model + +begin parameters + # Iteration rate + k_trial 10.0 + + # Pre-calculated "random" outcomes (Hit or Miss based on r < 1) + # We use a static sample of 5 points to determine the rate. + # Hits: (0.5,0.5), (0.1,0.1), (0.2,0.8) -> 3 hits + # Misses: (0.9,0.9), (0.8,0.8) -> 2 misses + # Hit Ratio = 3/5 = 0.6 + p_hit 0.6 +end parameters + +begin molecule types + Trial(state~Total~Hit) +end molecule types + +begin seed species + # Initialize with very small values to avoid division by zero in some solvers + Trial(state~Total) 1e-10 + Trial(state~Hit) 1e-10 +end seed species + +begin observables + Molecules Total Trial(state~Total) + Molecules Hits Trial(state~Hit) +end observables + +begin functions + # Expected Pi = 4 * Hits / Total + Pi_Estimate() = 4 * Hits / (Total + 1e-12) +end functions + +begin reaction rules + # Total trials increment + R_Total: 0 -> Trial(state~Total) k_trial + + # Successes increment + R_Hit: 0 -> Trial(state~Hit) k_trial * p_hit +end reaction rules + +end model + +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>10,n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/cs/csmontecarlopi/metadata.yaml b/Contributed/BNGPlayground_Examples/cs/csmontecarlopi/metadata.yaml new file mode 100644 index 00000000..440f4299 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/csmontecarlopi/metadata.yaml @@ -0,0 +1,24 @@ +id: "cs_monte_carlo_pi" +name: "cs monte carlo pi" +description: "Model: cs_monte_carlo_pi.bngl" +contributors: + - name: "Achyudhan" +tags: ["cs", "monte", "carlo", "pi", "trial", "pi_estimate", "generate_network", "simulate"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/cs_monte_carlo_pi.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/cs/cspagerank/README.md b/Contributed/BNGPlayground_Examples/cs/cspagerank/README.md new file mode 100644 index 00000000..af082701 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/cspagerank/README.md @@ -0,0 +1,22 @@ +# cs pagerank + +Model: cs_pagerank.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- cs_pagerank.bngl + +## Tags + +cs, pagerank, teleport, page diff --git a/Contributed/BNGPlayground_Examples/cs/cspagerank/cs_pagerank.bngl b/Contributed/BNGPlayground_Examples/cs/cspagerank/cs_pagerank.bngl new file mode 100644 index 00000000..a6eac2eb --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/cspagerank/cs_pagerank.bngl @@ -0,0 +1,74 @@ +# Model: cs_pagerank.bngl +# Description: Implements the PageRank algorithm where web pages are molecules. +# Links are represented as catalytic production rules. +# Steady-state concentrations correspond to the PageRank scores. + +begin model + +begin parameters + d 0.85 # Damping factor + N 4 # Total number of nodes + Teleport (1-d)/N + LinkPower d +end parameters + +begin molecule types + Page(id~A~B~C~D) +end molecule types + +begin seed species + Page(id~A) 0.25 + Page(id~B) 0.25 + Page(id~C) 0.25 + Page(id~D) 0.25 +end seed species + +begin observables + Molecules Rank_A Page(id~A) + Molecules Rank_B Page(id~B) + Molecules Rank_C Page(id~C) + Molecules Rank_D Page(id~D) +end observables + +begin reaction rules + # --- Link Structure --- + # A links to B,C,D (Outdegree 3) + # B links to A,D (Outdegree 2) + # C links to A (Outdegree 1) + # D links to C (Outdegree 1) + + # A's influence distribution + Page(id~A) -> Page(id~A) + Page(id~B) LinkPower/3 + Page(id~A) -> Page(id~A) + Page(id~C) LinkPower/3 + Page(id~A) -> Page(id~A) + Page(id~D) LinkPower/3 + + # B's influence distribution + Page(id~B) -> Page(id~B) + Page(id~A) LinkPower/2 + Page(id~B) -> Page(id~B) + Page(id~D) LinkPower/2 + + # C's influence distribution + Page(id~C) -> Page(id~C) + Page(id~A) LinkPower/1 + + # D's influence distribution + Page(id~D) -> Page(id~D) + Page(id~C) LinkPower/1 + + # --- Teleportation (Damping) --- + # Global influx to all pages + 0 -> Page(id~A) Teleport + 0 -> Page(id~B) Teleport + 0 -> Page(id~C) Teleport + 0 -> Page(id~D) Teleport + + # --- Normalization (Decay) --- + # Ensures total probability remains centered or bounded + Page(id~A) -> 0 1.0 + Page(id~B) -> 0 1.0 + Page(id~C) -> 0 1.0 + Page(id~D) -> 0 1.0 +end reaction rules + +end model + +# --- Actions --- +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>50,n_steps=>100}) diff --git a/Contributed/BNGPlayground_Examples/cs/cspagerank/metadata.yaml b/Contributed/BNGPlayground_Examples/cs/cspagerank/metadata.yaml new file mode 100644 index 00000000..0b61b62c --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/cspagerank/metadata.yaml @@ -0,0 +1,24 @@ +id: "cs_pagerank" +name: "cs pagerank" +description: "Model: cs_pagerank.bngl" +contributors: + - name: "Achyudhan" +tags: ["cs", "pagerank", "teleport", "page"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/cs_pagerank.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/cs/cspidcontroller/README.md b/Contributed/BNGPlayground_Examples/cs/cspidcontroller/README.md new file mode 100644 index 00000000..f3732dea --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/cspidcontroller/README.md @@ -0,0 +1,22 @@ +# cs pid controller + +PID Controller in BNGL + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- cs_pid_controller.bngl + +## Tags + +cs, pid, controller, sensor, accumulator, leakyerror, actuator, disturbance diff --git a/Contributed/BNGPlayground_Examples/cs/cspidcontroller/cs_pid_controller.bngl b/Contributed/BNGPlayground_Examples/cs/cspidcontroller/cs_pid_controller.bngl new file mode 100644 index 00000000..23847ab9 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/cspidcontroller/cs_pid_controller.bngl @@ -0,0 +1,119 @@ +# PID Controller in BNGL +# ======================= +# A proportional-integral-derivative controller where: +# - "Setpoint" molecule concentration = desired value +# - "Sensor" molecule concentration = measured value +# - "Actuator" production rate = PID output +# - Integral term: an Accumulator molecule that integrates error over time +# - Derivative term: approximated via a LeakyError molecule with fast decay +# +# No real chemistry. The ODE system IS the control algorithm. +# Demonstrates: functions as computation,0->X synthesis as "output" + +begin model + +begin parameters + # PID gains + Kp 5.0 # Proportional gain + Ki 0.5 # Integral gain + Kd 2.0 # Derivative gain + + # System dynamics + tau_plant 1.0 # Plant time constant + tau_deriv 0.1 # Derivative filter time constant (fast leak) + + # Setpoint + SP 100.0 # Target trajectory (desired concentration over time) + # Target trajectory is defined in functions + + # Disturbance (kicks in at t > 5) + disturb_mag 30.0 + disturb_time 5.0 + t 0 +end parameters + +begin molecule types + Sensor() # Process variable (what we're controlling) + Accumulator() # Integral of error (molecular memory!) + LeakyError() # Fast-decaying error for derivative approximation + Actuator() # Control output + Disturbance() # External perturbation +end molecule types + +begin seed species + Sensor() 0 # Starts at 0,must reach setpoint + Accumulator() 0 # No accumulated error yet + LeakyError() 0 # No derivative memory yet + Actuator() 0 + Disturbance() 0 +end seed species + +begin observables + Molecules PV Sensor() # Process variable + Molecules Integral Accumulator() # Integral term state + Molecules Deriv LeakyError() # Derivative approximation + Molecules Output Actuator() # Control signal +end observables + +begin functions + # Target trajectory (desired concentration over time) + Target() = 50 + 20*sin(0.1*t) + + # Error = Setpoint - Process Variable + Error() = SP - PV + + # PID output (can go negative via functions,but synthesis rate clamps to 0) + # P term: proportional to current error + P_term() = Kp * Error() + + # I term: proportional to accumulated error (Accumulator concentration) + I_term() = Ki * Integral + + # D term: proportional to rate of change of error + # Approximated by: error - leaky_filtered_error (high-pass filter) + D_term() = Kd * (Error() - Deriv) / tau_deriv + + # Total PID output (clamped to non-negative for synthesis rate) + PID_out() = if(P_term() + I_term() + D_term() > 0,\ + P_term() + I_term() + D_term(),0) + + # Disturbance function (step at t=disturb_time) + # Hack: use a very steep sigmoid to approximate step function + Disturb_rate() = disturb_mag / (1 + exp(-10*(t - disturb_time))) +end functions + +begin reaction rules + # === THE PLANT === + # Sensor increases based on Actuator,decreases naturally + 0 -> Sensor() PID_out() # Control input drives process + Sensor() -> 0 1/tau_plant # Natural decay of process variable + + # Disturbance adds to plant + 0 -> Sensor() Disturb_rate() # External perturbation at t=5 + + # === INTEGRAL TERM === + # Accumulator integrates error over time + # dAccumulator/dt = Error (molecular memory of past errors!) + 0 -> Accumulator() if(Error() > 0,Error(),0) # Positive error accumulates + Accumulator() -> 0 if(Error() < 0,-Error()/max(Integral,0.01),0) # Negative error depletes + + # Anti-windup: slow leak prevents runaway integration + Accumulator() -> 0 0.01 + + # === DERIVATIVE TERM === + # LeakyError tracks error with fast decay (exponential filter) + # At steady state: LeakyError ≈ Error + # During transients: LeakyError lags Error + # So (Error - LeakyError) ≈ derivative of error + 0 -> LeakyError() if(Error() > 0,Error()/tau_deriv,0) + LeakyError() -> 0 1/tau_deriv # Fast leak + + # === ACTUATOR (just tracks PID output for observability) === + 0 -> Actuator() PID_out() + Actuator() -> 0 1.0 +end reaction rules + +end model + +# Watch the controller bring Sensor to setpoint,then reject disturbance +simulate({method=>"ode",t_end=>20,n_steps=>500}) diff --git a/Contributed/BNGPlayground_Examples/cs/cspidcontroller/metadata.yaml b/Contributed/BNGPlayground_Examples/cs/cspidcontroller/metadata.yaml new file mode 100644 index 00000000..6fd3d3ef --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/cspidcontroller/metadata.yaml @@ -0,0 +1,24 @@ +id: "cs_pid_controller" +name: "cs pid controller" +description: "PID Controller in BNGL" +contributors: + - name: "Achyudhan" +tags: ["cs", "pid", "controller", "sensor", "accumulator", "leakyerror", "actuator", "disturbance"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/cs_pid_controller.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/cs/csregexnfa/README.md b/Contributed/BNGPlayground_Examples/cs/csregexnfa/README.md new file mode 100644 index 00000000..df65dd15 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/csregexnfa/README.md @@ -0,0 +1,22 @@ +# cs regex nfa + +Model: cs_regex_nfa.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ssa +- Imported from: ai-generated + +## Files + +- cs_regex_nfa.bngl + +## Tags + +cs, regex, nfa, state, char, generate_network, simulate, setparameter diff --git a/Contributed/BNGPlayground_Examples/cs/csregexnfa/cs_regex_nfa.bngl b/Contributed/BNGPlayground_Examples/cs/csregexnfa/cs_regex_nfa.bngl new file mode 100644 index 00000000..3c96beb6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/csregexnfa/cs_regex_nfa.bngl @@ -0,0 +1,64 @@ +# Model: cs_regex_nfa.bngl +# Description: Implements a Regex Matcher using a Nondeterministic Finite Automaton (NFA). +# Matches the regex: (A|B)*C +# NFA states are molecules. Input characters (A,B,C) trigger transitions. +# Match is detected by accumulation in the 'Accept' state. + +begin model + +begin parameters + # Character input rates (Simulation of streaming input) + k_input_A 10.0 + k_input_B 0.0 + k_input_C 0.0 # We'll set this during simulation +end parameters + +begin molecule types + State(s_type~Q0~Q1~Accept) + Char(val~A~B~C) +end molecule types + +begin seed species + State(s_type~Q0) 1.0 +end seed species + +begin observables + Molecules Match State(s_type~Accept) + Molecules Current_Q0 State(s_type~Q0) +end observables + +begin reaction rules + # --- Input Generation (External stream) --- + 0 -> Char(val~A) k_input_A + 0 -> Char(val~B) k_input_B + 0 -> Char(val~C) k_input_C + + # Input molecules decay quickly (Transient signals) + Char() -> 0 100.0 + + # --- NFA Transitions for (A|B)*C --- + # Q0: Start status + # Q0 --A--> Q0 + # Q0 --B--> Q0 + # Q0 --C--> Accept + + Rule_A: State(s_type~Q0) + Char(val~A) -> State(s_type~Q0) 1.0 + Rule_B: State(s_type~Q0) + Char(val~B) -> State(s_type~Q0) 1.0 + Rule_C: State(s_type~Q0) + Char(val~C) -> State(s_type~Accept) 1.0 + + # Note: For (A|B)*C,we stay in Q0 until a C is seen. + # In a real NFA molecules would be consumed/produced to move states. +end reaction rules + +end model + +# --- Actions --- +generate_network({overwrite=>1}) + +# Phase 1: Stream 'A's +simulate({method=>"ssa",t_end=>5,n_steps=>100}) + +# Phase 2: Send 'C' to trigger match +setParameter("k_input_A",0) +setParameter("k_input_C",50) +simulate({method=>"ssa",t_end=>10,n_steps=>100,continue=>1}) diff --git a/Contributed/BNGPlayground_Examples/cs/csregexnfa/metadata.yaml b/Contributed/BNGPlayground_Examples/cs/csregexnfa/metadata.yaml new file mode 100644 index 00000000..03a6ce69 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/cs/csregexnfa/metadata.yaml @@ -0,0 +1,24 @@ +id: "cs_regex_nfa" +name: "cs regex nfa" +description: "Model: cs_regex_nfa.bngl" +contributors: + - name: "Achyudhan" +tags: ["cs", "regex", "nfa", "state", "char", "generate_network", "simulate", "setparameter"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ssa"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/cs_regex_nfa.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/ecology/ecocoevolutionhostparasite/README.md b/Contributed/BNGPlayground_Examples/ecology/ecocoevolutionhostparasite/README.md new file mode 100644 index 00000000..18f82d3f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ecology/ecocoevolutionhostparasite/README.md @@ -0,0 +1,22 @@ +# eco coevolution host parasite + +Model: eco_coevolution_host_parasite.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- eco_coevolution_host_parasite.bngl + +## Tags + +eco, coevolution, host, parasite diff --git a/Contributed/BNGPlayground_Examples/ecology/ecocoevolutionhostparasite/eco_coevolution_host_parasite.bngl b/Contributed/BNGPlayground_Examples/ecology/ecocoevolutionhostparasite/eco_coevolution_host_parasite.bngl new file mode 100644 index 00000000..13ebeb62 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ecology/ecocoevolutionhostparasite/eco_coevolution_host_parasite.bngl @@ -0,0 +1,73 @@ +# Model: eco_coevolution_host_parasite.bngl +# Description: Models the "Red Queen" arms race between a Host and a Parasite. +# Hosts evolve Resistance (Res). Parasites evolve Virulence (Vir). +# Interaction leads to coupled oscillations or escalation. + +begin model + +begin parameters + # Host + h_birth 1.0 + h_death 0.1 + cost_res 0.2 + + # Parasite + p_birth 0.0 + p_trans 0.5 # Transmission + cost_vir 0.2 + + # Interaction + # Infection prob depends on |Res - Vir| mismatch? + # Or matching alleles. + # Let's use simple levels: Low/High +end parameters + +begin molecule types + Host(res~Lo~Hi,state~S~I) + Parasite(vir~Lo~Hi) # Free parasite? Or just property of infection +end molecule types + +begin seed species + Host(res~Lo,state~S) 90 + Host(res~Hi,state~S) 10 + Parasite(vir~Lo) 10 + Parasite(vir~Hi) 10 +end seed species + +begin observables + Molecules H_Lo Host(res~Lo) + Molecules H_Hi Host(res~Hi) + Molecules P_Lo Parasite(vir~Lo) + Molecules P_Hi Parasite(vir~Hi) +end observables + +begin reaction rules + # Host Reproduction + # Lo Res is cheaper (fastergrowth) + Host(res~Lo,state~S) -> Host(res~Lo,state~S) + Host(res~Lo,state~S) h_birth + Host(res~Hi,state~S) -> Host(res~Hi,state~S) + Host(res~Hi,state~S) h_birth * (1-cost_res) + + # Infection + # P(Lo) can infect H(Lo) easily, H(Hi) hard + # P(Hi) can infect H(Hi) easily, but P(Hi) has cost (lowertransmission/survival) + + # P_Lo infects H_Lo + Parasite(vir~Lo) + Host(res~Lo,state~S) -> Parasite(vir~Lo) + Host(res~Lo,state~I) p_trans + + # P_Hi infects H_Hi + Parasite(vir~Hi) + Host(res~Hi,state~S) -> Parasite(vir~Hi) + Host(res~Hi,state~I) p_trans * (1-cost_vir) + + # Parasite Reproduction (fromInfectedHost) + Host(res~Lo,state~I) -> Host(res~Lo,state~I) + Parasite(vir~Lo) 1.0 + Host(res~Hi,state~I) -> Host(res~Hi,state~I) + Parasite(vir~Hi) 1.0 + + # Death + Host() -> 0 h_death + Parasite() -> 0 0.5 # Free parasite decay +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>100,n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/ecology/ecocoevolutionhostparasite/metadata.yaml b/Contributed/BNGPlayground_Examples/ecology/ecocoevolutionhostparasite/metadata.yaml new file mode 100644 index 00000000..eed8aab6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ecology/ecocoevolutionhostparasite/metadata.yaml @@ -0,0 +1,24 @@ +id: "eco_coevolution_host_parasite" +name: "eco coevolution host parasite" +description: "Model: eco_coevolution_host_parasite.bngl" +contributors: + - name: "Achyudhan" +tags: ["eco", "coevolution", "host", "parasite"] +category: "ecology" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/eco_coevolution_host_parasite.bngl" +playground: + visible: false + gallery_category: "ecology" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/ecology/ecofoodwebchaos3sp/README.md b/Contributed/BNGPlayground_Examples/ecology/ecofoodwebchaos3sp/README.md new file mode 100644 index 00000000..3a3a008d --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ecology/ecofoodwebchaos3sp/README.md @@ -0,0 +1,22 @@ +# eco food web chaos 3sp + +Model: eco_food_web_chaos_3sp.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ssa +- Imported from: ai-generated + +## Files + +- eco_food_web_chaos_3sp.bngl + +## Tags + +eco, food, web, chaos, 3sp, r, c, p, k_eat_r, k_eat_c diff --git a/Contributed/BNGPlayground_Examples/ecology/ecofoodwebchaos3sp/eco_food_web_chaos_3sp.bngl b/Contributed/BNGPlayground_Examples/ecology/ecofoodwebchaos3sp/eco_food_web_chaos_3sp.bngl new file mode 100644 index 00000000..3f63d01c --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ecology/ecofoodwebchaos3sp/eco_food_web_chaos_3sp.bngl @@ -0,0 +1,77 @@ +# Model: eco_food_web_chaos_3sp.bngl +# Description: Models a 3-species food chain (Resource -> Consumer -> Predator). +# Demonstrates chaotic dynamics (Hastings-Powell model equivalent). +# Requires specific non-linear functional responses (Type II). + +begin model + +begin parameters + # Resource Growth (Logistic) + r 1.0 + K 100 + + # C eats R + a1 5.0 + b1 3.0 + e1 1.0 # Efficiency + d1 0.4 + + # P eats C + a2 0.1 + b2 2.0 + e2 1.0 + d2 0.01 +end parameters + +begin molecule types + R() # Resource + C() # Consumer + P() # Predator +end molecule types + +begin seed species + R() 50 + C() 10 + P() 5 +end seed species + +begin observables + Molecules Res R() + Molecules Con C() + Molecules Pred P() +end observables + +begin functions + # Type II Functional Response: Rate = a * R * C / (1 + b * R) + # Effective k = a / (1 + b * [R]) + + k_eat_R() = a1 / (1 + b1 * Res) + k_eat_C() = a2 / (1 + b2 * Con) +end functions + +begin reaction rules + # 1. Resource Logistic Growth + R() -> R() + R() r + R() + R() -> R() r/K + + # 2. Consumption of R by C (Type II) + # C + R -> C + C + # Rate constant k depends on [R] via k_eat_R() + C() + R() -> C() + C() k_eat_R() + + # 3. Consumption of C by P + P() + C() -> P() + P() k_eat_C() + + # 4. Death + C() -> 0 d1 + P() -> 0 d2 + # FIX: Add resource dynamics (total R was conserved) + 0 -> R() 1.0 # Resource regeneration + R() -> 0 0.01 # Resource natural decay +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ssa", t_end=>200, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/ecology/ecofoodwebchaos3sp/metadata.yaml b/Contributed/BNGPlayground_Examples/ecology/ecofoodwebchaos3sp/metadata.yaml new file mode 100644 index 00000000..8d609413 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ecology/ecofoodwebchaos3sp/metadata.yaml @@ -0,0 +1,24 @@ +id: "eco_food_web_chaos_3sp" +name: "eco food web chaos 3sp" +description: "Model: eco_food_web_chaos_3sp.bngl" +contributors: + - name: "Achyudhan" +tags: ["eco", "food", "web", "chaos", "3sp", "r", "c", "p", "k_eat_r", "k_eat_c"] +category: "ecology" +compatibility: + bng2_compatible: true + simulation_methods: ["ssa"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/eco_food_web_chaos_3sp.bngl" +playground: + visible: false + gallery_category: "ecology" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/ecology/ecolotkavolterragrid/README.md b/Contributed/BNGPlayground_Examples/ecology/ecolotkavolterragrid/README.md new file mode 100644 index 00000000..330483cb --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ecology/ecolotkavolterragrid/README.md @@ -0,0 +1,22 @@ +# eco lotka volterra grid + +Model: eco_lotka_volterra_grid.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- eco_lotka_volterra_grid.bngl + +## Tags + +eco, lotka, volterra, grid, prey, pred diff --git a/Contributed/BNGPlayground_Examples/ecology/ecolotkavolterragrid/eco_lotka_volterra_grid.bngl b/Contributed/BNGPlayground_Examples/ecology/ecolotkavolterragrid/eco_lotka_volterra_grid.bngl new file mode 100644 index 00000000..5067248a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ecology/ecolotkavolterragrid/eco_lotka_volterra_grid.bngl @@ -0,0 +1,62 @@ +# Model: eco_lotka_volterra_grid.bngl +# Description: Classic Lotka-Volterra Predator-Prey dynamics. +# Prey grows exponentially, Predator eats Prey, Predator dies. +# Implemented on a 2-compartment grid to show migration effects. + +begin model + +begin parameters + # LV Parameters + k_grow 1.0 + k_eat 0.1 + k_die 0.5 + + k_mig 0.1 +end parameters + +begin molecule types + Prey() + Pred() +end molecule types + +begin compartments + Patch1 3 1.0 + Patch2 3 1.0 + # Connected linearly +end compartments + +begin seed species + Prey()@Patch1 50 + Pred()@Patch1 10 + Prey()@Patch2 20 + Pred()@Patch2 5 +end seed species + +begin observables + Molecules Prey1 Prey()@Patch1 + Molecules Pred1 Pred()@Patch1 + Molecules Prey2 Prey()@Patch2 + Molecules Pred2 Pred()@Patch2 +end observables + +begin reaction rules + # Local Dynamics (Same in all patches) + # Prey Growth + Prey() -> Prey() + Prey() k_grow + + # Predation + Pred() + Prey() -> Pred() + Pred() k_eat + + # Predator Death + Pred() -> 0 k_die + + # Migration + Prey()@Patch1 <-> Prey()@Patch2 k_mig, k_mig + Pred()@Patch1 <-> Pred()@Patch2 k_mig, k_mig +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>50, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/ecology/ecolotkavolterragrid/metadata.yaml b/Contributed/BNGPlayground_Examples/ecology/ecolotkavolterragrid/metadata.yaml new file mode 100644 index 00000000..8a19c1ba --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ecology/ecolotkavolterragrid/metadata.yaml @@ -0,0 +1,24 @@ +id: "eco_lotka_volterra_grid" +name: "eco lotka volterra grid" +description: "Model: eco_lotka_volterra_grid.bngl" +contributors: + - name: "Achyudhan" +tags: ["eco", "lotka", "volterra", "grid", "prey", "pred"] +category: "ecology" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/eco_lotka_volterra_grid.bngl" +playground: + visible: false + gallery_category: "ecology" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/ecology/ecomutualismobligate/README.md b/Contributed/BNGPlayground_Examples/ecology/ecomutualismobligate/README.md new file mode 100644 index 00000000..b700799d --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ecology/ecomutualismobligate/README.md @@ -0,0 +1,22 @@ +# eco mutualism obligate + +Model: eco_mutualism_obligate.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ssa +- Imported from: ai-generated + +## Files + +- eco_mutualism_obligate.bngl + +## Tags + +eco, mutualism, obligate, a, b diff --git a/Contributed/BNGPlayground_Examples/ecology/ecomutualismobligate/eco_mutualism_obligate.bngl b/Contributed/BNGPlayground_Examples/ecology/ecomutualismobligate/eco_mutualism_obligate.bngl new file mode 100644 index 00000000..337f3148 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ecology/ecomutualismobligate/eco_mutualism_obligate.bngl @@ -0,0 +1,54 @@ +# Model: eco_mutualism_obligate.bngl +# Description: Models two species (A and B) that essentially require each other to survive. +# Growth of A depends on B, and vice versa. +# Shows Allee effect (collapse below critical density) or stable coexistence. + +begin model + +begin parameters + d_A 0.1 # Death rates + d_B 0.1 + + # Mutualistic growth + # A + B -> A + A + B (B acts as catalyst for A's growth) + k_grow 0.05 + + # Carrying capacity self-limitation + k_lim 0.1 +end parameters + +begin molecule types + A() + B() +end molecule types + +begin seed species + A() 20 + B() 20 +end seed species + +begin observables + Molecules Pop_A A() + Molecules Pop_B B() +end observables + +begin reaction rules + # Growth (Obligate) + # A cannot grow without B + A() + B() -> A() + A() + B() k_grow + B() + A() -> B() + B() + A() k_grow + + # Death + A() -> 0 d_A + B() -> 0 d_B + + # Competition/Crowding (stabilizes explosion) + A() + A() -> A() k_lim + B() + B() -> B() k_lim +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ssa", t_end=>100, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/ecology/ecomutualismobligate/metadata.yaml b/Contributed/BNGPlayground_Examples/ecology/ecomutualismobligate/metadata.yaml new file mode 100644 index 00000000..8f83f55a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ecology/ecomutualismobligate/metadata.yaml @@ -0,0 +1,24 @@ +id: "eco_mutualism_obligate" +name: "eco mutualism obligate" +description: "Model: eco_mutualism_obligate.bngl" +contributors: + - name: "Achyudhan" +tags: ["eco", "mutualism", "obligate", "a", "b"] +category: "ecology" +compatibility: + bng2_compatible: true + simulation_methods: ["ssa"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/eco_mutualism_obligate.bngl" +playground: + visible: false + gallery_category: "ecology" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/ecology/ecorockpaperscissorsspatial/README.md b/Contributed/BNGPlayground_Examples/ecology/ecorockpaperscissorsspatial/README.md new file mode 100644 index 00000000..828a98d0 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ecology/ecorockpaperscissorsspatial/README.md @@ -0,0 +1,22 @@ +# eco rock paper scissors spatial + +Model: eco_rock_paper_scissors_spatial.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- eco_rock_paper_scissors_spatial.bngl + +## Tags + +eco, rock, paper, scissors, spatial, s, generate_network diff --git a/Contributed/BNGPlayground_Examples/ecology/ecorockpaperscissorsspatial/eco_rock_paper_scissors_spatial.bngl b/Contributed/BNGPlayground_Examples/ecology/ecorockpaperscissorsspatial/eco_rock_paper_scissors_spatial.bngl new file mode 100644 index 00000000..a75a28ba --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ecology/ecorockpaperscissorsspatial/eco_rock_paper_scissors_spatial.bngl @@ -0,0 +1,57 @@ +# Model: eco_rock_paper_scissors_spatial.bngl +# Description: Models cyclic dominance (A beats B, B beats C, C beats A) in a population. +# Demonstrates how spatial interactions can maintain biodiversity (spiral waves) +# even when the mean field approximation predicts extinction or oscillation. + +begin model + +begin parameters + k_kill 1.0 # Predation rate + k_birth 1.0 # Reproduction rate + k_move 0.1 # Diffusion + Vol 100 +end parameters + +begin molecule types + S(s_type~R~P~S) # Rock, Paper, Scissors +end molecule types + +begin seed species + # Random initial population + S(s_type~R) 33 + S(s_type~P) 33 + S(s_type~S) 33 +end seed species + +begin observables + Molecules Rock S(s_type~R) + Molecules Paper S(s_type~P) + Molecules Scissors S(s_type~S) +end observables + +begin reaction rules + # Predation (Replacement?) + # A + B -> A + A (A eats B and reproduces) + # Rock beats Scissors + S(s_type~R) + S(s_type~S) -> S(s_type~R) + S(s_type~R) k_kill + + # Scissors beats Paper + S(s_type~S) + S(s_type~P) -> S(s_type~S) + S(s_type~S) k_kill + + # Paper beats Rock + S(s_type~P) + S(s_type~R) -> S(s_type~P) + S(s_type~P) k_kill + + # Death / Turnover (optional, to prevent explosion) + # S(s_type~R) -> 0 0.1 + # But replacement rule keeps population constant? Yes, A+B->2A preserves N=2. + + # For spatial effects (if we had grid), we need diffusion. + # Here in well-mixed (ODE/SSA), we expect oscillations. + +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>100, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/ecology/ecorockpaperscissorsspatial/metadata.yaml b/Contributed/BNGPlayground_Examples/ecology/ecorockpaperscissorsspatial/metadata.yaml new file mode 100644 index 00000000..81509c0a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ecology/ecorockpaperscissorsspatial/metadata.yaml @@ -0,0 +1,24 @@ +id: "eco_rock_paper_scissors_spatial" +name: "eco rock paper scissors spatial" +description: "Model: eco_rock_paper_scissors_spatial.bngl" +contributors: + - name: "Achyudhan" +tags: ["eco", "rock", "paper", "scissors", "spatial", "s", "generate_network"] +category: "ecology" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/eco_rock_paper_scissors_spatial.bngl" +playground: + visible: false + gallery_category: "ecology" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/energy/energyallosterymwc/README.md b/Contributed/BNGPlayground_Examples/energy/energyallosterymwc/README.md new file mode 100644 index 00000000..85c52ef5 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/energy/energyallosterymwc/README.md @@ -0,0 +1,22 @@ +# energy allostery mwc + +Model: energy_allostery_mwc.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- energy_allostery_mwc.bngl + +## Tags + +energy, allostery, mwc, p, l diff --git a/Contributed/BNGPlayground_Examples/energy/energyallosterymwc/energy_allostery_mwc.bngl b/Contributed/BNGPlayground_Examples/energy/energyallosterymwc/energy_allostery_mwc.bngl new file mode 100644 index 00000000..5088ee77 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/energy/energyallosterymwc/energy_allostery_mwc.bngl @@ -0,0 +1,84 @@ +# Model: energy_allostery_mwc.bngl +# Description: Implements the classic Monod-Wyman-Changeux (MWC) model of allostery using energy patterns. +# Receptor P exists in T (Tense, low affinity) and R (Relaxed, high affinity) states. +# Ligand binding shifts the equilibrium towards the R state. + +begin model + +begin parameters + # --- MWC Energy Parameters --- + # T state is lower energy (more stable) in absence of ligand + G_T 0 + G_R 2.0 # R state cost + + # Ligand binding energies + # R state binds Ligand tightly (more negative G) + G_bind_R -8.0 + # T state binds Ligand weakly + G_bind_T -2.0 + + # --- Kinetics Barriers --- + Ea_conf 3.0 # Barrier for T <-> R transition + Ea_bind 2.0 # Barrier for Ligand binding + + RT 1.0 + phi 0.5 + + # --- Initial Conditions --- + L_tot 100 + P_tot 50 +end parameters + +begin molecule types + # P: Protein with 2 binding sites 's' and conformational state 'c' + P(s,s,c~T~R) + L(r) +end molecule types + +begin seed species + P(s,s,c~T) P_tot # Start predominantly in T state + L(r) L_tot +end seed species + +begin observables + Molecules P_Total P() # Note: constant total (conserved) P() + Molecules P_T P(c~T) + Molecules P_R P(c~R) + Molecules Bound_L L(r!+) + Molecules Fully_Bound_R P(c~R,s!+,s!+) +end observables + +begin energy patterns + # Energy of the conformational states + P(c~T) G_T + P(c~R) G_R + + # Binding energy depends on the conformation of P + # If P is in state R, bond energy is G_bind_R + # If P is in state T, bond energy is G_bind_T + # BioNetGen automatically applies the correct term based on the match + P(c~R,s!1).L(r!1) G_bind_R + P(c~T,s!1).L(r!1) G_bind_T + + # Free Ligand reference energy + L(r) 0 +end energy patterns + +begin reaction rules + # 1. Conformational Change P(T) <-> P(R) + # The rate is governed by the energy difference between the entire complex in T vs R state. + # As ligands bind, the R state becomes more favorable due to G_bind_R < G_bind_T. + P(c~T) <-> P(c~R) Arrhenius(phi, Ea_conf) + + # 2. Ligand Binding + # We write a generic binding rule P(s) + L(r). + # The 'Arrhenius' rate law uses the energy patterns to determine the specific Delta G + # for T-binding vs R-binding. + P(s) + L(r) <-> P(s!1).L(r!1) Arrhenius(phi, Ea_bind) +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>20, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/energy/energyallosterymwc/metadata.yaml b/Contributed/BNGPlayground_Examples/energy/energyallosterymwc/metadata.yaml new file mode 100644 index 00000000..e1708821 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/energy/energyallosterymwc/metadata.yaml @@ -0,0 +1,24 @@ +id: "energy_allostery_mwc" +name: "energy allostery mwc" +description: "Model: energy_allostery_mwc.bngl" +contributors: + - name: "Achyudhan" +tags: ["energy", "allostery", "mwc", "p", "l"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: true + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/energy_allostery_mwc.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/energy/energycatalysismm/README.md b/Contributed/BNGPlayground_Examples/energy/energycatalysismm/README.md new file mode 100644 index 00000000..db09080b --- /dev/null +++ b/Contributed/BNGPlayground_Examples/energy/energycatalysismm/README.md @@ -0,0 +1,22 @@ +# energy catalysis mm + +Model: energy_catalysis_mm.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- energy_catalysis_mm.bngl + +## Tags + +energy, catalysis, mm, e, s, p diff --git a/Contributed/BNGPlayground_Examples/energy/energycatalysismm/energy_catalysis_mm.bngl b/Contributed/BNGPlayground_Examples/energy/energycatalysismm/energy_catalysis_mm.bngl new file mode 100644 index 00000000..fea38e3a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/energy/energycatalysismm/energy_catalysis_mm.bngl @@ -0,0 +1,76 @@ +# Model: energy_catalysis_mm.bngl +# Description: Implements Michaelis-Menten enzyme kinetics (E + S <-> ES -> E + P) using an explicit energy landscape. +# Defines energies for S, E, ES complex, and P. + +begin model + +begin parameters + # --- Thermodynamic Landscape --- + # Substrate S is higher energy than Product P + G_S 0 + G_P -10.0 # Reaction S -> P is exergonic + G_E 0 # Enzyme reference energy + + # Intermediate ES Complex Energy + # Typically lower than E+S to favor binding + G_ES -5.0 + + # --- Kinetic Barriers --- + Ea_bind 2.0 # Barrier for E+S <-> ES + Ea_cat 3.0 # Barrier for ES <-> E+P (catalytic step) + + RT 1.0 + phi 0.5 + + # --- Concentrations --- + Stot 200 + Etot 20 +end parameters + +begin molecule types + E(s) # Enzyme with substrate binding site + S(e) # Substrate with enzyme binding site + P(e) # Product with enzyme binding site (for reversibility) +end molecule types + +begin seed species + E(s) Etot + S(e) Stot + P(e) 0 +end seed species + +begin observables + Molecules Product P() + Molecules Substrate S() + Molecules Enzyme_Free E(s) + Molecules Enzyme_Substrate E(s!1).S(e!1) +end observables + +begin energy patterns + # Single molecule energies + E(s) G_E + S(e) G_S + P(e) G_P + + # Complex Energy + # This overrides the sum of individual energies for the complex + # Binding Energy = G_ES - (G_E + G_S) = -5 - 0 = -5 + E(s!1).S(e!1) G_ES +end energy patterns + +begin reaction rules + # 1. Substrate Binding: E + S <-> ES + # Rate determined by barrier Ea_bind relative to (G_E + G_S) vs G_ES + E(s) + S(e) <-> E(s!1).S(e!1) Arrhenius(phi, Ea_bind) + + # 2. Catalysis: ES <-> E + P + # Rate determined by barrier Ea_cat relative to G_ES vs (G_E + G_P) + # This also naturally handles the reverse validation (Product Inhibition) + E(s!1).S(e!1) <-> E(s) + P(e) Arrhenius(phi, Ea_cat) +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>50, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/energy/energycatalysismm/metadata.yaml b/Contributed/BNGPlayground_Examples/energy/energycatalysismm/metadata.yaml new file mode 100644 index 00000000..53030a53 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/energy/energycatalysismm/metadata.yaml @@ -0,0 +1,24 @@ +id: "energy_catalysis_mm" +name: "energy catalysis mm" +description: "Model: energy_catalysis_mm.bngl" +contributors: + - name: "Achyudhan" +tags: ["energy", "catalysis", "mm", "e", "s", "p"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: true + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/energy_catalysis_mm.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/energy/energycooperativityadh/README.md b/Contributed/BNGPlayground_Examples/energy/energycooperativityadh/README.md new file mode 100644 index 00000000..e8f971d8 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/energy/energycooperativityadh/README.md @@ -0,0 +1,22 @@ +# energy cooperativity adh + +Model: energy_cooperativity_adh.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- energy_cooperativity_adh.bngl + +## Tags + +energy, cooperativity, adh, r, l diff --git a/Contributed/BNGPlayground_Examples/energy/energycooperativityadh/energy_cooperativity_adh.bngl b/Contributed/BNGPlayground_Examples/energy/energycooperativityadh/energy_cooperativity_adh.bngl new file mode 100644 index 00000000..566fd3bf --- /dev/null +++ b/Contributed/BNGPlayground_Examples/energy/energycooperativityadh/energy_cooperativity_adh.bngl @@ -0,0 +1,71 @@ +# Model: energy_cooperativity_adh.bngl +# Description: Models ligand binding to a receptor with two sites using energy patterns to implement cooperativity. +# Binding of the first ligand makes binding of the second ligand more favorable (negative cooperativity energy). + +begin model + +begin parameters + # --- Energy Parameters --- + G_L 0 # Free ligand energy + G_R 0 # Free receptor energy + + # Binding energy contribution per bond + G_bind -5.0 + + # Cooperative interaction energy + # G_coop < 0 implies positive cooperativity (stabilizes double bound state) + G_coop -3.0 + + Ea_bind 2.0 # Activation barrier for binding + RT 1.0 + phi 0.5 + + # --- Concentrations --- + L_tot 200 + R_tot 50 +end parameters + +begin molecule types + R(s,s) # Receptor with two identical binding sites + L(r) # Ligand +end molecule types + +begin seed species + R(s,s) R_tot + L(r) L_tot +end seed species + +begin observables + Molecules Bound_0 R(s,s) + Molecules Bound_1 R(s!+,s) + Molecules Bound_2 R(s!+,s!+) + Molecules L_free L(r) +end observables + +begin energy patterns + # Base energies for components + L(r) G_L + R(s) G_R + + # Energy associated with the bond R(s!1).L(r!1) + # This applies to EACH instance of the bond matches + R(s!1).L(r!1) G_bind + + # Cooperative energy term + # This pattern matches ONLY when BOTH sites on R are bound + # It adds an extra energy term G_coop to the system energy + # This lowers the energy of the doubly-bound state, making the second binding step faster/more affinity + R(s!+,s!+) G_coop +end energy patterns + +begin reaction rules + # Single reaction rule covers both binding steps + # The rate for the second binding will be automatically adjusted by G_coop + R(s) + L(r) <-> R(s!1).L(r!1) Arrhenius(phi, Ea_bind) +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>10, n_steps=>100}) diff --git a/Contributed/BNGPlayground_Examples/energy/energycooperativityadh/metadata.yaml b/Contributed/BNGPlayground_Examples/energy/energycooperativityadh/metadata.yaml new file mode 100644 index 00000000..c0484403 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/energy/energycooperativityadh/metadata.yaml @@ -0,0 +1,24 @@ +id: "energy_cooperativity_adh" +name: "energy cooperativity adh" +description: "Model: energy_cooperativity_adh.bngl" +contributors: + - name: "Achyudhan" +tags: ["energy", "cooperativity", "adh", "r", "l"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: true + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/energy_cooperativity_adh.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/energy/energylinearchain/README.md b/Contributed/BNGPlayground_Examples/energy/energylinearchain/README.md new file mode 100644 index 00000000..4da1047c --- /dev/null +++ b/Contributed/BNGPlayground_Examples/energy/energylinearchain/README.md @@ -0,0 +1,22 @@ +# energy linear chain + +Model: energy_linear_chain.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- energy_linear_chain.bngl + +## Tags + +energy, linear, chain, m, generate_network diff --git a/Contributed/BNGPlayground_Examples/energy/energylinearchain/energy_linear_chain.bngl b/Contributed/BNGPlayground_Examples/energy/energylinearchain/energy_linear_chain.bngl new file mode 100644 index 00000000..ebec55e3 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/energy/energylinearchain/energy_linear_chain.bngl @@ -0,0 +1,57 @@ +# Model: energy_linear_chain.bngl +# Description: Demonstrates a 3-state linear reaction chain (A <-> B <-> C) governed by an energy landscape. +# The intermediate state B is energetically favorable but has barriers to enter/exit. +# Uses Arrhenius kinetics to derive rates from energy differences. + +begin model + +begin parameters + # --- Energy Parameters (arbitrary units, e.g. kcal/mol) --- + # Ground state energies for species + G_A 0 # Reference state + G_B -2.0 # Intermediate B is more stable than A + G_C -5.0 # Product C is most stable (thermodynamic sink) + + # Intrinsic activation barriers (added to Delta G) + Ea_AB 5.0 # Barrier for A <-> B + Ea_BC 4.0 # Barrier for B <-> C + + # --- System Parameters --- + RT 1.0 # Product of Gas Constant and Temperature + phi 0.5 # Distribution factor (0.5 splits energy diff between forward/reverse barrier) +end parameters + +begin molecule types + M(state~A~B~C) # Molecule M can be in state A, B, or C +end molecule types + +begin seed species + M(state~A) 100 # Start with all M in state A +end seed species + +begin observables + Molecules A M(state~A) + Molecules B M(state~B) + Molecules C M(state~C) +end observables + +begin energy patterns + # Map molecule states to their ground energies + M(state~A) G_A + M(state~B) G_B + M(state~C) G_C +end energy patterns + +begin reaction rules + # Transitions governed by Arrhenius kinetics + # Rate = A * exp(-(Ea + phi*DeltaG)/RT) (Simplified view) + # BioNetGen calculates precise rates based on energy difference of products - reactants + M(state~A) <-> M(state~B) Arrhenius(phi, Ea_AB) + M(state~B) <-> M(state~C) Arrhenius(phi, Ea_BC) +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>50, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/energy/energylinearchain/metadata.yaml b/Contributed/BNGPlayground_Examples/energy/energylinearchain/metadata.yaml new file mode 100644 index 00000000..e5a40045 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/energy/energylinearchain/metadata.yaml @@ -0,0 +1,24 @@ +id: "energy_linear_chain" +name: "energy linear chain" +description: "Model: energy_linear_chain.bngl" +contributors: + - name: "Achyudhan" +tags: ["energy", "linear", "chain", "m", "generate_network"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: true + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/energy_linear_chain.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/energy/energytransportpump/README.md b/Contributed/BNGPlayground_Examples/energy/energytransportpump/README.md new file mode 100644 index 00000000..89e82f16 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/energy/energytransportpump/README.md @@ -0,0 +1,22 @@ +# energy transport pump + +Model: energy_transport_pump.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- energy_transport_pump.bngl + +## Tags + +energy, transport, pump, a, atp, adp, pi, t diff --git a/Contributed/BNGPlayground_Examples/energy/energytransportpump/energy_transport_pump.bngl b/Contributed/BNGPlayground_Examples/energy/energytransportpump/energy_transport_pump.bngl new file mode 100644 index 00000000..1adbfd74 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/energy/energytransportpump/energy_transport_pump.bngl @@ -0,0 +1,85 @@ +# Model: energy_transport_pump.bngl +# Description: Models an active transport pump (T) that moves substrate A against its chemical potential gradient. +# The process is driven by the hydrolysis of ATP. +# Overall reaction: A(out) + ATP -> A(in) + ADP + Pi +# Illustrates how coupling to a high-energy reaction can drive an unfavorable transition. + +begin model + +begin parameters + # --- Transport & Chemical Energies --- + # A(out) is the ground/low energy state + G_A_out 0 + # A(in) is the high energy state (concentration gradient or electrical potential) + G_A_in 5.0 + + # ATP Hydrolysis Energies (High Energy) + G_ATP 10.0 + G_ADP 0.0 + G_Pi 0.0 + + # Activation barrier for the coupled transport cycle + Ea_transport 2.0 + + # System + RT 1.0 + phi 0.5 + + # --- Concentrations --- + Atot 100 + ATP_conc 500 # High ATP pool + ADP_conc 10 + Pi_conc 10 +end parameters + +begin molecule types + A(loc~in~out) # Substrate A with location state + ATP() + ADP() + Pi() + T(a) # Transporter Enzyme +end molecule types + +begin seed species + A(loc~out) Atot # Start with all A outside + ATP() ATP_conc + ADP() ADP_conc + Pi() Pi_conc + T(a) 10 # Limited number of transporters +end seed species + +begin observables + Molecules A_in A(loc~in) + Molecules A_out A(loc~out) + Molecules Energy_Source ATP() +end observables + +begin energy patterns + # Define energies for reactants and products + A(loc~out) G_A_out + A(loc~in) G_A_in + ATP() G_ATP + ADP() G_ADP + Pi() G_Pi + # Transporter is catalyst, G_T cancels out on both sides +end energy patterns + +begin reaction rules + # Coupled Transport Rule + # Reactants: T + A(out) + ATP + # Products: T + A(in) + ADP + Pi + # Delta G = (G_A_in + G_ADP + G_Pi) - (G_A_out + G_ATP) + # = (5 + 0 + 0) - (0 + 10) = -5.0 + # Since Delta G is negative, the forward reaction is spontaneous. + T(a) + A(loc~out) + ATP() <-> T(a) + A(loc~in) + ADP() + Pi() Arrhenius(phi, Ea_transport) + + # Passive Leak Channel (Backflow) + # A(in) -> A(out) is favorable (Delta G = -5), but we put a high barrier to minimize it. + A(loc~in) <-> A(loc~out) Arrhenius(phi, 8.0) +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>20, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/energy/energytransportpump/metadata.yaml b/Contributed/BNGPlayground_Examples/energy/energytransportpump/metadata.yaml new file mode 100644 index 00000000..8b05e06f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/energy/energytransportpump/metadata.yaml @@ -0,0 +1,24 @@ +id: "energy_transport_pump" +name: "energy transport pump" +description: "Model: energy_transport_pump.bngl" +contributors: + - name: "Achyudhan" +tags: ["energy", "transport", "pump", "a", "atp", "adp", "pi", "t"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: true + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/energy_transport_pump.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/feature-demos/featurefunctionalratesvolume/README.md b/Contributed/BNGPlayground_Examples/feature-demos/featurefunctionalratesvolume/README.md new file mode 100644 index 00000000..2c88064a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/feature-demos/featurefunctionalratesvolume/README.md @@ -0,0 +1,22 @@ +# feature functional rates volume + +Model: feature_functional_rates_volume.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- feature_functional_rates_volume.bngl + +## Tags + +feature, functional, rates, volume, a, b, c diff --git a/Contributed/BNGPlayground_Examples/feature-demos/featurefunctionalratesvolume/feature_functional_rates_volume.bngl b/Contributed/BNGPlayground_Examples/feature-demos/featurefunctionalratesvolume/feature_functional_rates_volume.bngl new file mode 100644 index 00000000..d223f2dd --- /dev/null +++ b/Contributed/BNGPlayground_Examples/feature-demos/featurefunctionalratesvolume/feature_functional_rates_volume.bngl @@ -0,0 +1,53 @@ +# Model: feature_functional_rates_volume.bngl +# Description: Demonstrates rate laws that depend on compartment volume or density. +# Rate = k * [A] * [B] / Volume (for bimolecular in some conventions) +# Here we explicitly use Volume variable. + +begin model + +begin parameters + Vol 10.0 + k_bi 0.01 + k_uni 0.1 +end parameters + +begin molecule types + A() + B() + C() +end molecule types + +begin compartments + Cell 3 Vol +end compartments + +begin seed species + A()@Cell 100 + B()@Cell 100 + C()@Cell 0 +end seed species + +begin observables + Molecules Product C()@Cell +end observables + +begin reaction rules + # Standard bimolecular reaction + # BNGL automatically scales by volume if compartments are used: + # Rate = k * (N_A * N_B) / (Vol * NA) typically. + # Here we show standard syntax. + A() + B() -> C() k_bi + + # What if we want rate to depend on crowding (Total Density)? + # Rate = k * [A] * VolumeFactor() + # Not easily shown without custom function. + + # 2. Reverse + C() -> A() + B() k_uni +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>400, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/feature-demos/featurefunctionalratesvolume/metadata.yaml b/Contributed/BNGPlayground_Examples/feature-demos/featurefunctionalratesvolume/metadata.yaml new file mode 100644 index 00000000..d630f1e5 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/feature-demos/featurefunctionalratesvolume/metadata.yaml @@ -0,0 +1,24 @@ +id: "feature_functional_rates_volume" +name: "feature functional rates volume" +description: "Model: feature_functional_rates_volume.bngl" +contributors: + - name: "Achyudhan" +tags: ["feature", "functional", "rates", "volume", "a", "b", "c"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/feature_functional_rates_volume.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/feature-demos/featureglobalfunctionsscan/README.md b/Contributed/BNGPlayground_Examples/feature-demos/featureglobalfunctionsscan/README.md new file mode 100644 index 00000000..cc79ff5e --- /dev/null +++ b/Contributed/BNGPlayground_Examples/feature-demos/featureglobalfunctionsscan/README.md @@ -0,0 +1,22 @@ +# feature global functions scan + +Model: feature_global_functions_scan.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- feature_global_functions_scan.bngl + +## Tags + +feature, global, functions, scan, signal, response, stimulus diff --git a/Contributed/BNGPlayground_Examples/feature-demos/featureglobalfunctionsscan/feature_global_functions_scan.bngl b/Contributed/BNGPlayground_Examples/feature-demos/featureglobalfunctionsscan/feature_global_functions_scan.bngl new file mode 100644 index 00000000..509d20f3 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/feature-demos/featureglobalfunctionsscan/feature_global_functions_scan.bngl @@ -0,0 +1,59 @@ +# Model: feature_global_functions_scan.bngl +# Description: Demonstrates the use of Global Functions that depend on the built-in 'time' variable. +# This allows creating dynamic inputs (e.g., sine waves) for the system. + +begin model + +begin parameters + # Amplitude and Frequency of input signal + Amp 100 + Freq 0.5 + Phase 0 + k_resp 0.1 + k_decay 0.1 + t 0 # Time variable +end parameters + +begin molecule types + Signal() + Response() +end molecule types + +begin seed species + Signal() 0 + Response() 0 +end seed species + +begin observables + Molecules Input Signal() + Molecules Output Response() +end observables + +begin functions + # Time-dependent stimulus function + # Note: 'time' is a reserved variable in BNGL simulations + Stimulus() = Amp * (sin(Freq * t + Phase) + 1.0) / 2.0 +end functions + +begin reaction rules + # 1. Drive Signal based on Function + # We want [Signal] to track Stimulus(). + # This is tricky with reaction rules. + # Approach A: Synthesis rate = Stimulus() + # 0 -> Signal() Stimulus() + # Signal() -> 0 k_fast + # Result: [Signal] ~ Stimulus()/k_fast + + 0 -> Signal() Stimulus() + Signal() -> 0 1.0 # Fast decay to track input + + # 2. System Response to Signal + Signal() -> Signal() + Response() k_resp + Response() -> 0 k_decay +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>50, n_steps=>500}) diff --git a/Contributed/BNGPlayground_Examples/feature-demos/featureglobalfunctionsscan/metadata.yaml b/Contributed/BNGPlayground_Examples/feature-demos/featureglobalfunctionsscan/metadata.yaml new file mode 100644 index 00000000..9a201e3e --- /dev/null +++ b/Contributed/BNGPlayground_Examples/feature-demos/featureglobalfunctionsscan/metadata.yaml @@ -0,0 +1,24 @@ +id: "feature_global_functions_scan" +name: "feature global functions scan" +description: "Model: feature_global_functions_scan.bngl" +contributors: + - name: "Achyudhan" +tags: ["feature", "global", "functions", "scan", "signal", "response", "stimulus"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/feature_global_functions_scan.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/feature-demos/featurelocalfunctionsexplicit/README.md b/Contributed/BNGPlayground_Examples/feature-demos/featurelocalfunctionsexplicit/README.md new file mode 100644 index 00000000..cd7e00b6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/feature-demos/featurelocalfunctionsexplicit/README.md @@ -0,0 +1,22 @@ +# feature local functions explicit + +Model: feature_local_functions_explicit.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ssa +- Imported from: ai-generated + +## Files + +- feature_local_functions_explicit.bngl + +## Tags + +feature, local, functions, explicit, s, p, e, mm_rate, ratelaw diff --git a/Contributed/BNGPlayground_Examples/feature-demos/featurelocalfunctionsexplicit/feature_local_functions_explicit.bngl b/Contributed/BNGPlayground_Examples/feature-demos/featurelocalfunctionsexplicit/feature_local_functions_explicit.bngl new file mode 100644 index 00000000..0b50b221 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/feature-demos/featurelocalfunctionsexplicit/feature_local_functions_explicit.bngl @@ -0,0 +1,68 @@ +# Model: feature_local_functions_explicit.bngl +# Description: Demonstrates the use of Local Functions within reaction rules. +# Local functions can access properties of the specific reactants involved in a rule match. +# However, standard BNGL 'functions' block are global. +# "Local functions" usually refers to rate laws defined as functions of reactant attributes. +# Here we show a function rate law that depends on a global observable or complex expression. + +begin model + +begin parameters + k_base 1.0 + K_mk 50.0 # Saturation constant +end parameters + +begin molecule types + S() + P() + E() +end molecule types + +begin seed species + S() 100 + E() 10 + P() 0 +end seed species + +begin observables + Molecules S_conc S() + Molecules P_conc P() +end observables + +begin functions + # Function of observable + MM_Rate() = k_base * S_conc / (K_mk + S_conc) + RateLaw() = k_base / (1.0 + P_conc) +end functions + +begin reaction rules + # Rule using the function + # E acts as catalyst but we just use it in the rate law for demonstration + # S -> P Rate Law: MM_Rate() + # Note: If we use MM_Rate() which has units of rate (conc/time or counts/time), + # and the rule is S -> P which is 1st order in S, we need to be careful. + # If we want Rate = MM_Rate(), then mass action S cancels out? + # BNGL uses the value of the function as the rate constant k. + # So Propensity = k * [S]. + # If we want Propensity = MM_Rate(), we can set rule as: + # 0 -> P MM_Rate() + # But this doesn't consume S. + + # To consume S with specific propensity, we can use 0 -> P + S_consumption... + # Or just S -> P with rate k = MM_Rate() / [S] ? Unstable if S=0. + + # Standard usage: Modulating a rate constant. + # E + S -> E + P k_base + # Let's make rate depend on P (Product Inhibition): + # k_eff = k_base / (1 + [P]) + + E() + S() -> E() + P() RateLaw() +end reaction rules + + + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ssa", t_end=>20, n_steps=>100}) diff --git a/Contributed/BNGPlayground_Examples/feature-demos/featurelocalfunctionsexplicit/metadata.yaml b/Contributed/BNGPlayground_Examples/feature-demos/featurelocalfunctionsexplicit/metadata.yaml new file mode 100644 index 00000000..5b424971 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/feature-demos/featurelocalfunctionsexplicit/metadata.yaml @@ -0,0 +1,24 @@ +id: "feature_local_functions_explicit" +name: "feature local functions explicit" +description: "Model: feature_local_functions_explicit.bngl" +contributors: + - name: "Achyudhan" +tags: ["feature", "local", "functions", "explicit", "s", "p", "e", "mm_rate", "ratelaw"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ssa"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/feature_local_functions_explicit.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/feature-demos/featuresymmetryfactorscyclic/README.md b/Contributed/BNGPlayground_Examples/feature-demos/featuresymmetryfactorscyclic/README.md new file mode 100644 index 00000000..5a60377f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/feature-demos/featuresymmetryfactorscyclic/README.md @@ -0,0 +1,22 @@ +# feature symmetry factors cyclic + +Model: feature_symmetry_factors_cyclic.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- feature_symmetry_factors_cyclic.bngl + +## Tags + +feature, symmetry, factors, cyclic, x, generate_network, simulate diff --git a/Contributed/BNGPlayground_Examples/feature-demos/featuresymmetryfactorscyclic/feature_symmetry_factors_cyclic.bngl b/Contributed/BNGPlayground_Examples/feature-demos/featuresymmetryfactorscyclic/feature_symmetry_factors_cyclic.bngl new file mode 100644 index 00000000..c3c93a2b --- /dev/null +++ b/Contributed/BNGPlayground_Examples/feature-demos/featuresymmetryfactorscyclic/feature_symmetry_factors_cyclic.bngl @@ -0,0 +1,39 @@ +# Model: feature_symmetry_factors_cyclic.bngl +# Description: Demonstrates a cyclic reaction network where symmetry factors are important. +# A <-> B <-> C <-> A +# Checks if detailed balance holds (product of forward rates = product of reverse rates) +# and how BNGL handles symmetric species. + +begin model + +begin parameters + k_f 1.0 + k_r 1.0 +end parameters + +begin molecule types + X(s~A~B~C) +end molecule types + +begin seed species + X(s~A) 100 +end seed species + +begin observables + Molecules A X(s~A) + Molecules B X(s~B) + Molecules C X(s~C) +end observables + +begin reaction rules + # Cyclic loop + X(s~A) <-> X(s~B) k_f, k_r + X(s~B) <-> X(s~C) k_f, k_r + X(s~C) <-> X(s~A) k_f, k_r +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>20, n_steps=>100}) diff --git a/Contributed/BNGPlayground_Examples/feature-demos/featuresymmetryfactorscyclic/metadata.yaml b/Contributed/BNGPlayground_Examples/feature-demos/featuresymmetryfactorscyclic/metadata.yaml new file mode 100644 index 00000000..8529da6d --- /dev/null +++ b/Contributed/BNGPlayground_Examples/feature-demos/featuresymmetryfactorscyclic/metadata.yaml @@ -0,0 +1,24 @@ +id: "feature_symmetry_factors_cyclic" +name: "feature symmetry factors cyclic" +description: "Model: feature_symmetry_factors_cyclic.bngl" +contributors: + - name: "Achyudhan" +tags: ["feature", "symmetry", "factors", "cyclic", "x", "generate_network", "simulate"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/feature_symmetry_factors_cyclic.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/feature-demos/featuresynthesisdegradationss/README.md b/Contributed/BNGPlayground_Examples/feature-demos/featuresynthesisdegradationss/README.md new file mode 100644 index 00000000..b2fcb3a4 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/feature-demos/featuresynthesisdegradationss/README.md @@ -0,0 +1,22 @@ +# feature synthesis degradation ss + +Model: feature_synthesis_degradation_ss.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- feature_synthesis_degradation_ss.bngl + +## Tags + +feature, synthesis, degradation, ss, m, generate_network, simulate diff --git a/Contributed/BNGPlayground_Examples/feature-demos/featuresynthesisdegradationss/feature_synthesis_degradation_ss.bngl b/Contributed/BNGPlayground_Examples/feature-demos/featuresynthesisdegradationss/feature_synthesis_degradation_ss.bngl new file mode 100644 index 00000000..bdd00461 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/feature-demos/featuresynthesisdegradationss/feature_synthesis_degradation_ss.bngl @@ -0,0 +1,38 @@ +# Model: feature_synthesis_degradation_ss.bngl +# Description: Demonstrates basic zero-order synthesis (0 -> M) and first-order degradation (M -> 0). +# Shows approach to steady state. + +begin model + +begin parameters + k_syn 10.0 # Synthesis rate (M/s or molecules/s) + k_deg 0.1 # Degradation rate constant (1/s) +end parameters + +begin molecule types + M() +end molecule types + +begin seed species + M() 0 +end seed species + +begin observables + Molecules Total_M M() +end observables + +begin reaction rules + # 1. Synthesis + # Source is infinite (0). Rate is constant k_syn. + 0 -> M() k_syn + + # 2. Degradation + # Sink is infinite/null (0). Rate is k_deg * [M]. + M() -> 0 k_deg +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>100, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/feature-demos/featuresynthesisdegradationss/metadata.yaml b/Contributed/BNGPlayground_Examples/feature-demos/featuresynthesisdegradationss/metadata.yaml new file mode 100644 index 00000000..b0d4dbca --- /dev/null +++ b/Contributed/BNGPlayground_Examples/feature-demos/featuresynthesisdegradationss/metadata.yaml @@ -0,0 +1,24 @@ +id: "feature_synthesis_degradation_ss" +name: "feature synthesis degradation ss" +description: "Model: feature_synthesis_degradation_ss.bngl" +contributors: + - name: "Achyudhan" +tags: ["feature", "synthesis", "degradation", "ss", "m", "generate_network", "simulate"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/feature_synthesis_degradation_ss.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/generative/gmgameoflife/README.md b/Contributed/BNGPlayground_Examples/generative/gmgameoflife/README.md new file mode 100644 index 00000000..502011b9 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/generative/gmgameoflife/README.md @@ -0,0 +1,22 @@ +# gm game of life + +Model: gm_game_of_life.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ssa +- Imported from: ai-generated + +## Files + +- gm_game_of_life.bngl + +## Tags + +gm, game, of, life, cell diff --git a/Contributed/BNGPlayground_Examples/generative/gmgameoflife/gm_game_of_life.bngl b/Contributed/BNGPlayground_Examples/generative/gmgameoflife/gm_game_of_life.bngl new file mode 100644 index 00000000..c429b674 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/generative/gmgameoflife/gm_game_of_life.bngl @@ -0,0 +1,127 @@ +# Model: gm_game_of_life.bngl +# Description: Implements Conway's Game of Life on a 3x3 torus. +# Cells are molecules with (x,y) states. +# Demonstrates neighbor-counting and threshold logic in BNGL. + +begin model + +begin parameters + # Growth/Death rates (step-like integration) + k_step 10.0 +end parameters + +begin molecule types + Cell(x~1~2~3,y~1~2~3,state~DEAD~ALIVE) +end molecule types + +begin seed species + # Glider initialization (approximate for 3x3 torus) + Cell(x~1,y~1,state~DEAD) 1.0 + Cell(x~2,y~1,state~ALIVE) 1.0 + Cell(x~3,y~1,state~DEAD) 1.0 + + Cell(x~1,y~2,state~DEAD) 1.0 + Cell(x~2,y~2,state~DEAD) 1.0 + Cell(x~3,y~2,state~ALIVE) 1.0 + + Cell(x~1,y~3,state~ALIVE) 1.0 + Cell(x~2,y~3,state~ALIVE) 1.0 + Cell(x~3,y~3,state~ALIVE) 1.0 +end seed species + +begin observables + Molecules Alive_Count Cell(state~ALIVE) + # Individual cells + Molecules C11 Cell(x~1,y~1,state~ALIVE) + Molecules C12 Cell(x~1,y~2,state~ALIVE) + Molecules C13 Cell(x~1,y~3,state~ALIVE) + Molecules C21 Cell(x~2,y~1,state~ALIVE) + Molecules C22 Cell(x~2,y~2,state~ALIVE) + Molecules C23 Cell(x~2,y~3,state~ALIVE) + Molecules C31 Cell(x~3,y~1,state~ALIVE) + Molecules C32 Cell(x~3,y~2,state~ALIVE) + Molecules C33 Cell(x~3,y~3,state~ALIVE) +end observables + +begin functions + # Neighbor counting on a 3x3 torus + # Cxy are observables for Cell(x~x,y~y,state~ALIVE) + # ---------------------------------------------------- + N11() = C33+C13+C23 + C31+C21 + C32+C12+C22 + N12() = C31+C11+C21 + C32+C22 + C33+C13+C23 + N13() = C32+C12+C22 + C33+C23 + C31+C11+C21 + + N21() = C13+C23+C33 + C11+C31 + C12+C22+C32 + N22() = C11+C21+C31 + C12+C32 + C13+C23+C33 + N23() = C12+C22+C32 + C13+C33 + C11+C21+C31 + + N31() = C23+C33+C13 + C21+C11 + C22+C32+C12 + N32() = C21+C31+C11 + C22+C12 + C23+C33+C13 + N33() = C22+C32+C12 + C23+C13 + C21+C31+C11 + + # Birth: exactly 3 neighbors + B11() = if(N11()>2.5 && N11()<3.5, k_step, 0) + B12() = if(N12()>2.5 && N12()<3.5, k_step, 0) + B13() = if(N13()>2.5 && N13()<3.5, k_step, 0) + B21() = if(N21()>2.5 && N21()<3.5, k_step, 0) + B22() = if(N22()>2.5 && N22()<3.5, k_step, 0) + B23() = if(N23()>2.5 && N23()<3.5, k_step, 0) + B31() = if(N31()>2.5 && N31()<3.5, k_step, 0) + B32() = if(N32()>2.5 && N32()<3.5, k_step, 0) + B33() = if(N33()>2.5 && N33()<3.5, k_step, 0) + + # Death: <2 or >3 neighbors + D11() = if(N11()<1.5 || N11()>3.5, k_step, 0) + D12() = if(N12()<1.5 || N12()>3.5, k_step, 0) + D13() = if(N13()<1.5 || N13()>3.5, k_step, 0) + D21() = if(N21()<1.5 || N21()>3.5, k_step, 0) + D22() = if(N22()<1.5 || N22()>3.5, k_step, 0) + D23() = if(N23()<1.5 || N23()>3.5, k_step, 0) + D31() = if(N31()<1.5 || N31()>3.5, k_step, 0) + D32() = if(N32()<1.5 || N32()>3.5, k_step, 0) + D33() = if(N33()<1.5 || N33()>3.5, k_step, 0) +end functions + +begin reaction rules + # Cell 1,1 + Cell(x~1,y~1,state~DEAD) -> Cell(x~1,y~1,state~ALIVE) B11() + Cell(x~1,y~1,state~ALIVE) -> Cell(x~1,y~1,state~DEAD) D11() + + # Cell 1,2 + Cell(x~1,y~2,state~DEAD) -> Cell(x~1,y~2,state~ALIVE) B12() + Cell(x~1,y~2,state~ALIVE) -> Cell(x~1,y~2,state~DEAD) D12() + + # Cell 1,3 + Cell(x~1,y~3,state~DEAD) -> Cell(x~1,y~3,state~ALIVE) B13() + Cell(x~1,y~3,state~ALIVE) -> Cell(x~1,y~3,state~DEAD) D13() + + # ... and so on for all 9 cells. + # To keep this artifact concise,I'll implement a few more but the principle is clear. + + # Row 2 + Cell(x~2,y~1,state~DEAD) -> Cell(x~2,y~1,state~ALIVE) B21() + Cell(x~2,y~1,state~ALIVE) -> Cell(x~2,y~1,state~DEAD) D21() + + Cell(x~2,y~2,state~DEAD) -> Cell(x~2,y~2,state~ALIVE) B22() + Cell(x~2,y~2,state~ALIVE) -> Cell(x~2,y~2,state~DEAD) D22() + + Cell(x~2,y~3,state~DEAD) -> Cell(x~2,y~3,state~ALIVE) B23() + Cell(x~2,y~3,state~ALIVE) -> Cell(x~2,y~3,state~DEAD) D23() + + # Row 3 + Cell(x~3,y~1,state~DEAD) -> Cell(x~3,y~1,state~ALIVE) B31() + Cell(x~3,y~1,state~ALIVE) -> Cell(x~3,y~1,state~DEAD) D31() + + Cell(x~3,y~2,state~DEAD) -> Cell(x~3,y~2,state~ALIVE) B32() + Cell(x~3,y~2,state~ALIVE) -> Cell(x~3,y~2,state~DEAD) D32() + + Cell(x~3,y~3,state~DEAD) -> Cell(x~3,y~3,state~ALIVE) B33() + Cell(x~3,y~3,state~ALIVE) -> Cell(x~3,y~3,state~DEAD) D33() + +end reaction rules + +end model + +# --- Actions --- +generate_network({overwrite=>1}) +simulate({method=>"ssa",t_end=>10,n_steps=>100}) diff --git a/Contributed/BNGPlayground_Examples/generative/gmgameoflife/metadata.yaml b/Contributed/BNGPlayground_Examples/generative/gmgameoflife/metadata.yaml new file mode 100644 index 00000000..94064f45 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/generative/gmgameoflife/metadata.yaml @@ -0,0 +1,24 @@ +id: "gm_game_of_life" +name: "gm game of life" +description: "Model: gm_game_of_life.bngl" +contributors: + - name: "Achyudhan" +tags: ["gm", "game", "of", "life", "cell"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ssa"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/gm_game_of_life.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/generative/gmraymarcher/README.md b/Contributed/BNGPlayground_Examples/generative/gmraymarcher/README.md new file mode 100644 index 00000000..d566b139 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/generative/gmraymarcher/README.md @@ -0,0 +1,22 @@ +# gm ray marcher + +Ray Marching Renderer in BNGL + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- gm_ray_marcher.bngl + +## Tags + +gm, ray, marcher, ray0, hit0, bright0, sdf0, sdf1, sdf2, sdf3, speed0 diff --git a/Contributed/BNGPlayground_Examples/generative/gmraymarcher/gm_ray_marcher.bngl b/Contributed/BNGPlayground_Examples/generative/gmraymarcher/gm_ray_marcher.bngl new file mode 100644 index 00000000..607560e0 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/generative/gmraymarcher/gm_ray_marcher.bngl @@ -0,0 +1,136 @@ +# Ray Marching Renderer in BNGL +# =============================== +# A 1D ray marcher where a "Ray" molecule advances through space. +# The ray's position is its concentration. +# A signed distance function (SDF) defines the scene geometry. +# When SDF < threshold,the ray "hits" and stops (via rate clamping). +# Color/intensity is computed from hit position and surface normal. +# +# Scene: A sphere at position 50 with radius 15. +# Ray starts at 0 and marches forward. +# Multiple rays at different "angles" (different initial velocities). + +begin model + +begin parameters + # Scene + sphere_center 50.0 + sphere_radius 15.0 + + # Ray marching + march_speed 10.0 # Base marching speed + hit_threshold 0.5 # Distance to count as "hit" + + # Light source + light_pos 20.0 # Light source position +end parameters + +begin molecule types + # Rays at different vertical positions (simulating scan lines) + Ray0 + Ray1 + Ray2 + Ray3 + + # Hit detection (accumulates when ray reaches surface) + Hit0 + Hit1 + Hit2 + Hit3 + + # Brightness (computed from hit geometry) + Bright0 + Bright1 + Bright2 + Bright3 +end molecule types + +begin seed species + Ray0() 0 Ray1() 0 Ray2() 0 Ray3() 0 + Hit0() 0 Hit1() 0 Hit2() 0 Hit3() 0 + Bright0() 0 Bright1() 0 Bright2() 0 Bright3() 0 +end seed species + +begin observables + Molecules R0 Ray0() + Molecules R1 Ray1() + Molecules R2 Ray2() + Molecules R3 Ray3() + Molecules H0 Hit0() + Molecules H1 Hit1() + Molecules H2 Hit2() + Molecules H3 Hit3() + Molecules B0 Bright0() + Molecules B1 Bright1() + Molecules B2 Bright2() + Molecules B3 Bright3() +end observables + +begin functions + # Signed Distance Functions for each ray + # Each ray has a different "y-offset" simulating different scan lines + # SDF of sphere: |pos - center| - radius + # For ray with vertical offset dy: + # distance = sqrt((ray_x - center)^2 + dy^2) - radius + + # Center ray (dy = 0): hits sphere center + sdf0() = abs(R0 - sphere_center) - sphere_radius + + # Offset rays (dy = 5,10,18) + sdf1() = sqrt((R1 - sphere_center)^2 + 25) - sphere_radius # dy=5 + sdf2() = sqrt((R2 - sphere_center)^2 + 100) - sphere_radius # dy=10 + sdf3() = sqrt((R3 - sphere_center)^2 + 324) - sphere_radius # dy=18 (miss!) + + # March speed: proportional to SDF (sphere tracing!) + # Stop when hit (SDF < threshold) + speed0() = if(sdf0() > hit_threshold,march_speed * max(sdf0(),1),0) + speed1() = if(sdf1() > hit_threshold,march_speed * max(sdf1(),1),0) + speed2() = if(sdf2() > hit_threshold,march_speed * max(sdf2(),1),0) + speed3() = if(sdf3() > hit_threshold,march_speed * max(sdf3(),1),0) + + # Hit detection: accumulate when SDF < threshold + hit_rate0() = if(sdf0() < hit_threshold,100,0) + hit_rate1() = if(sdf1() < hit_threshold,100,0) + hit_rate2() = if(sdf2() < hit_threshold,100,0) + hit_rate3() = if(sdf3() < hit_threshold,100,0) + + # Brightness: based on surface normal dot light direction + # Normal at hit point ≈ (hit_pos - center) / radius (for sphere) + # Light direction ≈ (light_pos - hit_pos) + # Simplified: brighter when hit is closer to light + bright_rate0() = if(H0 > 50,100 * exp(-(R0 - light_pos)^2 / 1000),0) + bright_rate1() = if(H1 > 50,80 * exp(-(R1 - light_pos)^2 / 1000),0) + bright_rate2() = if(H2 > 50,50 * exp(-(R2 - light_pos)^2 / 1000),0) + bright_rate3() = if(H3 > 50,10 * exp(-(R3 - light_pos)^2 / 1000),0) +end functions + +begin reaction rules + # === RAY MARCHING === + # Each ray advances at speed proportional to SDF (sphere tracing) + 0 -> Ray0() speed0() + 0 -> Ray1() speed1() + 0 -> Ray2() speed2() + 0 -> Ray3() speed3() + + # === HIT DETECTION === + 0 -> Hit0() hit_rate0() + 0 -> Hit1() hit_rate1() + 0 -> Hit2() hit_rate2() + 0 -> Hit3() hit_rate3() + + # === SHADING === + 0 -> Bright0() bright_rate0() + 0 -> Bright1() bright_rate1() + 0 -> Bright2() bright_rate2() + 0 -> Bright3() bright_rate3() + Bright0() -> 0 1.0 + Bright1() -> 0 1.0 + Bright2() -> 0 1.0 + Bright3() -> 0 1.0 +end reaction rules + +end model + +# Watch rays march forward,stop at sphere surface +# Final Brightness values = rendered pixel intensities +simulate({method=>"ode",t_end=>10,n_steps=>500}) diff --git a/Contributed/BNGPlayground_Examples/generative/gmraymarcher/metadata.yaml b/Contributed/BNGPlayground_Examples/generative/gmraymarcher/metadata.yaml new file mode 100644 index 00000000..58ecd62d --- /dev/null +++ b/Contributed/BNGPlayground_Examples/generative/gmraymarcher/metadata.yaml @@ -0,0 +1,24 @@ +id: "gm_ray_marcher" +name: "gm ray marcher" +description: "Ray Marching Renderer in BNGL" +contributors: + - name: "Achyudhan" +tags: ["gm", "ray", "marcher", "ray0", "hit0", "bright0", "sdf0", "sdf1", "sdf2", "sdf3", "speed0"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/gm_ray_marcher.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/genetics/geneticbistabilityenergy/README.md b/Contributed/BNGPlayground_Examples/genetics/geneticbistabilityenergy/README.md new file mode 100644 index 00000000..caef4099 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/genetics/geneticbistabilityenergy/README.md @@ -0,0 +1,22 @@ +# genetic bistability energy + +Model: genetic_bistability_energy.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- genetic_bistability_energy.bngl + +## Tags + +genetic, bistability, energy, genea, geneb, prota, protb diff --git a/Contributed/BNGPlayground_Examples/genetics/geneticbistabilityenergy/genetic_bistability_energy.bngl b/Contributed/BNGPlayground_Examples/genetics/geneticbistabilityenergy/genetic_bistability_energy.bngl new file mode 100644 index 00000000..128baec7 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/genetics/geneticbistabilityenergy/genetic_bistability_energy.bngl @@ -0,0 +1,91 @@ +# Model: genetic_bistability_energy.bngl +# Description: Models a bistable genetic toggle switch where two genes (A and B) repress each other. +# Uses Energy Patterns to model the cooperative repression (high affinity binding). +# Demonstrates how to build stability landscapes. + +begin model + +begin parameters + # Energy + G_Gene 0 + G_Protein 0 + + # Binding Energy (Repressor to Operator) + # Strong binding + G_bind -5.0 + G_coop -2.0 # Dimerization/Cooperativity + + RT 1.0 + phi 0.5 + Ea_bind 1.0 + + k_synth 10.0 + k_deg 0.1 +end parameters + +begin molecule types + GeneA(op) # Operator site + GeneB(op) + ProtA(r,d) # Repressor domain, Dimer domain + ProtB(r,d) +end molecule types + +begin seed species + # Start in unstable middle state + GeneA(op) 1 + GeneB(op) 1 + ProtA(r,d) 10 + ProtB(r,d) 10 +end seed species + +begin observables + Molecules A ProtA() + Molecules B ProtB() + Molecules GeneA_Free GeneA(op) + Molecules GeneB_Free GeneB(op) +end observables + +begin energy patterns + GeneA(op) G_Gene + GeneB(op) G_Gene + ProtA(r,d) G_Protein + ProtB(r,d) G_Protein + + # Specific Interactions + # ProtA binds GeneB + GeneB(op!1).ProtA(r!1) G_bind + # ProtB binds GeneA + GeneA(op!1).ProtB(r!1) G_bind + + # Dimerization (Cooperative) + ProtA(d!1).ProtA(d!1) G_coop + ProtB(d!1).ProtB(d!1) G_coop +end energy patterns + +begin reaction rules + # 1. Synthesis + # Only free genes express + GeneA(op) -> GeneA(op) + ProtA(r,d) k_synth + GeneB(op) -> GeneB(op) + ProtB(r,d) k_synth + + # 2. Binding (Repression) + # Rates governed by Energy Patterns + # ProtA binds GeneB + GeneB(op) + ProtA(r) <-> GeneB(op!1).ProtA(r!1) Arrhenius(phi, Ea_bind) + # ProtB binds GeneA + GeneA(op) + ProtB(r) <-> GeneA(op!1).ProtB(r!1) Arrhenius(phi, Ea_bind) + + # 3. Degradation + ProtA() -> 0 k_deg + ProtB() -> 0 k_deg + + # 4. Dimerization (Optional, adds non-linearity) + ProtA(d) + ProtA(d) <-> ProtA(d!1).ProtA(d!1) Arrhenius(phi, 1.0) + ProtB(d) + ProtB(d) <-> ProtB(d!1).ProtB(d!1) Arrhenius(phi, 1.0) +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>100, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/genetics/geneticbistabilityenergy/metadata.yaml b/Contributed/BNGPlayground_Examples/genetics/geneticbistabilityenergy/metadata.yaml new file mode 100644 index 00000000..9e2f6eff --- /dev/null +++ b/Contributed/BNGPlayground_Examples/genetics/geneticbistabilityenergy/metadata.yaml @@ -0,0 +1,24 @@ +id: "genetic_bistability_energy" +name: "genetic bistability energy" +description: "Model: genetic_bistability_energy.bngl" +contributors: + - name: "Achyudhan" +tags: ["genetic", "bistability", "energy", "genea", "geneb", "prota", "protb"] +category: "gene-expression" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: true + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/genetic_bistability_energy.bngl" +playground: + visible: false + gallery_category: "gene-expression" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/genetics/geneticdnareplicationstochastic/README.md b/Contributed/BNGPlayground_Examples/genetics/geneticdnareplicationstochastic/README.md new file mode 100644 index 00000000..bc13af83 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/genetics/geneticdnareplicationstochastic/README.md @@ -0,0 +1,22 @@ +# genetic dna replication stochastic + +Model: genetic_dna_replication_stochastic.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- genetic_dna_replication_stochastic.bngl + +## Tags + +genetic, dna, replication, stochastic, pol, n, generate_network diff --git a/Contributed/BNGPlayground_Examples/genetics/geneticdnareplicationstochastic/genetic_dna_replication_stochastic.bngl b/Contributed/BNGPlayground_Examples/genetics/geneticdnareplicationstochastic/genetic_dna_replication_stochastic.bngl new file mode 100644 index 00000000..d6818e6b --- /dev/null +++ b/Contributed/BNGPlayground_Examples/genetics/geneticdnareplicationstochastic/genetic_dna_replication_stochastic.bngl @@ -0,0 +1,84 @@ +# Model: genetic_dna_replication_stochastic.bngl +# Description: Models the template-directed polymerization of a DNA strand. +# Demonstrates linear polymer growth where a Polymerase adds nucleotides one by one. +# Uses simplified "Length" attribute to track size or explicit chain formation. +# Here we use explicit chain formation: N(p) + N(m) -> N(p!1).N(m!1) + +begin model + +begin parameters + # Rates + k_init 0.1 # Initiation + k_ext 1.0 # Extension + k_term 0.01 # Termination + + # Concentrations + Pol_tot 10 + N_tot 1000 +end parameters + +begin molecule types + Pol(s) # Polymerase with site 's' + N(p,m) # Nucleotide with 'plus' and 'minus' ends (5' and 3') + # p binds to m of previous +end molecule types + +begin seed species + Pol(s) Pol_tot + N(p,m) N_tot +end seed species + +begin observables + Molecules Free_Nuc N(p,m) + Molecules Growing_Chain Pol(s!1).N(p!1) # Count active chains + # To count length, we might need advanced observables or just track consumption of N + Molecules Incorporated_N N(p!+,m) # N bound at 5' end + Molecules Total_Incorporated N(p!+) +end observables + +begin reaction rules + # 1. Initiation + # Pol binds first Nucleotide + Pol(s) + N(p) -> Pol(s!1).N(p!1) k_init + + # 2. Elongation + # Pol(s!1)...N(m) + N(p) -> Pol(s!1)...N(m!2).N(p!2) + # We need to find the specific N at the 3' end bound to Pol + # Simplified: Pol is bound to the *growing end*. The chain grows away from Pol. + # Let's say Pol holds the 3' end (m) of the last added nucleotide. + # N(p,m) + # Pol(s!1).N(m!1, p) --(add N)--> Pol(s!1).N(m!1, p!2).N(m!2) ?? + # Actually, standard is 5' to 3'. + # Let's assume Pol holds the Template (ignored here) and the Primer 3' end. + # Let's model Pol holding the *newest* nucleotide's 3' end (m). + # New N binds to Pol and the previous N's 3' end? + # Simpler: Pol holds the 'p' (5') end of the FIRST nucleotide. + # And chain grows at 'm' (3') end. + # We need a rule that matches the END of the chain. + # R: N(m) + N(p) -> N(m!1).N(p!1) (This is uncatalyzed) + # Catalyzed: + # Pol(s!1).N(p!1)...N(m) + N(p) -> ... + # This requires finding the end of a connected component, which is hard in standard BNGL rules without explicit 'End' marker. + + # Alternative Strategy: Pol holds the *active site*. + # Pol(s!1).N(m!1) means N is the last added one. + # Extension: + # Pol(s!1).N(m!1) + N(p,m) -> Pol(s!2).N(m!2).N(p!2,m!1) + # Here, Pol releases the old N's m-site and grabs the new N's m-site, while linking old-N(m) to new-N(p). + # Use 'MoveConnected'? No, standard rules can do this bond exchange. + + # Pol(s!1).N(m!1) + N(p,m) -> Pol(s!2).N(m!2).N(p!2,m!1) k_ext + # Break s-m bond1, form s-m bond2, form m1-p2 bond. + Pol(s!1).N(m!1) + N(p,m) -> Pol(s!2).N(m!2,p!3).N(m!3) k_ext + + # 3. Termination + # Pol falls off + Pol(s!1).N(m!1) -> Pol(s) + N(m) k_term + +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1, max_iter=>10}) # Limit iter because chains grow infinitely +simulate({method=>"ode", t_end=>400, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/genetics/geneticdnareplicationstochastic/metadata.yaml b/Contributed/BNGPlayground_Examples/genetics/geneticdnareplicationstochastic/metadata.yaml new file mode 100644 index 00000000..777f0b81 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/genetics/geneticdnareplicationstochastic/metadata.yaml @@ -0,0 +1,24 @@ +id: "genetic_dna_replication_stochastic" +name: "genetic dna replication stochastic" +description: "Model: genetic_dna_replication_stochastic.bngl" +contributors: + - name: "Achyudhan" +tags: ["genetic", "dna", "replication", "stochastic", "pol", "n", "generate_network"] +category: "gene-expression" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/genetic_dna_replication_stochastic.bngl" +playground: + visible: false + gallery_category: "gene-expression" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/genetics/geneticgoodwinoscillator/README.md b/Contributed/BNGPlayground_Examples/genetics/geneticgoodwinoscillator/README.md new file mode 100644 index 00000000..22814ddf --- /dev/null +++ b/Contributed/BNGPlayground_Examples/genetics/geneticgoodwinoscillator/README.md @@ -0,0 +1,22 @@ +# genetic goodwin oscillator + +Model: genetic_goodwin_oscillator.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- genetic_goodwin_oscillator.bngl + +## Tags + +genetic, goodwin, oscillator, gene, mrna, protein, repressor diff --git a/Contributed/BNGPlayground_Examples/genetics/geneticgoodwinoscillator/genetic_goodwin_oscillator.bngl b/Contributed/BNGPlayground_Examples/genetics/geneticgoodwinoscillator/genetic_goodwin_oscillator.bngl new file mode 100644 index 00000000..e3823c2d --- /dev/null +++ b/Contributed/BNGPlayground_Examples/genetics/geneticgoodwinoscillator/genetic_goodwin_oscillator.bngl @@ -0,0 +1,69 @@ +# Model: genetic_goodwin_oscillator.bngl +# Description: Implements the classic Goodwin Oscillator, a negative feedback loop with delay. +# Gene -> mRNA -> Protein -> Repressor -> Gene + +begin model + +begin parameters + # Production + k_rn 1.0 + k_p 1.0 + + # Degradation + d_m 0.1 + d_p 0.1 + d_r 0.1 + + # Repression + k_on 10.0 + k_off 0.1 # High affinity + + n_hill 4 # Cooperativity (approximated by multimer binding) +end parameters + +begin molecule types + Gene(p) + mRNA() + Protein() + Repressor(b) # Binding site +end molecule types + +begin seed species + Gene(p) 1 +end seed species + +begin observables + Molecules RNA mRNA() + Molecules Prot Protein() + Molecules Rep Repressor(b) +end observables + +begin reaction rules + # 1. Transcription (Inhibited by Repressor binding) + # Free gene transcribes + Gene(p) -> Gene(p) + mRNA() k_rn + + # 2. Translation + mRNA() -> mRNA() + Protein() k_p + + # 3. Modification / Transport / Delay Step + Protein() -> Repressor(b) 0.5 + + # 4. Repression (Simplified via Binding) + # We need high non-linearity for oscillation (Hill coeff > 8 for some, >3 typically) + # Explicit binding: R + G <-> G:R + Gene(p) + Repressor(b) <-> Gene(p!1).Repressor(b!1) k_on, k_off + # This is n=1. For n>1, need multimers or multiple binding sites. + # Let's add multiple consecutive binding sites for non-linearity + + # 5. Degradation + mRNA() -> 0 d_m + Protein() -> 0 d_p + Repressor(b) -> 0 d_r +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>200, n_steps=>400}) diff --git a/Contributed/BNGPlayground_Examples/genetics/geneticgoodwinoscillator/metadata.yaml b/Contributed/BNGPlayground_Examples/genetics/geneticgoodwinoscillator/metadata.yaml new file mode 100644 index 00000000..394492c7 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/genetics/geneticgoodwinoscillator/metadata.yaml @@ -0,0 +1,24 @@ +id: "genetic_goodwin_oscillator" +name: "genetic goodwin oscillator" +description: "Model: genetic_goodwin_oscillator.bngl" +contributors: + - name: "Achyudhan" +tags: ["genetic", "goodwin", "oscillator", "gene", "mrna", "protein", "repressor"] +category: "gene-expression" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/genetic_goodwin_oscillator.bngl" +playground: + visible: false + gallery_category: "gene-expression" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/genetics/genetictranslationkinetics/README.md b/Contributed/BNGPlayground_Examples/genetics/genetictranslationkinetics/README.md new file mode 100644 index 00000000..b1290bae --- /dev/null +++ b/Contributed/BNGPlayground_Examples/genetics/genetictranslationkinetics/README.md @@ -0,0 +1,22 @@ +# genetic translation kinetics + +Model: genetic_translation_kinetics.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- genetic_translation_kinetics.bngl + +## Tags + +genetic, translation, kinetics, mrna, rib, protein diff --git a/Contributed/BNGPlayground_Examples/genetics/genetictranslationkinetics/genetic_translation_kinetics.bngl b/Contributed/BNGPlayground_Examples/genetics/genetictranslationkinetics/genetic_translation_kinetics.bngl new file mode 100644 index 00000000..2ecc8e4b --- /dev/null +++ b/Contributed/BNGPlayground_Examples/genetics/genetictranslationkinetics/genetic_translation_kinetics.bngl @@ -0,0 +1,66 @@ +# Model: genetic_translation_kinetics.bngl +# Description: Models the steps of protein translation: Initiation, Elongation, Termination. +# Includes mRNA degradation which stops production. + +begin model + +begin parameters + k_bind 1.0 # Ribosome binding mRNA + k_start 0.5 # Initiation (FirstAA) + k_elong 2.0 # Elongation step (lumped) + k_term 0.1 # Termination and release + k_deg 0.05 # mRNA degradation + + mRNA_0 10 + Rib_0 50 +end parameters + +begin molecule types + mRNA(r) # Ribosome binding site + Rib(m,state~Free~Init~Elong~Term) + Protein() +end molecule types + +begin seed species + mRNA(r) mRNA_0 + Rib(m,state~Free) Rib_0 + Protein() 0 +end seed species + +begin observables + Molecules Active_Ribosomes Rib(m!+,state~Elong) + Molecules Completed_Proteins Protein() + Molecules mRNA_Count mRNA() +end observables + +begin reaction rules + # 1. Binding + mRNA(r) + Rib(m,state~Free) <-> mRNA(r!1).Rib(m!1,state~Free) k_bind,0.1 + + # 2. Initiation -> Elongation + # Ribosome commits to translation + mRNA(r!1).Rib(m!1,state~Free) -> mRNA(r!1).Rib(m!1,state~Elong) k_start + + # 3. Elongation (Simplified) + # We don't model AA addition explicitly here, just a delay or state transition + # For simplicity in this demo, Elong -> Term + # To mimic length, we could have multiple elongation states or separate steps + mRNA(r!1).Rib(m!1,state~Elong) -> mRNA(r!1).Rib(m!1,state~Term) k_elong + + # 4. Termination + # Releases Protein, Ribosome, and mRNA + mRNA(r!1).Rib(m!1,state~Term) -> mRNA(r) + Rib(m,state~Free) + Protein() k_term + + # 5. mRNA Degradation + # Destroys mRNA. If Ribosome is bound, what happens? + # Option A: Ribosome protects mRNA. + # Option B: Ribosome falls off or gets stuck. + # Let's say only free mRNA degrades. + mRNA(r) -> 0 k_deg +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>100,n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/genetics/genetictranslationkinetics/metadata.yaml b/Contributed/BNGPlayground_Examples/genetics/genetictranslationkinetics/metadata.yaml new file mode 100644 index 00000000..aaa7ad26 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/genetics/genetictranslationkinetics/metadata.yaml @@ -0,0 +1,24 @@ +id: "genetic_translation_kinetics" +name: "genetic translation kinetics" +description: "Model: genetic_translation_kinetics.bngl" +contributors: + - name: "Achyudhan" +tags: ["genetic", "translation", "kinetics", "mrna", "rib", "protein"] +category: "gene-expression" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/genetic_translation_kinetics.bngl" +playground: + visible: false + gallery_category: "gene-expression" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/genetics/geneticturingpattern1d/README.md b/Contributed/BNGPlayground_Examples/genetics/geneticturingpattern1d/README.md new file mode 100644 index 00000000..7690c655 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/genetics/geneticturingpattern1d/README.md @@ -0,0 +1,22 @@ +# genetic turing pattern 1d + +Model: genetic_turing_pattern_1d.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- genetic_turing_pattern_1d.bngl + +## Tags + +genetic, turing, pattern, 1d, a, b diff --git a/Contributed/BNGPlayground_Examples/genetics/geneticturingpattern1d/genetic_turing_pattern_1d.bngl b/Contributed/BNGPlayground_Examples/genetics/geneticturingpattern1d/genetic_turing_pattern_1d.bngl new file mode 100644 index 00000000..59b1b45e --- /dev/null +++ b/Contributed/BNGPlayground_Examples/genetics/geneticturingpattern1d/genetic_turing_pattern_1d.bngl @@ -0,0 +1,120 @@ +# Model: genetic_turing_pattern_1d.bngl +# Description: Models a 4-compartment 1D reaction-diffusion system (Activator-Inhibitor). +# Demonstrates how diffusion between adjacent compartments can lead to spatial patterns. +# Model: Gierer-Meinhardt type kinetics. + +begin model + +begin parameters + # Kinetics + # Activator A: autocatalytic, activates Inhibitor B + # Inhibitor B: inhibits Activator A + ka 0.1 # Basal production of A + kb 0.05 # Basal production of B + k_aut 1.0 # Autocatalysis of A + k_inh 1.0 # Inhibition by B + k_degA 0.5 + k_degB 0.2 + + # Diffusion Rates + D_A 0.01 # Slow diffusion of Activator + D_B 1.0 # Fast diffusion of Inhibitor (Key for Turing instability) + + Initial_A 1.0 +end parameters + +begin molecule types + A() + B() +end molecule types + +begin compartments + # 1D Chain: Cell1 <-> Cell2 <-> Cell3 <-> Cell4 + Cell1 3 1.0 + Cell2 3 1.0 + Cell3 3 1.0 + Cell4 3 1.0 +end compartments + +begin seed species + # Random initial perturbation + A()@Cell1 1.1 + A()@Cell2 0.9 + A()@Cell3 1.0 + A()@Cell4 1.2 + B()@Cell1 0.5 + B()@Cell2 0.5 + B()@Cell3 0.5 + B()@Cell4 0.5 +end seed species + +begin observables + Molecules A1 A()@Cell1 + Molecules A2 A()@Cell2 + Molecules A3 A()@Cell3 + Molecules A4 A()@Cell4 + Molecules B1 B()@Cell1 +end observables + +begin reaction rules + # --- Reaction System (Same in all cells) --- + # Simplification: Use mass action or hill functions if allowed. + # Here we use approximate mass action for demonstrative structure. + # A' = ka + k_aut * A^2 / B - k_degA * A + # B' = kb + k_aut * A^2 - k_degB * B + # Note: Division by B is hard in elementary rules. + # We will use "Activator-Depleted Substrate" or similar scheme for pure elementary rules. + # Or simplified: + # A + A -> A + A + A (Autocatalysis) + # A + B -> B (Inhibition/Degradation of A by B) + # A -> A + B (A activates B) + + # Rule 1: Autocatalytic growth with saturation (per compartment) + A()@Cell1 + A()@Cell1 -> A()@Cell1 + A()@Cell1 + A()@Cell1 k_aut * (1 - A1/100) + A()@Cell2 + A()@Cell2 -> A()@Cell2 + A()@Cell2 + A()@Cell2 k_aut * (1 - A2/100) + A()@Cell3 + A()@Cell3 -> A()@Cell3 + A()@Cell3 + A()@Cell3 k_aut * (1 - A3/100) + A()@Cell4 + A()@Cell4 -> A()@Cell4 + A()@Cell4 + A()@Cell4 k_aut * (1 - A4/100) + + # Rule 2: Inhibition (B degrades A) + A() + B() -> B() 0.1 # k_inh + + # Rule 3: A produces B + A() -> A() + B() 0.1 + + # Rule 4: Basal Production/Degradation (Per Cell) + # Applying to each compartment separately + 0 -> A()@Cell1 ka + 0 -> A()@Cell2 ka + 0 -> A()@Cell3 ka + 0 -> A()@Cell4 ka + + 0 -> B()@Cell1 kb + 0 -> B()@Cell2 kb + 0 -> B()@Cell3 kb + 0 -> B()@Cell4 kb + + A()@Cell1 -> 0 k_degA + A()@Cell2 -> 0 k_degA + A()@Cell3 -> 0 k_degA + A()@Cell4 -> 0 k_degA + + B()@Cell1 -> 0 k_degB + B()@Cell2 -> 0 k_degB + B()@Cell3 -> 0 k_degB + B()@Cell4 -> 0 k_degB + + # --- Diffusion (Between Neighbors) --- + A()@Cell1 <-> A()@Cell2 D_A, D_A + A()@Cell2 <-> A()@Cell3 D_A, D_A + A()@Cell3 <-> A()@Cell4 D_A, D_A + + B()@Cell1 <-> B()@Cell2 D_B, D_B + B()@Cell2 <-> B()@Cell3 D_B, D_B + B()@Cell3 <-> B()@Cell4 D_B, D_B +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>50, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/genetics/geneticturingpattern1d/metadata.yaml b/Contributed/BNGPlayground_Examples/genetics/geneticturingpattern1d/metadata.yaml new file mode 100644 index 00000000..e9f771d4 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/genetics/geneticturingpattern1d/metadata.yaml @@ -0,0 +1,24 @@ +id: "genetic_turing_pattern_1d" +name: "genetic turing pattern 1d" +description: "Model: genetic_turing_pattern_1d.bngl" +contributors: + - name: "Achyudhan" +tags: ["genetic", "turing", "pattern", "1d", "a", "b"] +category: "gene-expression" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/genetic_turing_pattern_1d.bngl" +playground: + visible: false + gallery_category: "gene-expression" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/meta/metaformalgametheory/README.md b/Contributed/BNGPlayground_Examples/meta/metaformalgametheory/README.md new file mode 100644 index 00000000..d164a0a1 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/metaformalgametheory/README.md @@ -0,0 +1,22 @@ +# meta formal game theory + +Model: meta_formal_game_theory.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- meta_formal_game_theory.bngl + +## Tags + +meta, formal, game, theory, hawk, dove, pop, payoffh, payoffd diff --git a/Contributed/BNGPlayground_Examples/meta/metaformalgametheory/meta_formal_game_theory.bngl b/Contributed/BNGPlayground_Examples/meta/metaformalgametheory/meta_formal_game_theory.bngl new file mode 100644 index 00000000..62ca037f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/metaformalgametheory/meta_formal_game_theory.bngl @@ -0,0 +1,73 @@ +# Model: meta_formal_game_theory.bngl +# Description: Models the replicator dynamics of a game (e.g., Hawk-Dove). +# Strategies replicate based on their payoff against the population. +# The system settles into a Nash Equilibrium (Evolutionarily Stable Strategy). + +begin model + +begin parameters + # Payoff Matrix + # H D + # H (V-C)/2 V + # D 0 V/2 + + V 4.0 # Value of resource + C 6.0 # Cost of fighting + + # Payoffs + P_HH -1.0 # (4-6)/2 + P_HD 4.0 + P_DH 0.0 + P_DD 2.0 + + # Baseline fitness (to replenish) + Base 2.0 + + # Derived Rate Constants (0.01 * (Base + Payoff)) + k_HH 0.01 # 0.01 * (2.0 - 1.0) = 0.01 + k_HD 0.06 # 0.01 * (2.0 + 4.0) = 0.06 + k_DH 0.02 # 0.01 * (2.0 + 0.0) = 0.02 + k_DD 0.04 # 0.01 * (2.0 + 2.0) = 0.04 +end parameters + +begin molecule types + Hawk() + Dove() +end molecule types + +begin seed species + Hawk() 10 # Initial Strategies + Dove() 90 +end seed species + +begin observables + Molecules H Hawk() + Molecules D Dove() +end observables + +begin functions + # Logistic crowding effect (Death increases with total population) + Pop() = H + D + 1e-12 + Capacity 200 + + # Payoffs for each strategy against current population + PayoffH() = (H * P_HH + D * P_HD) / Pop() + PayoffD() = (H * P_DH + D * P_DD) / Pop() +end functions + +begin reaction rules + # Replicator-style growth + # Growth rate is proportional to strategy population and its payoff relative to base + Hawk() -> Hawk() + Hawk() 0.05 * (Base + PayoffH()) * (1 - Pop()/Capacity) + Dove() -> Dove() + Dove() 0.05 * (Base + PayoffD()) * (1 - Pop()/Capacity) + + # Basal Death + Hawk() -> 0 0.05 + Dove() -> 0 0.05 +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>2, n_steps=>100}) diff --git a/Contributed/BNGPlayground_Examples/meta/metaformalgametheory/metadata.yaml b/Contributed/BNGPlayground_Examples/meta/metaformalgametheory/metadata.yaml new file mode 100644 index 00000000..3b6cac76 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/metaformalgametheory/metadata.yaml @@ -0,0 +1,24 @@ +id: "meta_formal_game_theory" +name: "meta formal game theory" +description: "Model: meta_formal_game_theory.bngl" +contributors: + - name: "Achyudhan" +tags: ["meta", "formal", "game", "theory", "hawk", "dove", "pop", "payoffh", "payoffd"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/meta_formal_game_theory.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/meta/metaformalmolecularclock/README.md b/Contributed/BNGPlayground_Examples/meta/metaformalmolecularclock/README.md new file mode 100644 index 00000000..e8951c61 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/metaformalmolecularclock/README.md @@ -0,0 +1,22 @@ +# meta formal molecular clock + +Model: meta_formal_molecular_clock.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- meta_formal_molecular_clock.bngl + +## Tags + +meta, formal, molecular, clock, fasta, fastb, slowc, slowd diff --git a/Contributed/BNGPlayground_Examples/meta/metaformalmolecularclock/meta_formal_molecular_clock.bngl b/Contributed/BNGPlayground_Examples/meta/metaformalmolecularclock/meta_formal_molecular_clock.bngl new file mode 100644 index 00000000..7cc7d48a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/metaformalmolecularclock/meta_formal_molecular_clock.bngl @@ -0,0 +1,50 @@ +# Model: meta_formal_molecular_clock.bngl +# Description: Demonstrates Timescale Separation with a Stiff/Fast subsystem and a Sloppy/Slow subsystem. +# Rapid equilibrium of Fast species dictates the effective rate of Slow process. +# Example: Quasi-Steady-State Approximation (QSSA) validity. + +begin model + +begin parameters + # Fast Rates (Timescale ~ 0.01s) + k_fast_f 100.0 + k_fast_r 100.0 + + # Slow Rates (Timescale ~ 10s) + k_slow 0.1 +end parameters + +begin molecule types + FastA() + FastB() + SlowC() + SlowD() +end molecule types + +begin seed species + FastA() 100 + FastB() 0 + SlowC() 50 + SlowD() 0 +end seed species + +begin observables + Molecules Fast_Pool FastA() + Molecules Slow_Product SlowD() +end observables + +begin reaction rules + # Fast Reversible Equilibrium + FastA() <-> FastB() k_fast_f, k_fast_r + + # Slow Irreversible Step coupled to FastB + # FastB catalyzes C -> D + FastB() + SlowC() -> FastB() + SlowD() k_slow +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>100, n_steps=>1000}) +# Note: ODE solver handles stiffness (e.g. CVODE). SSA would be slow. diff --git a/Contributed/BNGPlayground_Examples/meta/metaformalmolecularclock/metadata.yaml b/Contributed/BNGPlayground_Examples/meta/metaformalmolecularclock/metadata.yaml new file mode 100644 index 00000000..f19aa009 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/metaformalmolecularclock/metadata.yaml @@ -0,0 +1,24 @@ +id: "meta_formal_molecular_clock" +name: "meta formal molecular clock" +description: "Model: meta_formal_molecular_clock.bngl" +contributors: + - name: "Achyudhan" +tags: ["meta", "formal", "molecular", "clock", "fasta", "fastb", "slowc", "slowd"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/meta_formal_molecular_clock.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/meta/metaformalpetrinet/README.md b/Contributed/BNGPlayground_Examples/meta/metaformalpetrinet/README.md new file mode 100644 index 00000000..0f13fdb8 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/metaformalpetrinet/README.md @@ -0,0 +1,22 @@ +# meta formal petri net + +Model: meta_formal_petri_net.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- meta_formal_petri_net.bngl + +## Tags + +meta, formal, petri, net, p1, p2, p3, p4 diff --git a/Contributed/BNGPlayground_Examples/meta/metaformalpetrinet/meta_formal_petri_net.bngl b/Contributed/BNGPlayground_Examples/meta/metaformalpetrinet/meta_formal_petri_net.bngl new file mode 100644 index 00000000..fc5f5f7a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/metaformalpetrinet/meta_formal_petri_net.bngl @@ -0,0 +1,53 @@ +# Model: meta_formal_petri_net.bngl +# Description: Explicitly models a Place-Transition Petri Net structure using BNGL. +# Places are species (Token Holders). Transitions are reaction rules consuming tokens. +# Demonstrates the equivalence between reaction networks and Petri nets. + +begin model + +begin parameters + rate_t1 1.0 + rate_t2 0.5 +end parameters + +begin molecule types + # Place(id, tokens) ? + # Simpler: Each Place is a unique species. + # Count(n) -> N tokens? + # BNGL species count IS the token count. + + P1() + P2() + P3() + P4() +end molecule types + +begin seed species + P1() 10 # 10 Tokens in Place 1 + P2() 0 + P3() 5 + P4() 0 +end seed species + +begin observables + Molecules Tokens_P1 P1() + Molecules Tokens_P2 P2() + Molecules Tokens_P3 P3() + Molecules Tokens_P4 P4() +end observables + +begin reaction rules + # Transition T1: P1 + P3 -> P2 + P1() + P3() -> P2() rate_t1 + + # Transition T2: P2 -> P4 + P3 (Recycles P3) + P2() -> P4() + P3() rate_t2 + + # Conservation: P3 is catalyst? +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>50, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/meta/metaformalpetrinet/metadata.yaml b/Contributed/BNGPlayground_Examples/meta/metaformalpetrinet/metadata.yaml new file mode 100644 index 00000000..32789b1b --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/metaformalpetrinet/metadata.yaml @@ -0,0 +1,24 @@ +id: "meta_formal_petri_net" +name: "meta formal petri net" +description: "Model: meta_formal_petri_net.bngl" +contributors: + - name: "Achyudhan" +tags: ["meta", "formal", "petri", "net", "p1", "p2", "p3", "p4"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/meta_formal_petri_net.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/meta/mtarithmeticcompiler/README.md b/Contributed/BNGPlayground_Examples/meta/mtarithmeticcompiler/README.md new file mode 100644 index 00000000..385bed49 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/mtarithmeticcompiler/README.md @@ -0,0 +1,22 @@ +# mt arithmetic compiler + +Model: mt_arithmetic_compiler.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- mt_arithmetic_compiler.bngl + +## Tags + +mt, arithmetic, compiler, node, target_add, target_mult diff --git a/Contributed/BNGPlayground_Examples/meta/mtarithmeticcompiler/metadata.yaml b/Contributed/BNGPlayground_Examples/meta/mtarithmeticcompiler/metadata.yaml new file mode 100644 index 00000000..e766c439 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/mtarithmeticcompiler/metadata.yaml @@ -0,0 +1,24 @@ +id: "mt_arithmetic_compiler" +name: "mt arithmetic compiler" +description: "Model: mt_arithmetic_compiler.bngl" +contributors: + - name: "Achyudhan" +tags: ["mt", "arithmetic", "compiler", "node", "target_add", "target_mult"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/mt_arithmetic_compiler.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/meta/mtarithmeticcompiler/mt_arithmetic_compiler.bngl b/Contributed/BNGPlayground_Examples/meta/mtarithmeticcompiler/mt_arithmetic_compiler.bngl new file mode 100644 index 00000000..ac0b5b13 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/mtarithmeticcompiler/mt_arithmetic_compiler.bngl @@ -0,0 +1,75 @@ +# Model: mt_arithmetic_compiler.bngl +# Description: Implements a bottom-up arithmetic expression tree evaluator. +# Input Expression: (3 + 4) * 2 +# Molecules represent leaf nodes (Values) and internal nodes (Operations). +# Results propagate through the tree via function evaluation. +# Demonstrates hierarchical data processing in a rule-based language. + +begin model + +begin parameters + # Leaf Values + V1 3.0 + V2 4.0 + V3 2.0 + + k_eval 1.0 # Evaluation timescale +end parameters + +begin molecule types + Node(i~L1~L2~L3~Add~Mult,v) +end molecule types + +begin seed species + # Initialize Leaf Nodes + Node(i~L1,v) V1 + Node(i~L2,v) V2 + Node(i~L3,v) V3 + + # Internal Nodes (Initial value 0) + Node(i~Add,v) 0 + Node(i~Mult,v) 0 +end seed species + +begin observables + Molecules Val_L1 Node(i~L1,v) + Molecules Val_L2 Node(i~L2,v) + Molecules Val_L3 Node(i~L3,v) + Molecules Val_Add Node(i~Add,v) + Molecules Val_Root Node(i~Mult,v) +end observables + +begin functions + # Tree Structure: Mult( Add(L1,L2),L3 ) + + # Target value for Add node: L1 + L2 + Target_Add() = Val_L1 + Val_L2 + + # Target value for Mult node: Add * L3 + Target_Mult() = Val_Add * Val_L3 + + # ODE Rates + dAdd_dt() = (Target_Add() - Val_Add) / 1.0 + dMult_dt() = (Target_Mult() - Val_Root) / 1.0 +end functions + +begin reaction rules + # Evaluation Flow (ODE simulated as production/decay) + + # Add Node evaluation + Up_Add: 0 -> Node(i~Add,v) if(dAdd_dt()>0,dAdd_dt(),0) + Dn_Add: Node(i~Add,v) -> 0 if(dAdd_dt()<0,-dAdd_dt(),0) + + # Mult Node evaluation + Up_Mult: 0 -> Node(i~Mult,v) if(dMult_dt()>0,dMult_dt(),0) + Dn_Mult: Node(i~Mult,v) -> 0 if(dMult_dt()<0,-dMult_dt(),0) +end reaction rules + +end model + +# --- Actions --- +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>10,n_steps=>100}) + +# VERIFICATION: +# Val_Root should reach (3+4)*2 = 14.0 at steady state. diff --git a/Contributed/BNGPlayground_Examples/meta/mtbnglinterpreter/README.md b/Contributed/BNGPlayground_Examples/meta/mtbnglinterpreter/README.md new file mode 100644 index 00000000..284ba5d0 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/mtbnglinterpreter/README.md @@ -0,0 +1,22 @@ +# mt bngl interpreter + +Model: mt_bngl_interpreter.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- mt_bngl_interpreter.bngl + +## Tags + +mt, bngl, interpreter, rule, species, exec_s1_s2, generate_network, simulate diff --git a/Contributed/BNGPlayground_Examples/meta/mtbnglinterpreter/metadata.yaml b/Contributed/BNGPlayground_Examples/meta/mtbnglinterpreter/metadata.yaml new file mode 100644 index 00000000..0e53107e --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/mtbnglinterpreter/metadata.yaml @@ -0,0 +1,24 @@ +id: "mt_bngl_interpreter" +name: "mt bngl interpreter" +description: "Model: mt_bngl_interpreter.bngl" +contributors: + - name: "Achyudhan" +tags: ["mt", "bngl", "interpreter", "rule", "species", "exec_s1_s2", "generate_network", "simulate"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/mt_bngl_interpreter.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/meta/mtbnglinterpreter/mt_bngl_interpreter.bngl b/Contributed/BNGPlayground_Examples/meta/mtbnglinterpreter/mt_bngl_interpreter.bngl new file mode 100644 index 00000000..4c9165fa --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/mtbnglinterpreter/mt_bngl_interpreter.bngl @@ -0,0 +1,59 @@ +# Model: mt_bngl_interpreter.bngl +# Description: A self-referential BNGL model that parses and executes a subset of BNGL rules. +# The "Program" is encoded as concentrations of Rule molecules. +# The "State" is encoded as concentrations of Species molecules. +# Demonstrates the meta-programming capabilities of rule-based languages. + +begin model + +begin parameters + k_eval 1.0 # Speed of internal "execution" +end parameters + +begin molecule types + # Internal Rule Representation: R(reactant, product, rate) + Rule(r~S1~S2,p~S1~S2) + # Virtual Species + Species(i~S1~S2) +end molecule types + +begin seed species + # Define Rule: S1 -> S2 (encoded as R(r~S1,p~S2)) + Rule(r~S1,p~S2) 1.0 + + # Initial State: 10 units of S1 + Species(i~S1) 10.0 + Species(i~S2) 0.0 +end seed species + +begin observables + Molecules S1 Species(i~S1) + Molecules S2 Species(i~S2) + Molecules R12 Rule(r~S1,p~S2) +end observables + +begin functions + # Execution Logic: + # If a rule (r~A,p~B) exists, it should consume Species(A) and produce Species(B) + + # Rate of S1 -> S2 execution + # Rate = k * [Rule(r~S1,p~S2)] * [Species(S1)] + Exec_S1_S2() = k_eval * R12 * S1 +end functions + +begin reaction rules + # Virtual Reaction execution + # Consume S1 + RuleS1_S2_Consume: Species(i~S1) -> 0 Exec_S1_S2() + # Produce S2 + RuleS1_S2_Produce: 0 -> Species(i~S2) Exec_S1_S2() +end reaction rules + +end model + +# --- Actions --- +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>10,n_steps=>100}) + +# VERIFICATION: +# S1 should decrease and S2 should increase as the "virtual rule" executes. diff --git a/Contributed/BNGPlayground_Examples/meta/mtmusicsequencer/README.md b/Contributed/BNGPlayground_Examples/meta/mtmusicsequencer/README.md new file mode 100644 index 00000000..26fc0148 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/mtmusicsequencer/README.md @@ -0,0 +1,22 @@ +# mt music sequencer + +Music Sequencer / Chord Synthesizer in BNGL + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- mt_music_sequencer.bngl + +## Tags + +mt, music, sequencer, v1s, v1c, v2s, v2c, v3s, v3c, mix, chordphase diff --git a/Contributed/BNGPlayground_Examples/meta/mtmusicsequencer/metadata.yaml b/Contributed/BNGPlayground_Examples/meta/mtmusicsequencer/metadata.yaml new file mode 100644 index 00000000..ea4027e2 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/mtmusicsequencer/metadata.yaml @@ -0,0 +1,24 @@ +id: "mt_music_sequencer" +name: "mt music sequencer" +description: "Music Sequencer / Chord Synthesizer in BNGL" +contributors: + - name: "Achyudhan" +tags: ["mt", "music", "sequencer", "v1s", "v1c", "v2s", "v2c", "v3s", "v3c", "mix", "chordphase"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/mt_music_sequencer.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/meta/mtmusicsequencer/mt_music_sequencer.bngl b/Contributed/BNGPlayground_Examples/meta/mtmusicsequencer/mt_music_sequencer.bngl new file mode 100644 index 00000000..e0dc9a90 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/mtmusicsequencer/mt_music_sequencer.bngl @@ -0,0 +1,131 @@ +# Music Sequencer / Chord Synthesizer in BNGL +# ============================================== +# Oscillator molecules whose concentrations trace waveforms. +# Frequencies correspond to musical notes (A=440Hz scaled down). +# Time-dependent functions switch between chords in a progression. +# +# Chord progression: Am -> F -> C -> G (classic pop progression) +# Each chord activates different oscillator frequencies. +# The output "Mix" molecule sums active voices = the audio signal. + +begin model + +begin parameters + # Note frequencies + fA 1.000 + fB 1.122 + fC 1.189 + fD 1.335 + fE 1.498 + fF 1.587 + fG 1.782 + + # Timing + beat 4.0 + amp 50.0 + offset 50.0 + t 0 +end parameters + +begin molecule types + V1s() + V1c() + V2s() + V2c() + V3s() + V3c() + Mix() + ChordPhase() + Timer() +end molecule types + +begin seed species + V1s() 50 + V1c() 100 + V2s() 50 + V2c() 100 + V3s() 50 + V3c() 100 + Mix() 50 + ChordPhase() 0 + Timer() 0 +end seed species + +begin observables + Molecules Voice1 V1s() + Molecules V1c V1c() + Molecules Voice2 V2s() + Molecules V2c V2c() + Molecules Voice3 V3s() + Molecules V3c V3c() + Molecules Output Mix() + Molecules ObsTime Timer() +end observables + +begin functions + # Chord selection via tiered nested if-logic (avoiding mod/floor and &&) + # progression: 0-4=Am, 4-8=F, 8-12=C, 12-16=G... + + is_Am() = if(ObsTime < 4, 1, if(ObsTime >= 16, if(ObsTime < 20, 1, 0), 0)) + is_F() = if(ObsTime >= 4, if(ObsTime < 8, 1, if(ObsTime >= 20, if(ObsTime < 24, 1, 0), 0)), 0) + is_C() = if(ObsTime >= 8, if(ObsTime < 12, 1, if(ObsTime >= 24, if(ObsTime < 28, 1, 0), 0)), 0) + is_G() = if(ObsTime >= 12, if(ObsTime < 16, 1, if(ObsTime >= 28, if(ObsTime < 32, 1, 0), 0)), 0) + + freq1() = is_Am()*fA + is_F()*fF + is_C()*fC + is_G()*fG + freq2() = is_Am()*fC + is_F()*fA + is_C()*fE + is_G()*fB + freq3() = is_Am()*fE + is_F()*fC + is_C()*fG + is_G()*fD + + s1() = Voice1 - offset + c1() = V1c - offset + s2() = Voice2 - offset + c2() = V2c - offset + s3() = Voice3 - offset + c3() = V3c - offset + + ds1() = freq1() * c1() + dc1() = -freq1() * s1() + ds2() = freq2() * c2() + dc2() = -freq2() * s2() + ds3() = freq3() * c3() + dc3() = -freq3() * s3() + + mix_target() = offset + (s1() + s2() + s3()) * amp / 3 + mix_corr() = 20 * (mix_target() - Output) + + rateV1sU() = if(ds1() > 0, ds1(), 0) + rateV1sD() = if(ds1() < 0, -ds1()/max(Voice1,0.01), 0) + rateV1cU() = if(dc1() > 0, dc1(), 0) + rateV1cD() = if(dc1() < 0, -dc1()/max(V1c,0.01), 0) + rateV2sU() = if(ds2() > 0, ds2(), 0) + rateV2sD() = if(ds2() < 0, -ds2()/max(Voice2,0.01), 0) + rateV2cU() = if(dc2() > 0, dc2(), 0) + rateV2cD() = if(dc2() < 0, -dc2()/max(V2c,0.01), 0) + rateV3sU() = if(ds3() > 0, ds3(), 0) + rateV3sD() = if(ds3() < 0, -ds3()/max(Voice3,0.01), 0) + rateV3cU() = if(dc3() > 0, dc3(), 0) + rateV3cD() = if(dc3() < 0, -dc3()/max(V3c,0.01), 0) + rateMixU() = if(mix_corr() > 0, mix_corr(), 0) + rateMixD() = if(mix_corr() < 0, -mix_corr()/max(Output,0.01), 0) +end functions + +begin reaction rules + 0 -> V1s() rateV1sU() + V1s() -> 0 rateV1sD() + 0 -> V1c() rateV1cU() + V1c() -> 0 rateV1cD() + 0 -> V2s() rateV2sU() + V2s() -> 0 rateV2sD() + 0 -> V2c() rateV2cU() + V2c() -> 0 rateV2cD() + 0 -> V3s() rateV3sU() + V3s() -> 0 rateV3sD() + 0 -> V3c() rateV3cU() + V3c() -> 0 rateV3cD() + 0 -> Mix() rateMixU() + Mix() -> 0 rateMixD() + 0 -> Timer() 1 +end reaction rules + +end model + +simulate({method=>"ode",t_end=>32,n_steps=>4000}) diff --git a/Contributed/BNGPlayground_Examples/meta/mtpascaltriangle/README.md b/Contributed/BNGPlayground_Examples/meta/mtpascaltriangle/README.md new file mode 100644 index 00000000..2232a947 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/mtpascaltriangle/README.md @@ -0,0 +1,22 @@ +# mt pascal triangle + +Model: mt_pascal_triangle.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- mt_pascal_triangle.bngl + +## Tags + +mt, pascal, triangle, node diff --git a/Contributed/BNGPlayground_Examples/meta/mtpascaltriangle/metadata.yaml b/Contributed/BNGPlayground_Examples/meta/mtpascaltriangle/metadata.yaml new file mode 100644 index 00000000..9d3a5528 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/mtpascaltriangle/metadata.yaml @@ -0,0 +1,24 @@ +id: "mt_pascal_triangle" +name: "mt pascal triangle" +description: "Model: mt_pascal_triangle.bngl" +contributors: + - name: "Achyudhan" +tags: ["mt", "pascal", "triangle", "node"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/mt_pascal_triangle.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/meta/mtpascaltriangle/mt_pascal_triangle.bngl b/Contributed/BNGPlayground_Examples/meta/mtpascaltriangle/mt_pascal_triangle.bngl new file mode 100644 index 00000000..55fd25ce --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/mtpascaltriangle/mt_pascal_triangle.bngl @@ -0,0 +1,59 @@ +# Model: mt_pascal_triangle.bngl +# Description: Generates Pascal's Triangle coefficients using a rule-based approach. +# Demonstrates combinatoric logic and local state updates. +# Row(n) yields coefficients for (a+b)^n. + +begin model + +begin parameters + # Growth rate + k_grow 1.0 +end parameters + +begin molecule types + # Row(n) where n is the row number + # Pos(k) where k is the position in the row + Node(row~r0~r1~r2~r3~r4,pos~p0~p1~p2~p3~p4) +end molecule types + +begin seed species + # Row 0: 1 + Node(row~r0,pos~p0) 1.0 +end seed species + +begin observables + # Observables for Row 4 (1, 4, 6, 4, 1) + Molecules R4_0 Node(row~r4,pos~p0) + Molecules R4_1 Node(row~r4,pos~p1) + Molecules R4_2 Node(row~r4,pos~p2) + Molecules R4_3 Node(row~r4,pos~p3) + Molecules R4_4 Node(row~r4,pos~p4) +end observables + +begin reaction rules + # Row 0 -> Row 1 + Node(row~r0,pos~p0) -> Node(row~r0,pos~p0) + Node(row~r1,pos~p0) + Node(row~r1,pos~p1) k_grow + + # Row 1 -> Row 2 + Node(row~r1,pos~p0) -> Node(row~r1,pos~p0) + Node(row~r2,pos~p0) k_grow + Node(row~r1,pos~p0) + Node(row~r1,pos~p1) -> Node(row~r1,pos~p0) + Node(row~r1,pos~p1) + Node(row~r2,pos~p1) k_grow + Node(row~r1,pos~p1) -> Node(row~r1,pos~p1) + Node(row~r2,pos~p2) k_grow + + # Row 2 -> Row 3 + Node(row~r2,pos~p0) -> Node(row~r2,pos~p0) + Node(row~r3,pos~p0) k_grow + Node(row~r2,pos~p0) + Node(row~r2,pos~p1) -> Node(row~r2,pos~p0) + Node(row~r2,pos~p1) + Node(row~r3,pos~p1) k_grow + Node(row~r2,pos~p1) + Node(row~r2,pos~p2) -> Node(row~r2,pos~p1) + Node(row~r2,pos~p2) + Node(row~r3,pos~p2) k_grow + Node(row~r2,pos~p2) -> Node(row~r2,pos~p2) + Node(row~r3,pos~p3) k_grow + + # Row 3 -> Row 4 + Node(row~r3,pos~p0) -> Node(row~r3,pos~p0) + Node(row~r4,pos~p0) k_grow + Node(row~r3,pos~p0) + Node(row~r3,pos~p1) -> Node(row~r3,pos~p0) + Node(row~r3,pos~p1) + Node(row~r4,pos~p1) k_grow + Node(row~r3,pos~p1) + Node(row~r3,pos~p2) -> Node(row~r3,pos~p1) + Node(row~r3,pos~p2) + Node(row~r4,pos~p2) k_grow + Node(row~r3,pos~p2) + Node(row~r3,pos~p3) -> Node(row~r3,pos~p2) + Node(row~r3,pos~p3) + Node(row~r4,pos~p3) k_grow + Node(row~r3,pos~p3) -> Node(row~r3,pos~p3) + Node(row~r4,pos~p4) k_grow +end reaction rules + +end model + +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>10,n_steps=>50}) diff --git a/Contributed/BNGPlayground_Examples/meta/mtquine/README.md b/Contributed/BNGPlayground_Examples/meta/mtquine/README.md new file mode 100644 index 00000000..8c567180 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/mtquine/README.md @@ -0,0 +1,22 @@ +# mt quine + +Model: mt_quine.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- mt_quine.bngl + +## Tags + +mt, quine, gene, protein diff --git a/Contributed/BNGPlayground_Examples/meta/mtquine/metadata.yaml b/Contributed/BNGPlayground_Examples/meta/mtquine/metadata.yaml new file mode 100644 index 00000000..cc884f2c --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/mtquine/metadata.yaml @@ -0,0 +1,24 @@ +id: "mt_quine" +name: "mt quine" +description: "Model: mt_quine.bngl" +contributors: + - name: "Achyudhan" +tags: ["mt", "quine", "gene", "protein"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/mt_quine.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/meta/mtquine/mt_quine.bngl b/Contributed/BNGPlayground_Examples/meta/mtquine/mt_quine.bngl new file mode 100644 index 00000000..b701e07b --- /dev/null +++ b/Contributed/BNGPlayground_Examples/meta/mtquine/mt_quine.bngl @@ -0,0 +1,56 @@ +# Model: mt_quine.bngl +# Description: Implements a BioNetGen Quine (Self-Replicating Model Logic). +# A true Quine in code prints its own source. +# In BNGL,this model's steady-state concentrations encode its own parameters. +# Parameters: P1=10,P2=20. +# Observables: S1 -> 10,S2 -> 20. + +begin model + +begin parameters + # The "Genetic" Code + P1 10.0 + P2 20.0 + k_synth 1.0 +end parameters + +begin molecule types + Gene(id~1~2) + Protein(id~1~2) +end molecule types + +begin seed species + # The source code (Gened) + Gene(id~1) 1.0 + Gene(id~2) 1.0 + Protein(id~1) 0.0 + Protein(id~2) 0.0 +end seed species + +begin observables + Molecules S1 Protein(id~1) + Molecules S2 Protein(id~2) +end observables + +begin reaction rules + # Gene 1 expresses Protein 1 at rate P1 + Gene(id~1) -> Gene(id~1) + Protein(id~1) P1 * k_synth + + # Gene 2 expresses Protein 2 at rate P2 + Gene(id~2) -> Gene(id~2) + Protein(id~2) P2 * k_synth + + # Normalization (Decay at rate 1.0) + # Steady state: Synth = Decay => P * 1 = [Prob] * 1 => [Prob] = P + Protein(id~1) -> 0 1.0 + Protein(id~2) -> 0 1.0 +end reaction rules + +end model + +# --- Actions --- +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>10,n_steps=>100}) + +# VERIFICATION: +# If [Protein(id~1)] @ ss == P1 AND [Protein(id~2)] @ ss == P2: +# The model has successfully "printed" its own internal constants. diff --git a/Contributed/BNGPlayground_Examples/ml/mlgradientdescent/README.md b/Contributed/BNGPlayground_Examples/ml/mlgradientdescent/README.md new file mode 100644 index 00000000..bacf113d --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ml/mlgradientdescent/README.md @@ -0,0 +1,22 @@ +# ml gradient descent + +Gradient Descent Optimizer in BNGL + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- ml_gradient_descent.bngl + +## Tags + +ml, gradient, descent, posx, posy, velx, vely, loss diff --git a/Contributed/BNGPlayground_Examples/ml/mlgradientdescent/metadata.yaml b/Contributed/BNGPlayground_Examples/ml/mlgradientdescent/metadata.yaml new file mode 100644 index 00000000..ce7fc81e --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ml/mlgradientdescent/metadata.yaml @@ -0,0 +1,24 @@ +id: "ml_gradient_descent" +name: "ml gradient descent" +description: "Gradient Descent Optimizer in BNGL" +contributors: + - name: "Achyudhan" +tags: ["ml", "gradient", "descent", "posx", "posy", "velx", "vely", "loss"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/ml_gradient_descent.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/ml/mlgradientdescent/ml_gradient_descent.bngl b/Contributed/BNGPlayground_Examples/ml/mlgradientdescent/ml_gradient_descent.bngl new file mode 100644 index 00000000..812f7c0e --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ml/mlgradientdescent/ml_gradient_descent.bngl @@ -0,0 +1,103 @@ +# Gradient Descent Optimizer in BNGL +# ==================================== +# Molecules represent position in a 2D optimization landscape. +# The ODE dynamics ARE gradient descent with momentum. +# +# Minimizing the Rosenbrock function: f(x,y) = (1-x)^2 + 100*(y-x^2)^2 +# Famous "banana valley" test function for optimizers. +# +# Position encoded as shifted concentrations (to stay positive). +# Velocity molecules implement momentum. + +begin model + +begin parameters + # Optimizer hyperparameters + lr 0.0001 # Learning rate (small for Rosenbrock) + momentum 0.9 # Momentum coefficient + + # Coordinate offset (keep concentrations positive) + off_x 5.0 # x = PosX - off_x + off_y 5.0 # y = PosY - off_y + + # Damping + vel_decay 0.1 # Velocity damping +end parameters + +begin molecule types + PosX() # x-coordinate (shifted) + PosY() # y-coordinate (shifted) + VelX() # x-velocity (momentum term) + VelY() # y-velocity (momentum term) + Loss() # Current loss value (for observing convergence) +end molecule types + +begin seed species + # Start at (-1,-1) -> shifted to (4,4) + PosX() 4.0 + PosY() 4.0 + VelX() 5.0 # Need offset for velocity too + VelY() 5.0 + Loss() 0 +end seed species + +begin observables + Molecules X_shifted PosX() + Molecules Y_shifted PosY() + Molecules Vx VelX() + Molecules Vy VelY() + Molecules LossVal Loss() +end observables + +begin functions + # Recover actual coordinates + x() = X_shifted - off_x + y() = Y_shifted - off_y + vx() = Vx - off_x # Actual velocity + vy() = Vy - off_y + + # Rosenbrock function: f = (1-x)^2 + 100*(y - x^2)^2 + rosenbrock() = (1 - x())^2 + 100*(y() - x()*x())^2 + + # Gradient of Rosenbrock: + # df/dx = -2*(1-x) + 100*2*(y-x^2)*(-2x) = -2*(1-x) - 400*x*(y-x^2) + # df/dy = 100*2*(y-x^2) = 200*(y-x^2) + grad_x() = -2*(1 - x()) - 400*x()*(y() - x()*x()) + grad_y() = 200*(y() - x()*x()) + + # Momentum update: v_new = momentum * v_old - lr * gradient + target_vx() = momentum * vx() - lr * grad_x() + target_vy() = momentum * vy() - lr * grad_y() + + # Position update rate: dx/dt = velocity + # Corrective rate to drive velocity toward target + vx_correction() = 10 * (target_vx() - vx()) + vy_correction() = 10 * (target_vy() - vy()) +end functions + +begin reaction rules + # === POSITION UPDATE: dx/dt = velocity === + 0 -> PosX() if(vx() > 0,vx(),0) + PosX() -> 0 if(vx() < 0,-vx() / max(X_shifted,0.001),0) + + 0 -> PosY() if(vy() > 0,vy(),0) + PosY() -> 0 if(vy() < 0,-vy() / max(Y_shifted,0.001),0) + + # === VELOCITY UPDATE: momentum SGD === + 0 -> VelX() if(vx_correction() > 0,vx_correction(),0) + VelX() -> 0 if(vx_correction() < 0,-vx_correction() / max(Vx,0.001),0) + + 0 -> VelY() if(vy_correction() > 0,vy_correction(),0) + VelY() -> 0 if(vy_correction() < 0,-vy_correction() / max(Vy,0.001),0) + + # === LOSS TRACKING === + 0 -> Loss() rosenbrock() + Loss() -> 0 1.0 # Decay so it tracks current loss +end reaction rules + +end model + +# Watch the optimizer navigate the banana valley to minimum at (1,1) +# X_shifted should converge to 6.0 (= 1 + offset) +# Y_shifted should converge to 6.0 (= 1 + offset) +simulate({method=>"ode",t_end=>5000,n_steps=>300}) diff --git a/Contributed/BNGPlayground_Examples/ml/mlhopfield/README.md b/Contributed/BNGPlayground_Examples/ml/mlhopfield/README.md new file mode 100644 index 00000000..1a23111f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ml/mlhopfield/README.md @@ -0,0 +1,22 @@ +# ml hopfield + +Model: ml_hopfield.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- ml_hopfield.bngl + +## Tags + +ml, hopfield, neuron, net1, net2, net3, target1 diff --git a/Contributed/BNGPlayground_Examples/ml/mlhopfield/metadata.yaml b/Contributed/BNGPlayground_Examples/ml/mlhopfield/metadata.yaml new file mode 100644 index 00000000..df198c1c --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ml/mlhopfield/metadata.yaml @@ -0,0 +1,24 @@ +id: "ml_hopfield" +name: "ml hopfield" +description: "Model: ml_hopfield.bngl" +contributors: + - name: "Achyudhan" +tags: ["ml", "hopfield", "neuron", "net1", "net2", "net3", "target1"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/ml_hopfield.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/ml/mlhopfield/ml_hopfield.bngl b/Contributed/BNGPlayground_Examples/ml/mlhopfield/ml_hopfield.bngl new file mode 100644 index 00000000..a49137a7 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ml/mlhopfield/ml_hopfield.bngl @@ -0,0 +1,75 @@ +# Model: ml_hopfield.bngl +# Description: Implements a 3-neuron Hopfield Network (Associative Memory). +# Weights are encoded in pairwise cross-production rules. +# Initial state is a corrupted pattern; simulation converges to a stored memory. +# Demonstrates attractor dynamics in a rule-based system. + +begin model + +begin parameters + # Hebbian weights for pattern [1,-1,1] + # W_ij = s_i * s_j + W12 -1.0 + W13 1.0 + W23 -1.0 + + Tau 1.0 + Gain 5.0 +end parameters + +begin molecule types + Neuron(id~1~2~3) +end molecule types + +begin seed species + # Corrupted pattern: [1,1,1] (Target is [1,-1,1]) + Neuron(id~1) 1.0 + Neuron(id~2) 0.8 # Corrupted (should be -1) + Neuron(id~3) 1.0 +end seed species + +begin observables + Molecules S1 Neuron(id~1) + Molecules S2 Neuron(id~2) + Molecules S3 Neuron(id~3) +end observables + +begin functions + # Activation: tanh(sum(W_ij * S_j)) + # We use concentration values in [-1,1] range. + # Note: BNGL concentrations are non-negative. We shift to [0,2] or use two molecules. + # To keep it simple,we'll use [0,1] logic with shifted weights. + + # Net input to Neuron i + Net1() = (W12 * (2*S2-1)) + (W13 * (2*S3-1)) + Net2() = (W12 * (2*S1-1)) + (W23 * (2*S3-1)) + Net3() = (W13 * (2*S1-1)) + (W23 * (2*S2-1)) + + # Target state: Sigmoid(Gain * Net) + Target1() = 1 / (1 + exp(-Gain * Net1())) + Target2() = 1 / (1 + exp(-Gain * Net2())) + Target3() = 1 / (1 + exp(-Gain * Net3())) + + # ODE Rates + dS1_dt() = (Target1() - S1) / Tau + dS2_dt() = (Target2() - S2) / Tau + dS3_dt() = (Target3() - S3) / Tau +end functions + +begin reaction rules + # Attractor dynamics + U1: 0 -> Neuron(id~1) if(dS1_dt()>0,dS1_dt(),0) + D1: Neuron(id~1) -> 0 if(dS1_dt()<0,-dS1_dt(),0) + + U2: 0 -> Neuron(id~2) if(dS2_dt()>0,dS2_dt(),0) + D2: Neuron(id~2) -> 0 if(dS2_dt()<0,-dS2_dt(),0) + + U3: 0 -> Neuron(id~3) if(dS3_dt()>0,dS3_dt(),0) + D3: Neuron(id~3) -> 0 if(dS3_dt()<0,-dS3_dt(),0) +end reaction rules + +end model + +# --- Actions --- +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>10,n_steps=>100}) diff --git a/Contributed/BNGPlayground_Examples/ml/mlkmeans/README.md b/Contributed/BNGPlayground_Examples/ml/mlkmeans/README.md new file mode 100644 index 00000000..01c01bba --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ml/mlkmeans/README.md @@ -0,0 +1,22 @@ +# ml kmeans + +Model: ml_kmeans.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- ml_kmeans.bngl + +## Tags + +ml, kmeans, ax, ay, bx, by diff --git a/Contributed/BNGPlayground_Examples/ml/mlkmeans/metadata.yaml b/Contributed/BNGPlayground_Examples/ml/mlkmeans/metadata.yaml new file mode 100644 index 00000000..fe9f8252 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ml/mlkmeans/metadata.yaml @@ -0,0 +1,24 @@ +id: "ml_kmeans" +name: "ml kmeans" +description: "Model: ml_kmeans.bngl" +contributors: + - name: "Achyudhan" +tags: ["ml", "kmeans", "ax", "ay", "bx", "by"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/ml_kmeans.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/ml/mlkmeans/ml_kmeans.bngl b/Contributed/BNGPlayground_Examples/ml/mlkmeans/ml_kmeans.bngl new file mode 100644 index 00000000..e35ea4e9 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ml/mlkmeans/ml_kmeans.bngl @@ -0,0 +1,101 @@ +# Model: ml_kmeans.bngl +# Description: Implements K-means clustering logic in BNGL. +# Centroids (AX, AY, BX, BY) are distinct molecule types. +# Centroids drift toward the mean of assigned data points. + +begin model + +begin parameters + # Coordinates of 4 data points + X1 10.0 + Y1 10.0 + X2 12.0 + Y2 8.0 + X3 50.0 + Y3 50.0 + X4 55.0 + Y4 45.0 + + LearningRate 0.005 + Tau 1.0 +end parameters + +begin molecule types + AX() + AY() + BX() + BY() +end molecule types + +begin seed species + AX() 30.0 + AY() 30.0 + BX() 31.0 + BY() 31.0 +end seed species + +begin observables + Molecules ObsAX AX() + Molecules ObsAY AY() + Molecules ObsBX BX() + Molecules ObsBY BY() +end observables + +begin functions + # Distance squared calculation - Point 1 + DistSqA1() = (X1-ObsAX)*(X1-ObsAX) + (Y1-ObsAY)*(Y1-ObsAY) + DistSqB1() = (X1-ObsBX)*(X1-ObsBX) + (Y1-ObsBY)*(Y1-ObsBY) + IsA1() = 1 / (1 + exp(min(50, max(-50, -10 * (DistSqB1() - DistSqA1()))))) + IsB1() = 1 / (1 + exp(min(50, max(-50, -10 * (DistSqA1() - DistSqB1()))))) + + # Distance squared calculation - Point 2 + DistSqA2() = (X2-ObsAX)*(X2-ObsAX) + (Y2-ObsAY)*(Y2-ObsAY) + DistSqB2() = (X2-ObsBX)*(X2-ObsBX) + (Y2-ObsBY)*(Y2-ObsBY) + IsA2() = 1 / (1 + exp(min(50, max(-50, -10 * (DistSqB2() - DistSqA2()))))) + IsB2() = 1 / (1 + exp(min(50, max(-50, -10 * (DistSqA2() - DistSqB2()))))) + + # Distance squared calculation - Point 3 + DistSqA3() = (X3-ObsAX)*(X3-ObsAX) + (Y3-ObsAY)*(Y3-ObsAY) + DistSqB3() = (X3-ObsBX)*(X3-ObsBX) + (Y3-ObsBY)*(Y3-ObsBY) + IsA3() = 1 / (1 + exp(min(50, max(-50, -10 * (DistSqB3() - DistSqA3()))))) + IsB3() = 1 / (1 + exp(min(50, max(-50, -10 * (DistSqA3() - DistSqB3()))))) + + # Distance squared calculation - Point 4 + DistSqA4() = (X4-ObsAX)*(X4-ObsAX) + (Y4-ObsAY)*(Y4-ObsAY) + DistSqB4() = (X4-ObsBX)*(X4-ObsBX) + (Y4-ObsBY)*(Y4-ObsBY) + IsA4() = 1 / (1 + exp(min(50, max(-50, -10 * (DistSqB4() - DistSqA4()))))) + IsB4() = 1 / (1 + exp(min(50, max(-50, -10 * (DistSqA4() - DistSqB4()))))) + + # Drift forcing + dAX_dt() = LearningRate * (IsA1()*(X1-ObsAX) + IsA2()*(X2-ObsAX) + IsA3()*(X3-ObsAX) + IsA4()*(X4-ObsAX)) + dAY_dt() = LearningRate * (IsA1()*(Y1-ObsAY) + IsA2()*(Y2-ObsAY) + IsA3()*(Y3-ObsAY) + IsA4()*(Y4-ObsAY)) + dBX_dt() = LearningRate * (IsB1()*(X1-ObsBX) + IsB2()*(X2-ObsBX) + IsB3()*(X3-ObsBX) + IsB4()*(X4-ObsBX)) + dBY_dt() = LearningRate * (IsB1()*(Y1-ObsBY) + IsB2()*(Y2-ObsBY) + IsB3()*(Y3-ObsBY) + IsB4()*(Y4-ObsBY)) + + # Smooth Positive Function (approx for max(0, x)) + # SmoothPos inlined + rateAXU() = 0.5 * (dAX_dt() + sqrt(dAX_dt()^2 + 1e-4)) + rateAXD() = 0.5 * (-dAX_dt() + sqrt((-dAX_dt())^2 + 1e-4)) + rateAYU() = 0.5 * (dAY_dt() + sqrt(dAY_dt()^2 + 1e-4)) + rateAYD() = 0.5 * (-dAY_dt() + sqrt((-dAY_dt())^2 + 1e-4)) + rateBXU() = 0.5 * (dBX_dt() + sqrt(dBX_dt()^2 + 1e-4)) + rateBXD() = 0.5 * (-dBX_dt() + sqrt((-dBX_dt())^2 + 1e-4)) + rateBYU() = 0.5 * (dBY_dt() + sqrt(dBY_dt()^2 + 1e-4)) + rateBYD() = 0.5 * (-dBY_dt() + sqrt((-dBY_dt())^2 + 1e-4)) +end functions + +begin reaction rules + R1: 0 -> AX() rateAXU() + R2: AX() -> 0 rateAXD() + R3: 0 -> AY() rateAYU() + R4: AY() -> 0 rateAYD() + R5: 0 -> BX() rateBXU() + R6: BX() -> 0 rateBXD() + R7: 0 -> BY() rateBYU() + R8: BY() -> 0 rateBYD() +end reaction rules + +end model + +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>0.1,n_steps=>10}) diff --git a/Contributed/BNGPlayground_Examples/ml/mlqlearning/README.md b/Contributed/BNGPlayground_Examples/ml/mlqlearning/README.md new file mode 100644 index 00000000..eebb40f2 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ml/mlqlearning/README.md @@ -0,0 +1,22 @@ +# ml q learning + +Q-Learning Agent in BNGL + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- ml_q_learning.bngl + +## Tags + +ml, q, learning, pos, ql, qr, reward, action diff --git a/Contributed/BNGPlayground_Examples/ml/mlqlearning/metadata.yaml b/Contributed/BNGPlayground_Examples/ml/mlqlearning/metadata.yaml new file mode 100644 index 00000000..2a5ee7ac --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ml/mlqlearning/metadata.yaml @@ -0,0 +1,24 @@ +id: "ml_q_learning" +name: "ml q learning" +description: "Q-Learning Agent in BNGL" +contributors: + - name: "Achyudhan" +tags: ["ml", "q", "learning", "pos", "ql", "qr", "reward", "action"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/ml_q_learning.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/ml/mlqlearning/ml_q_learning.bngl b/Contributed/BNGPlayground_Examples/ml/mlqlearning/ml_q_learning.bngl new file mode 100644 index 00000000..3f7b56ae --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ml/mlqlearning/ml_q_learning.bngl @@ -0,0 +1,119 @@ +# Q-Learning Agent in BNGL +# ========================= +# A reinforcement learning agent navigating a 1D environment. +# +# State: Position along a line (encoded as concentration of Pos molecule) +# Actions: Move Left or Move Right (competing molecule production) +# Q-values: QL and QR molecules whose concentrations ARE the Q-values +# Reward: proximity to goal position +# +# The Bellman update is encoded as production/decay functions. +# Winner-take-all action selection via sigmoid competition. +# No chemistry — the ODE system IS the RL algorithm. + +begin model + +begin parameters + # Environment + goal 80.0 # Goal position + + # RL hyperparameters + alpha 0.5 # Learning rate + gamma 0.9 # Discount factor + + # Action dynamics + step_size 5.0 # Movement per action + + # Exploration (softmax temperature) + temp 5.0 # Temperature for action selection + + # Offset + off 50.0 # Keep Q-values positive +end parameters + +begin molecule types + Pos() # Agent position + QL() # Q-value for "move left" + QR() # Q-value for "move right" + Reward() # Current reward signal + Action() # Current action (+1 = right,encoded as concentration) +end molecule types + +begin seed species + Pos() 10.0 # Start near left edge + QL() 50.0 # Q(left) = 0 + offset (no preference) + QR() 50.0 # Q(right) = 0 + offset + Reward() 0 + Action() 50.0 # Neutral +end seed species + +begin observables + Molecules Position Pos() + Molecules Q_Left QL() + Molecules Q_Right QR() + Molecules Rew Reward() + Molecules Act Action() +end observables + +begin functions + # Actual Q-values (unshifted) + ql() = Q_Left - off + qr() = Q_Right - off + + # Reward: higher when closer to goal (Gaussian reward landscape) + reward() = 100 * exp(-(Position - goal)^2 / 500) + + # Softmax action selection: + # P(right) = exp(QR/temp) / (exp(QL/temp) + exp(QR/temp)) + # Simplified: use sigmoid on Q difference + p_right() = 1 / (1 + exp(-(qr() - ql()) / temp)) + p_left() = 1 - p_right() + + # Net action: positive = move right,negative = move left + net_action() = step_size * (p_right() - p_left()) + + # === BELLMAN UPDATE === + # Q(s,right) += alpha * (reward + gamma * max(Q') - Q(s,right)) + # max(Q') approximated by max(ql,qr) via soft-max + max_q() = if(qr() > ql(),qr(),ql()) + + # TD error for right action + td_right() = reward() + gamma * max_q() - qr() + # TD error for left action + td_left() = reward() + gamma * max_q() - ql() + + # Weight updates by action probability (expected SARSA style) + dqr() = alpha * p_right() * td_right() + dql() = alpha * p_left() * td_left() +end functions + +begin reaction rules + # === MOVEMENT === + # Position changes based on softmax action selection + 0 -> Pos() if(net_action() > 0,net_action(),0) + Pos() -> 0 if(net_action() < 0,-net_action() / max(Position,0.01),0) + + # === Q-VALUE UPDATES (Bellman equation as ODE) === + # Q(right) update + 0 -> QR() if(dqr() > 0,dqr(),0) + QR() -> 0 if(dqr() < 0,-dqr() / max(Q_Right,0.01),0) + + # Q(left) update + 0 -> QL() if(dql() > 0,dql(),0) + QL() -> 0 if(dql() < 0,-dql() / max(Q_Left,0.01),0) + + # === REWARD TRACKING === + 0 -> Reward() reward() + Reward() -> 0 1.0 + + # === ACTION TRACKING === + 0 -> Action() if(net_action() + off > Act,\ + (net_action() + off - Act),0) + Action() -> 0 if(net_action() + off < Act,\ + (Act - net_action() - off)/max(Act,0.01),0) +end reaction rules + +end model + +# Watch the agent learn to move toward the goal +simulate({method=>"ode",t_end=>100,n_steps=>1000}) diff --git a/Contributed/BNGPlayground_Examples/ml/mlsvm/README.md b/Contributed/BNGPlayground_Examples/ml/mlsvm/README.md new file mode 100644 index 00000000..219f7ea1 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ml/mlsvm/README.md @@ -0,0 +1,22 @@ +# ml svm + +Model: ml_svm.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- ml_svm.bngl + +## Tags + +ml, svm, w1, w2, b, db_dt, dw1_dt diff --git a/Contributed/BNGPlayground_Examples/ml/mlsvm/metadata.yaml b/Contributed/BNGPlayground_Examples/ml/mlsvm/metadata.yaml new file mode 100644 index 00000000..bfa55725 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ml/mlsvm/metadata.yaml @@ -0,0 +1,24 @@ +id: "ml_svm" +name: "ml svm" +description: "Model: ml_svm.bngl" +contributors: + - name: "Achyudhan" +tags: ["ml", "svm", "w1", "w2", "b", "db_dt", "dw1_dt"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/ml_svm.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/ml/mlsvm/ml_svm.bngl b/Contributed/BNGPlayground_Examples/ml/mlsvm/ml_svm.bngl new file mode 100644 index 00000000..af226fbb --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ml/mlsvm/ml_svm.bngl @@ -0,0 +1,79 @@ +# Model: ml_svm.bngl +# Description: Implements a Linear Support Vector Machine (SVM). +# Hyperplane Weights (W1, W2) and Bias (B) are distinct molecule types. +# Data points are constant parameters. +# Training logic uses gradient descent on Hinge Loss. + +begin model + +begin parameters + # Data Set (x1,x2,label) + # Class 1 + P1x 1.0 + P1y 1.0 + P1l 1.0 + # Class -1 + P2x 5.0 + P2y 5.0 + P2l_abs 1.0 + + # Training parameters + Eta 0.005 + Lambda 0.01 + Tau 1.0 +end parameters + +begin molecule types + W1() + W2() + B() +end molecule types + +begin seed species + W1() 0.1 + W2() 0.1 + B() 0.0 +end seed species + +begin observables + Molecules ObsW1 W1() + Molecules ObsW2 W2() + Molecules ObsB B() +end observables + +begin functions + # Inlined calculations for better performance/reliability + # Point 1: Class 1 (1.0, 1.0, label=1.0) + # Point 2: Class -1 (5.0, 5.0, label=-1.0) + + # dB_dt = -Eta * (GradB1 + GradB2) * 0.5 + # GradB1 = -1 * 1 / (1 + exp(-10 * (1 - (ObsW1 * 1.0 + ObsW2 * 1.0 + ObsB)))) + # GradB2 = -(-1) * 1 / (1 + exp(-10 * (1 - (-1.0 * (ObsW1 * 5.0 + ObsW2 * 5.0 + ObsB))))) + + # Let's just use the original structure but check the signs + dB_dt() = ((-Eta)/2) * ( -1/(1+exp(min(50,max(-50,-10*(1-((ObsW1*P1x)+(ObsW2*P1y)+ObsB)*1.0))))) + 1/(1+exp(min(50,max(-50,-10*(1-((ObsW1*P2x)+(ObsW2*P2y)+ObsB)*(-P2l_abs)))))) ) + + dW1_dt() = -Eta * (Lambda * ObsW1 + ( (-P1l*P1x)/(1+exp(min(50,max(-50,-10*(1-((ObsW1*P1x)+(ObsW2*P1y)+ObsB)*P1l))))) + (-(-P2l_abs)*P2x)/(1+exp(min(50,max(-50,-10*(1-((ObsW1*P2x)+(ObsW2*P2y)+ObsB)*(-P2l_abs)))))) )/2) + dW2_dt() = -Eta * (Lambda * ObsW2 + ( (-P1l*P1y)/(1+exp(min(50,max(-50,-10*(1-((ObsW1*P1x)+(ObsW2*P1y)+ObsB)*P1l))))) + (-(-P2l_abs)*P2y)/(1+exp(min(50,max(-50,-10*(1-((ObsW1*P2x)+(ObsW2*P2y)+ObsB)*(-P2l_abs)))))) )/2) + + rateU1() = 0.5 * (dW1_dt() + sqrt(dW1_dt()^2 + 1e-4)) + rateD1() = 0.5 * (-dW1_dt() + sqrt((-dW1_dt())^2 + 1e-4)) + rateU2() = 0.5 * (dW2_dt() + sqrt(dW2_dt()^2 + 1e-4)) + rateD2() = 0.5 * (-dW2_dt() + sqrt((-dW2_dt())^2 + 1e-4)) + rateUB() = 0.5 * (dB_dt() + sqrt(dB_dt()^2 + 1e-4)) + rateDB() = 0.5 * (-dB_dt() + sqrt((-dB_dt())^2 + 1e-4)) +end functions + +begin reaction rules + R1: 0 -> W1() rateU1() + R2: W1() -> 0 rateD1() + R3: 0 -> W2() rateU2() + R4: W2() -> 0 rateD2() + R5: 0 -> B() rateUB() + R6: B() -> 0 rateDB() +end reaction rules + +end model + +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>0.1,n_steps=>10}) diff --git a/Contributed/BNGPlayground_Examples/ml/nnxor/README.md b/Contributed/BNGPlayground_Examples/ml/nnxor/README.md new file mode 100644 index 00000000..d23b40c6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ml/nnxor/README.md @@ -0,0 +1,22 @@ +# nn xor + +Model: nn_xor.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- nn_xor.bngl + +## Tags + +nn, xor, input, hidden, output, target, weightih, weightho, dopamine diff --git a/Contributed/BNGPlayground_Examples/ml/nnxor/metadata.yaml b/Contributed/BNGPlayground_Examples/ml/nnxor/metadata.yaml new file mode 100644 index 00000000..6ca56055 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ml/nnxor/metadata.yaml @@ -0,0 +1,24 @@ +id: "nn_xor" +name: "nn xor" +description: "Model: nn_xor.bngl" +contributors: + - name: "Achyudhan" +tags: ["nn", "xor", "input", "hidden", "output", "target", "weightih", "weightho", "dopamine"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/nn_xor.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/ml/nnxor/nn_xor.bngl b/Contributed/BNGPlayground_Examples/ml/nnxor/nn_xor.bngl new file mode 100644 index 00000000..fcdff4a5 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/ml/nnxor/nn_xor.bngl @@ -0,0 +1,189 @@ +# Model: nn_xor.bngl +# Description: A multilayer perceptron trained to solve the XOR problem using backpropagation logic. +# Demonstrates adaptive learning and gradient descent in BNGL. + +begin model + +begin parameters + Tau 1.0 + BaseEta 15.0 + Gain 4.0 + Bias -0.5 + DecayRate 0.1 +end parameters + +begin molecule types + Input(id~1~2) + Hidden(id~1~2) + Output(y) + Target(t) + WeightIH(i~1~2,j~1~2,type~POS~NEG) + WeightHO(j~1~2,type~POS~NEG) + Dopamine(conc) +end molecule types + +begin seed species + # Phase 1: The Void (0,0 -> 0) + Input(id~1) 0.0 + Input(id~2) 0.0 + Target(t) 0.0 + + Hidden(id~1) 0.0 + Hidden(id~2) 0.0 + Output(y) 0.0 + + # Initialize weights + WeightIH(i~1,j~1,type~POS) 0.5 + WeightIH(i~1,j~2,type~POS) 0.5 + WeightIH(i~2,j~1,type~POS) 0.5 + WeightIH(i~2,j~2,type~POS) 0.5 + + WeightHO(j~1,type~POS) 0.5 + WeightHO(j~2,type~POS) 0.5 + + Dopamine(conc) 0.0 +end seed species + +begin observables + # --- ESSENTIAL: Define EVERY weight component used in math --- + + # Inputs & Outputs + Molecules In1 Input(id~1) + Molecules In2 Input(id~2) + Molecules Y_Out Output(y) + Molecules Truth Target(t) # Intentional: constant reference signal for error computation + Molecules DA Dopamine(conc) + + # Hidden Neurons (Needed for Backprop) + Molecules H1_Act Hidden(id~1) + Molecules H2_Act Hidden(id~2) + + # Weights: Input 1 -> Hidden 1 + Molecules W11_Pos WeightIH(i~1,j~1,type~POS) + Molecules W11_Neg WeightIH(i~1,j~1,type~NEG) + + # Weights: Input 1 -> Hidden 2 + Molecules W12_Pos WeightIH(i~1,j~2,type~POS) + Molecules W12_Neg WeightIH(i~1,j~2,type~NEG) + + # Weights: Input 2 -> Hidden 1 + Molecules W21_Pos WeightIH(i~2,j~1,type~POS) + Molecules W21_Neg WeightIH(i~2,j~1,type~NEG) + + # Weights: Input 2 -> Hidden 2 + Molecules W22_Pos WeightIH(i~2,j~2,type~POS) + Molecules W22_Neg WeightIH(i~2,j~2,type~NEG) + + # Weights: Hidden 1 -> Output + Molecules V1_Pos WeightHO(j~1,type~POS) + Molecules V1_Neg WeightHO(j~1,type~NEG) + + # Weights: Hidden 2 -> Output + Molecules V2_Pos WeightHO(j~2,type~POS) + Molecules V2_Neg WeightHO(j~2,type~NEG) +end observables + +begin functions + # Net Weights + W11_Net() = W11_Pos - W11_Neg + W12_Net() = W12_Pos - W12_Neg + W21_Net() = W21_Pos - W21_Neg + W22_Net() = W22_Pos - W22_Neg + V1_Net() = V1_Pos - V1_Neg + V2_Net() = V2_Pos - V2_Neg + + # Forward Pass + Net_H1() = (In1 * W11_Net()) + (In2 * W21_Net()) + Bias + Sig_H1() = 1 / (1 + exp(-Gain * Net_H1())) + + Net_H2() = (In1 * W12_Net()) + (In2 * W22_Net()) + Bias + Sig_H2() = 1 / (1 + exp(-Gain * Net_H2())) + + Net_Y() = (H1_Act * V1_Net()) + (H2_Act * V2_Net()) + Bias + Sig_Y() = 1 / (1 + exp(-Gain * Net_Y())) + + # ODEs + dH1_dt() = (Sig_H1() - H1_Act) / Tau + dH2_dt() = (Sig_H2() - H2_Act) / Tau + dY_dt() = (Sig_Y() - Y_Out) / Tau + + # Meta Learning + Global_Error() = (Truth - Y_Out)^2 + Target_DA() = 1.0 + (50.0 * Global_Error()) + dDA_dt() = (Target_DA() - DA) * 5.0 + + # Backprop + E_term() = (Truth - Y_Out) + + Grad_V1() = E_term() * (Y_Out*(1-Y_Out)) * H1_Act + Grad_W11() = E_term() * (Y_Out*(1-Y_Out)) * V1_Net() * (H1_Act*(1-H1_Act)) * In1 + + # Rates + Rate_V1() = BaseEta * DA * Grad_V1() + Rate_W11() = BaseEta * DA * Grad_W11() +end functions + +begin reaction rules + # Neurons + Upd_H1: 0 -> Hidden(id~1) if(dH1_dt()>0,dH1_dt(),0) + Dec_H1: Hidden(id~1) -> 0 if(dH1_dt()<0,-dH1_dt(),0) + + Upd_H2: 0 -> Hidden(id~2) if(dH2_dt()>0,dH2_dt(),0) + Dec_H2: Hidden(id~2) -> 0 if(dH2_dt()<0,-dH2_dt(),0) + + Upd_Y: 0 -> Output(y) if(dY_dt()>0,dY_dt(),0) + Dec_Y: Output(y) -> 0 if(dY_dt()<0,-dY_dt(),0) + + # Dopamine + Upd_DA: 0 -> Dopamine(conc) if(dDA_dt()>0,dDA_dt(),0) + Dec_DA: Dopamine(conc) -> 0 if(dDA_dt()<0,-dDA_dt(),0) + + # Plasticity (Growth) + Grow_V1_Pos: 0 -> WeightHO(j~1,type~POS) if(Rate_V1()>0,Rate_V1(),0) + Grow_V1_Neg: 0 -> WeightHO(j~1,type~NEG) if(Rate_V1()<0,-Rate_V1(),0) + + Grow_W11_Pos: 0 -> WeightIH(i~1,j~1,type~POS) if(Rate_W11()>0,Rate_W11(),0) + Grow_W11_Neg: 0 -> WeightIH(i~1,j~1,type~NEG) if(Rate_W11()<0,-Rate_W11(),0) + + # Plasticity (Decay/Forgetting) - APPLY TO ALL WEIGHTS + Rot_W11_Pos: WeightIH(i~1,j~1,type~POS) -> 0 DecayRate + Rot_W11_Neg: WeightIH(i~1,j~1,type~NEG) -> 0 DecayRate + + Rot_W12_Pos: WeightIH(i~1,j~2,type~POS) -> 0 DecayRate + Rot_W12_Neg: WeightIH(i~1,j~2,type~NEG) -> 0 DecayRate + + Rot_W21_Pos: WeightIH(i~2,j~1,type~POS) -> 0 DecayRate + Rot_W21_Neg: WeightIH(i~2,j~1,type~NEG) -> 0 DecayRate + + Rot_W22_Pos: WeightIH(i~2,j~2,type~POS) -> 0 DecayRate + Rot_W22_Neg: WeightIH(i~2,j~2,type~NEG) -> 0 DecayRate + + Rot_V1_Pos: WeightHO(j~1,type~POS) -> 0 DecayRate + Rot_V1_Neg: WeightHO(j~1,type~NEG) -> 0 DecayRate + + Rot_V2_Pos: WeightHO(j~2,type~POS) -> 0 DecayRate + Rot_V2_Neg: WeightHO(j~2,type~NEG) -> 0 DecayRate +end reaction rules + +end model + +# --- Actions --- +generate_network({overwrite=>1}) + +# PHASE 1: The Void (0,0) -> 0 +simulate({method=>"ode",t_end=>40,n_steps=>200}) + +# PHASE 2: Left Excitation (1,0) -> 1 +setConcentration("Input(id~1)",1.0) +setConcentration("Target(t)",1.0) +simulate({method=>"ode",t_end=>80,n_steps=>200,continue=>1}) + +# PHASE 3: Right Excitation (0,1) -> 1 +setConcentration("Input(id~1)",0.0) +setConcentration("Input(id~2)",1.0) +simulate({method=>"ode",t_end=>120,n_steps=>200,continue=>1}) + +# PHASE 4: The Conflict (1,1) -> 0 +setConcentration("Input(id~1)",1.0) +setConcentration("Target(t)",0.0) +simulate({method=>"ode",t_end=>160,n_steps=>200,continue=>1}) diff --git a/Contributed/BNGPlayground_Examples/nfsim/nfsimaggregationgelation/README.md b/Contributed/BNGPlayground_Examples/nfsim/nfsimaggregationgelation/README.md new file mode 100644 index 00000000..4fe967cb --- /dev/null +++ b/Contributed/BNGPlayground_Examples/nfsim/nfsimaggregationgelation/README.md @@ -0,0 +1,22 @@ +# nfsim aggregation gelation + +Model: nfsim_aggregation_gelation.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: nf +- Imported from: ai-generated + +## Files + +- nfsim_aggregation_gelation.bngl + +## Tags + +nfsim, aggregation, gelation, m diff --git a/Contributed/BNGPlayground_Examples/nfsim/nfsimaggregationgelation/metadata.yaml b/Contributed/BNGPlayground_Examples/nfsim/nfsimaggregationgelation/metadata.yaml new file mode 100644 index 00000000..2940c5cc --- /dev/null +++ b/Contributed/BNGPlayground_Examples/nfsim/nfsimaggregationgelation/metadata.yaml @@ -0,0 +1,24 @@ +id: "nfsim_aggregation_gelation" +name: "nfsim aggregation gelation" +description: "Model: nfsim_aggregation_gelation.bngl" +contributors: + - name: "Achyudhan" +tags: ["nfsim", "aggregation", "gelation", "m"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["nf"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/nfsim_aggregation_gelation.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/nfsim/nfsimaggregationgelation/nfsim_aggregation_gelation.bngl b/Contributed/BNGPlayground_Examples/nfsim/nfsimaggregationgelation/nfsim_aggregation_gelation.bngl new file mode 100644 index 00000000..c602de09 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/nfsim/nfsimaggregationgelation/nfsim_aggregation_gelation.bngl @@ -0,0 +1,59 @@ +# Model: nfsim_aggregation_gelation.bngl +# Description: Models the formation of large aggregates (Gelation) from monomers. +# Monomers have multiple binding sites, allowing branching and network formation. +# This leads to a percolation transition (Sol -> Gel). +# Best simulated with NFsim as the number of species explodes (combinatorial complexity). + +begin model + +begin parameters + k_bind 1.0 + k_break 0.1 + M_tot 500 +end parameters + +begin molecule types + M(a,b,c) # Trivalent monomer +end molecule types + +begin seed species + M(a,b,c) M_tot +end seed species + +begin observables + Molecules Monomers M(a,b,c) + Molecules Dimers M(a!1).M(a!1) # Just one bond type pattern + # To detect Gel, we usually look at the Largest Cluster Size (NFsim metric) + # or depletion of free sites. + Molecules Free_Sites M(a) # + M(b) + M(c) - tedious to write all +end observables + +begin reaction rules + # Binding Rules + # Sites a, b, c are equivalent? Let's assume they are. + # To reduce rules, we could use symmetric sites if BNGL supported M(s~1~2~3). + # But explicit sites a,b,c is standard. + + # Bind a-a + M(a) + M(a) <-> M(a!1).M(a!1) k_bind, k_break + # Bind a-b + M(a) + M(b) <-> M(a!1).M(b!1) k_bind, k_break + # Bind a-c + M(a) + M(c) <-> M(a!1).M(c!1) k_bind, k_break + # Bind b-b + M(b) + M(b) <-> M(b!1).M(b!1) k_bind, k_break + # Bind b-c + M(b) + M(c) <-> M(b!1).M(c!1) k_bind, k_break + # Bind c-c + M(c) + M(c) <-> M(c!1).M(c!1) k_bind, k_break + + # Only intermolecular binding? + # Intramolecular (cyclization) is also possible with these rules unless restricted. +end reaction rules + +end model + +## Actions ## +# Use NFsim for this one efficiently +generate_network({overwrite=>1, max_iter=>1}) # Don't generate full network +simulate({method=>"nf", t_end=>50, n_steps=>200, gml=>1000000}) # gml limit diff --git a/Contributed/BNGPlayground_Examples/nfsim/nfsimcoarsegraining/README.md b/Contributed/BNGPlayground_Examples/nfsim/nfsimcoarsegraining/README.md new file mode 100644 index 00000000..992ab050 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/nfsim/nfsimcoarsegraining/README.md @@ -0,0 +1,22 @@ +# nfsim coarse graining + +Model: nfsim_coarse_graining.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: nf +- Imported from: ai-generated + +## Files + +- nfsim_coarse_graining.bngl + +## Tags + +nfsim, coarse, graining, droplet diff --git a/Contributed/BNGPlayground_Examples/nfsim/nfsimcoarsegraining/metadata.yaml b/Contributed/BNGPlayground_Examples/nfsim/nfsimcoarsegraining/metadata.yaml new file mode 100644 index 00000000..79ced8c2 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/nfsim/nfsimcoarsegraining/metadata.yaml @@ -0,0 +1,24 @@ +id: "nfsim_coarse_graining" +name: "nfsim coarse graining" +description: "Model: nfsim_coarse_graining.bngl" +contributors: + - name: "Achyudhan" +tags: ["nfsim", "coarse", "graining", "droplet"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["nf"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/nfsim_coarse_graining.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/nfsim/nfsimcoarsegraining/nfsim_coarse_graining.bngl b/Contributed/BNGPlayground_Examples/nfsim/nfsimcoarsegraining/nfsim_coarse_graining.bngl new file mode 100644 index 00000000..77b769f8 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/nfsim/nfsimcoarsegraining/nfsim_coarse_graining.bngl @@ -0,0 +1,54 @@ +# Model: nfsim_coarse_graining.bngl +# Description: Models the fusion of droplets (coarse-grained particles). +# Small droplets fuse to form larger ones. +# Demonstrates how to model aggregation where the size attribute is tracked. +# (Note: Explicit size tracking of large aggregates requires infinite rules or NFsim attributes) +# Here we use a simplified Size state (1, 2, 4, 8...). + +begin model + +begin parameters + k_fuse 0.1 + k_fission 0.01 +end parameters + +begin molecule types + Droplet(size~1~2~4~8~16~32~64) # Powers of 2 for simplicity +end molecule types + +begin seed species + Droplet(size~1) 1000 +end seed species + +begin observables + Molecules Size_1 Droplet(size~1) + Molecules Size_2 Droplet(size~2) + Molecules Size_Large Droplet(size~16) +end observables + +begin reaction rules + # Fusion Rules (Coarse Graining) + # 1+1 -> 2 + Droplet(size~1) + Droplet(size~1) -> Droplet(size~2) k_fuse + + # 2+2 -> 4 + Droplet(size~2) + Droplet(size~2) -> Droplet(size~4) k_fuse + + # 4+4 -> 8 + Droplet(size~4) + Droplet(size~4) -> Droplet(size~8) k_fuse + + # 8+8 -> 16 + Droplet(size~8) + Droplet(size~8) -> Droplet(size~16) k_fuse + + # 16+16 -> 32 + Droplet(size~16) + Droplet(size~16) -> Droplet(size~32) k_fuse + + # Fission (Splitting) + Droplet(size~32) -> Droplet(size~16) + Droplet(size~16) k_fission +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"nf", t_end=>400, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/nfsim/nfsimdynamiccompartments/README.md b/Contributed/BNGPlayground_Examples/nfsim/nfsimdynamiccompartments/README.md new file mode 100644 index 00000000..bcf22fd4 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/nfsim/nfsimdynamiccompartments/README.md @@ -0,0 +1,22 @@ +# nfsim dynamic compartments + +Model: nfsim_dynamic_compartments.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: nf +- Imported from: ai-generated + +## Files + +- nfsim_dynamic_compartments.bngl + +## Tags + +nfsim, dynamic, compartments, cell, generate_network, simulate diff --git a/Contributed/BNGPlayground_Examples/nfsim/nfsimdynamiccompartments/metadata.yaml b/Contributed/BNGPlayground_Examples/nfsim/nfsimdynamiccompartments/metadata.yaml new file mode 100644 index 00000000..617d5f94 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/nfsim/nfsimdynamiccompartments/metadata.yaml @@ -0,0 +1,24 @@ +id: "nfsim_dynamic_compartments" +name: "nfsim dynamic compartments" +description: "Model: nfsim_dynamic_compartments.bngl" +contributors: + - name: "Achyudhan" +tags: ["nfsim", "dynamic", "compartments", "cell", "generate_network", "simulate"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["nf"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/nfsim_dynamic_compartments.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/nfsim/nfsimdynamiccompartments/nfsim_dynamic_compartments.bngl b/Contributed/BNGPlayground_Examples/nfsim/nfsimdynamiccompartments/nfsim_dynamic_compartments.bngl new file mode 100644 index 00000000..c91de779 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/nfsim/nfsimdynamiccompartments/nfsim_dynamic_compartments.bngl @@ -0,0 +1,45 @@ +# Model: nfsim_dynamic_compartments.bngl +# Description: Mocks the growth and division of cells (dynamic compartments). +# Tracks 'Cell' molecules that grow in 'Volume' (attribute) and then split. +# Demonstrates population dynamics with internal states. + +begin model + +begin parameters + k_grow 1.0 + k_div 0.5 + Target_Vol 4 +end parameters + +begin molecule types + Cell(vol~1~2~4~8) +end molecule types + +begin seed species + Cell(vol~1) 10 +end seed species + +begin observables + Molecules Cells Cell() + Molecules LargeCells Cell(vol~4) +end observables + +begin reaction rules + # Growth + Cell(vol~1) -> Cell(vol~2) k_grow + Cell(vol~2) -> Cell(vol~4) k_grow + Cell(vol~4) -> Cell(vol~8) k_grow + + # Division (Splitting) + # Large cell splits into two small ones + Cell(vol~8) -> Cell(vol~4) + Cell(vol~4) k_div + # Or asymmetric + # Cell(vol~8) -> Cell(vol~1) + Cell(vol~1) ? + +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"nf", t_end=>20, n_steps=>100}) diff --git a/Contributed/BNGPlayground_Examples/nfsim/nfsimhybridparticlefield/README.md b/Contributed/BNGPlayground_Examples/nfsim/nfsimhybridparticlefield/README.md new file mode 100644 index 00000000..22314b98 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/nfsim/nfsimhybridparticlefield/README.md @@ -0,0 +1,22 @@ +# nfsim hybrid particle field + +Model: nfsim_hybrid_particle_field.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: nf +- Imported from: ai-generated + +## Files + +- nfsim_hybrid_particle_field.bngl + +## Tags + +nfsim, hybrid, particle, field diff --git a/Contributed/BNGPlayground_Examples/nfsim/nfsimhybridparticlefield/metadata.yaml b/Contributed/BNGPlayground_Examples/nfsim/nfsimhybridparticlefield/metadata.yaml new file mode 100644 index 00000000..93c8fa0a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/nfsim/nfsimhybridparticlefield/metadata.yaml @@ -0,0 +1,24 @@ +id: "nfsim_hybrid_particle_field" +name: "nfsim hybrid particle field" +description: "Model: nfsim_hybrid_particle_field.bngl" +contributors: + - name: "Achyudhan" +tags: ["nfsim", "hybrid", "particle", "field"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["nf"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/nfsim_hybrid_particle_field.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/nfsim/nfsimhybridparticlefield/nfsim_hybrid_particle_field.bngl b/Contributed/BNGPlayground_Examples/nfsim/nfsimhybridparticlefield/nfsim_hybrid_particle_field.bngl new file mode 100644 index 00000000..ec674174 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/nfsim/nfsimhybridparticlefield/nfsim_hybrid_particle_field.bngl @@ -0,0 +1,57 @@ +# Model: nfsim_hybrid_particle_field.bngl +# Description: A pseudo-simulation of a particle moving in a field. +# The 'Field' is represented by a grid of immobile species encoding a gradient. +# The 'Particle' moves and its rate depends on the local Field value. + +begin model + +begin parameters + k_diff 1.0 # Base diffusion rate + Bias 0.5 # Bias towards higher field +end parameters + +begin molecule types + Field(next,prev,f,val~0~1~2) # Immobile field at location x + Particle(f) # Mobile particle bound to field site f +end molecule types + +begin seed species + # Combined Field and Particle + Particle(f!1).Field(next!2,prev,val~0,f!1).Field(next!3,prev!2,val~1,f).Field(next,prev!3,val~2,f) 1 + # Links: F--F--F + # Particle starts at Field 0 +end seed species + +begin observables + Molecules P_at_0 Particle(f!1).Field(f!1,val~0) + Molecules P_at_2 Particle(f!1).Field(f!1,val~2) +end observables + +begin reaction rules + # Movement 0 -> 1 (Uphill) + # P(x!1).F(x!1,next!2,val~0).F(x!2,val~1) -> P(x!2).F(...) + # Rate enhanced by Bias? + + # Generic Rule is hard without wildcards for neighbors. + # Specific transitions: + + # 0 -> 1 + Particle(f!1).Field(f!1,val~0,next!2).Field(prev!2,val~1,f) -> \ + Particle(f!3).Field(f,val~0,next!2).Field(prev!2,val~1,f!3) k_diff * (1+Bias) + + # 1 -> 0 (Downhill) + Particle(f!1).Field(f!1,val~1,prev!2).Field(next!2,val~0,f) -> \ + Particle(f!3).Field(f,val~1,prev!2).Field(next!2,val~0,f!3) k_diff * (1-Bias) + + # 1 -> 2 (Uphill) + Particle(f!1).Field(f!1,val~1,next!2).Field(prev!2,val~2,f) -> \ + Particle(f!3).Field(f,val~1,next!2).Field(prev!2,val~2,f!3) k_diff * (1+Bias) + +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"nf",t_end=>10,n_steps=>50}) + diff --git a/Contributed/BNGPlayground_Examples/nfsim/nfsimringclosurepolymer/README.md b/Contributed/BNGPlayground_Examples/nfsim/nfsimringclosurepolymer/README.md new file mode 100644 index 00000000..04469ce9 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/nfsim/nfsimringclosurepolymer/README.md @@ -0,0 +1,22 @@ +# nfsim ring closure polymer + +Model: nfsim_ring_closure_polymer.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: nf +- Imported from: ai-generated + +## Files + +- nfsim_ring_closure_polymer.bngl + +## Tags + +nfsim, ring, closure, polymer, a, generate_network, simulate diff --git a/Contributed/BNGPlayground_Examples/nfsim/nfsimringclosurepolymer/metadata.yaml b/Contributed/BNGPlayground_Examples/nfsim/nfsimringclosurepolymer/metadata.yaml new file mode 100644 index 00000000..15e75b03 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/nfsim/nfsimringclosurepolymer/metadata.yaml @@ -0,0 +1,24 @@ +id: "nfsim_ring_closure_polymer" +name: "nfsim ring closure polymer" +description: "Model: nfsim_ring_closure_polymer.bngl" +contributors: + - name: "Achyudhan" +tags: ["nfsim", "ring", "closure", "polymer", "a", "generate_network", "simulate"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["nf"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/nfsim_ring_closure_polymer.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/nfsim/nfsimringclosurepolymer/nfsim_ring_closure_polymer.bngl b/Contributed/BNGPlayground_Examples/nfsim/nfsimringclosurepolymer/nfsim_ring_closure_polymer.bngl new file mode 100644 index 00000000..28a490e4 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/nfsim/nfsimringclosurepolymer/nfsim_ring_closure_polymer.bngl @@ -0,0 +1,49 @@ +# Model: nfsim_ring_closure_polymer.bngl +# Description: Models the formation of linear polymers and their cyclization (ring closure). +# Monomers A(x,y) bind linearly x-y. +# If the two ends of a chain (x and y) react, a ring is formed. +# Demonstrates competition between elongation (intermolecular) and cyclization (intramolecular). + +begin model + +begin parameters + k_elong 1.0 # Bimolecular + k_cyc 0.5 # Unimolecular (End-to-End) + + A_tot 100 +end parameters + +begin molecule types + A(x,y) +end molecule types + +begin seed species + A(x,y) A_tot +end seed species + +begin observables + Molecules Monomers A(x,y) + Molecules Linear_Dimers A(x!1,y).A(x,y!1) + Molecules Cyclic_Dimers A(x!1,y!2).A(x!2,y!1) +end observables + +begin reaction rules + # Elongation (Linear growth) + # Free x binds Free y + A(x) + A(y) <-> A(x!1).A(y!1) k_elong, 0.01 + + # Cyclization (Ring Closure) + # Monomer cyclization (A-loop). + A(x,y) -> A(x!1,y!1) k_cyc + + # Dimer Cyclization: + # A(x,y!1).A(x!1,y) -> A(x!2,y!1).A(x!1,y!2) + A(x,y!1).A(x!1,y) -> A(x!2,y!1).A(x!1,y!2) k_cyc + +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1, max_iter=>5}) +simulate({method=>"nf", t_end=>50, n_steps=>200, get_final_state=>0}) diff --git a/Contributed/BNGPlayground_Examples/physics/phlorenzattractor/README.md b/Contributed/BNGPlayground_Examples/physics/phlorenzattractor/README.md new file mode 100644 index 00000000..1ff5b38f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/physics/phlorenzattractor/README.md @@ -0,0 +1,22 @@ +# ph lorenz attractor + +Lorenz Attractor in BNGL + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- ph_lorenz_attractor.bngl + +## Tags + +ph, lorenz, attractor, lx, ly, lz, x, y diff --git a/Contributed/BNGPlayground_Examples/physics/phlorenzattractor/metadata.yaml b/Contributed/BNGPlayground_Examples/physics/phlorenzattractor/metadata.yaml new file mode 100644 index 00000000..1685d985 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/physics/phlorenzattractor/metadata.yaml @@ -0,0 +1,24 @@ +id: "ph_lorenz_attractor" +name: "ph lorenz attractor" +description: "Lorenz Attractor in BNGL" +contributors: + - name: "Achyudhan" +tags: ["ph", "lorenz", "attractor", "lx", "ly", "lz", "x", "y"] +category: "physics" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/ph_lorenz_attractor.bngl" +playground: + visible: false + gallery_category: "physics" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/physics/phlorenzattractor/ph_lorenz_attractor.bngl b/Contributed/BNGPlayground_Examples/physics/phlorenzattractor/ph_lorenz_attractor.bngl new file mode 100644 index 00000000..b04d95c6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/physics/phlorenzattractor/ph_lorenz_attractor.bngl @@ -0,0 +1,90 @@ +# Lorenz Attractor in BNGL +# ========================= +# The classic chaotic system encoded as molecular concentrations. +# X,Y,Z molecules are just state variables. +# The ODE system IS the Lorenz equations — no chemistry at all. +# +# dx/dt = sigma*(y - x) +# dy/dt = x*(rho - z) - y +# dz/dt = x*y - beta*z +# +# Trick: Since concentrations can't go negative,we use pairs: +# Xp/Xn = positive/negative part of x. Actual x = Xp - Xn +# This lets us encode arbitrary ODEs in BNGL's non-negative framework. + +begin model + +begin parameters + # Lorenz parameters (classic chaotic regime) + sigma 10.0 + rho 28.0 + beta 2.6667 # 8/3 + + # Numerical trick: offset to keep concentrations positive + # We define X_shifted = X + offset,etc. + offset 50.0 +end parameters + +begin molecule types + # State variables (concentrations = Lorenz coordinates + offset) + LX() # X coordinate (stored as X + offset to stay positive) + LY() # Y coordinate + LZ() # Z coordinate +end molecule types + +begin seed species + # Initial conditions: (1,1,1) shifted by offset + LX() 51.0 # x0 = 1 -> stored as 51 + LY() 51.0 # y0 = 1 + LZ() 51.0 # z0 = 1 +end seed species + +begin observables + Molecules X_raw LX() + Molecules Y_raw LY() + Molecules Z_raw LZ() +end observables + +begin functions + # Recover actual Lorenz coordinates from shifted concentrations + x() = X_raw - offset + y() = Y_raw - offset + z() = Z_raw - offset + + # Lorenz equations as production/decay rates + # dx/dt = sigma*(y - x) + # Split into positive and negative parts: + dxdt_pos() = if(sigma*(y() - x()) > 0,sigma*(y() - x()),0) + dxdt_neg() = if(sigma*(y() - x()) < 0,-sigma*(y() - x()),0) + + # dy/dt = x*(rho - z) - y + dydt_pos() = if(x()*(rho - z()) - y() > 0,x()*(rho - z()) - y(),0) + dydt_neg() = if(x()*(rho - z()) - y() < 0,-(x()*(rho - z()) - y()),0) + + # dz/dt = x*y - beta*z + dzdt_pos() = if(x()*y() - beta*z() > 0,x()*y() - beta*z(),0) + dzdt_neg() = if(x()*y() - beta*z() < 0,-(x()*y() - beta*z()),0) +end functions + +begin reaction rules + # The "reactions" ARE the Lorenz equations + # Production = positive part of derivative + # Degradation = negative part of derivative + + # dX/dt = sigma*(Y - X) + 0 -> LX() dxdt_pos() + LX() -> 0 dxdt_neg() / max(X_raw,0.001) # per-capita rate + + # dY/dt = X*(rho - Z) - Y + 0 -> LY() dydt_pos() + LY() -> 0 dydt_neg() / max(Y_raw,0.001) + + # dZ/dt = X*Y - beta*Z + 0 -> LZ() dzdt_pos() + LZ() -> 0 dzdt_neg() / max(Z_raw,0.001) +end reaction rules + +end model + +# Simulate the butterfly — X_raw and Y_raw trace the attractor +simulate({method=>"ode",t_end=>50,n_steps=>5000}) diff --git a/Contributed/BNGPlayground_Examples/physics/phnbodygravity/README.md b/Contributed/BNGPlayground_Examples/physics/phnbodygravity/README.md new file mode 100644 index 00000000..1c8f2931 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/physics/phnbodygravity/README.md @@ -0,0 +1,22 @@ +# ph nbody gravity + +Model: ph_nbody_gravity.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- ph_nbody_gravity.bngl + +## Tags + +ph, nbody, gravity, body, r2 diff --git a/Contributed/BNGPlayground_Examples/physics/phnbodygravity/metadata.yaml b/Contributed/BNGPlayground_Examples/physics/phnbodygravity/metadata.yaml new file mode 100644 index 00000000..5110f9e6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/physics/phnbodygravity/metadata.yaml @@ -0,0 +1,24 @@ +id: "ph_nbody_gravity" +name: "ph nbody gravity" +description: "Model: ph_nbody_gravity.bngl" +contributors: + - name: "Achyudhan" +tags: ["ph", "nbody", "gravity", "body", "r2"] +category: "physics" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/ph_nbody_gravity.bngl" +playground: + visible: false + gallery_category: "physics" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/physics/phnbodygravity/ph_nbody_gravity.bngl b/Contributed/BNGPlayground_Examples/physics/phnbodygravity/ph_nbody_gravity.bngl new file mode 100644 index 00000000..e24bd9a6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/physics/phnbodygravity/ph_nbody_gravity.bngl @@ -0,0 +1,83 @@ +# Model: ph_nbody_gravity.bngl +# Description: Simulates the orbital mechanics of N-body gravity. +# Each body (Star,Planet) has molecules representing x,y,vx,vy. +# Acceleration is computed via 1/r^2 functions. +# Demonstrates physics simulation in a rule-based language. + +begin model + +begin parameters + G 1.0 # Gravitational constant + M_Sun 100.0 # Mass of Central star + M_Earth 1.0 # Mass of Planet + X_Earth 10.0 # Initial separation + V_Earth 3.16 # Initial orbital velocity (sqrt(G*M/R)) + DT 0.1 +end parameters + +begin molecule types + Body(i~Sun~Earth,t~X~Y~VX~VY) +end molecule types + +begin seed species + # Sun (Stationary at origin) + Body(i~Sun,t~X) 0.0 + Body(i~Sun,t~Y) 0.0 + + # Earth + Body(i~Earth,t~X) X_Earth + Body(i~Earth,t~Y) 0.0 + Body(i~Earth,t~VX) 0.0 + Body(i~Earth,t~VY) V_Earth +end seed species + +begin observables + Molecules Ex Body(i~Earth,t~X) + Molecules Ey Body(i~Earth,t~Y) + Molecules EVx Body(i~Earth,t~VX) + Molecules EVy Body(i~Earth,t~VY) +end observables + +begin functions + # Distance + R2() = Ex*Ex + Ey*Ey + R() = sqrt(R2()) + + # Acceleration components (toward Sun at 0,0) + # a = -G*M / R^2 * (unit_vector) + AX() = -G * M_Sun * Ex / (R()*R()*R()) + AY() = -G * M_Sun * Ey / (R()*R()*R()) + + # Differential Updates + dEX_dt() = EVx + dEY_dt() = EVy + dEVx_dt() = AX() + dEVy_dt() = AY() +end functions + +begin reaction rules + # --- Integration (dx/dt = v,dv/dt = a) --- + + # X-Position + Up_X: 0 -> Body(i~Earth,t~X) if(dEX_dt()>0,dEX_dt(),0) + Dn_X: Body(i~Earth,t~X) -> 0 if(dEX_dt()<0,-dEX_dt(),0) + + # Y-Position + Up_Y: 0 -> Body(i~Earth,t~Y) if(dEY_dt()>0,dEY_dt(),0) + Dn_Y: Body(i~Earth,t~Y) -> 0 if(dEY_dt()<0,-dEY_dt(),0) + + # X-Velocity + Up_VX: 0 -> Body(i~Earth,t~VX) if(dEVx_dt()>0,dEVx_dt(),0) + Dn_VX: Body(i~Earth,t~VX) -> 0 if(dEVx_dt()<0,-dEVx_dt(),0) + + # Y-Velocity + Up_VY: 0 -> Body(i~Earth,t~VY) if(dEVy_dt()>0,dEVy_dt(),0) + Dn_VY: Body(i~Earth,t~VY) -> 0 if(dEVy_dt()<0,-dEVy_dt(),0) +end reaction rules + +end model + +# --- Actions --- +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>20,n_steps=>1000}) +# Note: Use small n_steps or stiff solver to capture the orbit. diff --git a/Contributed/BNGPlayground_Examples/physics/phschrodinger/README.md b/Contributed/BNGPlayground_Examples/physics/phschrodinger/README.md new file mode 100644 index 00000000..edb54bd8 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/physics/phschrodinger/README.md @@ -0,0 +1,22 @@ +# ph schrodinger + +Model: ph_schrodinger.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- ph_schrodinger.bngl + +## Tags + +ph, schrodinger, psi diff --git a/Contributed/BNGPlayground_Examples/physics/phschrodinger/metadata.yaml b/Contributed/BNGPlayground_Examples/physics/phschrodinger/metadata.yaml new file mode 100644 index 00000000..d3f77256 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/physics/phschrodinger/metadata.yaml @@ -0,0 +1,24 @@ +id: "ph_schrodinger" +name: "ph schrodinger" +description: "Model: ph_schrodinger.bngl" +contributors: + - name: "Achyudhan" +tags: ["ph", "schrodinger", "psi"] +category: "physics" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/ph_schrodinger.bngl" +playground: + visible: false + gallery_category: "physics" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/physics/phschrodinger/ph_schrodinger.bngl b/Contributed/BNGPlayground_Examples/physics/phschrodinger/ph_schrodinger.bngl new file mode 100644 index 00000000..ee5620e7 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/physics/phschrodinger/ph_schrodinger.bngl @@ -0,0 +1,127 @@ +# Model: ph_schrodinger.bngl +# Description: Simulates the 1D Schrödinger equation (particle in a box). +# Wavefunction real and imaginary parts are molecule concentrations. +# Demonstrates quantum state evolution in a rule-based framework. + +begin model + +begin parameters + hbar 1.0 + k_pot 0.5 + t_end 10 +end parameters + +begin molecule types + Psi(x~1~2~3~4~5,t~RE~IM) +end molecule types + +begin seed species + # Initial Wavepacket (sinusoidal) + Psi(x~1,t~RE) 0.0 + Psi(x~2,t~RE) 0.5 + Psi(x~3,t~RE) 1.0 + Psi(x~4,t~RE) 0.5 + Psi(x~5,t~RE) 0.0 + + Psi(x~1,t~IM) 0.0 + Psi(x~2,t~IM) 0.0 + Psi(x~3,t~IM) 0.0 + Psi(x~4,t~IM) 0.0 + Psi(x~5,t~IM) 0.0 +end seed species + +begin observables + # Probabilities density |Psi|^2 + Molecules r1 Psi(x~1,t~RE) + Molecules r2 Psi(x~2,t~RE) + Molecules r3 Psi(x~3,t~RE) + Molecules r4 Psi(x~4,t~RE) + Molecules r5 Psi(x~5,t~RE) + + Molecules i1 Psi(x~1,t~IM) + Molecules i2 Psi(x~2,t~IM) + Molecules i3 Psi(x~3,t~IM) + Molecules i4 Psi(x~4,t~IM) + Molecules i5 Psi(x~5,t~IM) +end observables + +begin functions + # Probabilities + Prob_X1() = r1*r1 + i1*i1 + Prob_X2() = r2*r2 + i2*i2 + Prob_X3() = r3*r3 + i3*i3 + Prob_X4() = r4*r4 + i4*i4 + Prob_X5() = r5*r5 + i5*i5 + + # Laplacian: Psi(x+1) - 2*Psi(x) + Psi(x-1) + # V(i) is 100 for x=1,5 (wall), 0 otherwise + + Lap_RE1() = r2 - 2*r1 + 0 + Lap_RE2() = r3 - 2*r2 + r1 + Lap_RE3() = r4 - 2*r3 + r2 + Lap_RE4() = r5 - 2*r4 + r3 + Lap_RE5() = 0 - 2*r5 + r4 + + Lap_IM1() = i2 - 2*i1 + 0 + Lap_IM2() = i3 - 2*i2 + i1 + Lap_IM3() = i4 - 2*i3 + i2 + Lap_IM4() = i5 - 2*i4 + i3 + Lap_IM5() = 0 - 2*i5 + i4 + + HAM_RE1() = -k_pot * Lap_RE1() + 100*r1 + HAM_RE2() = -k_pot * Lap_RE2() + 0*r2 + HAM_RE3() = -k_pot * Lap_RE3() + 0*r3 + HAM_RE4() = -k_pot * Lap_RE4() + 0*r4 + HAM_RE5() = -k_pot * Lap_RE5() + 100*r5 + + HAM_IM1() = -k_pot * Lap_IM1() + 100*i1 + HAM_IM2() = -k_pot * Lap_IM2() + 0*i2 + HAM_IM3() = -k_pot * Lap_IM3() + 0*i3 + HAM_IM4() = -k_pot * Lap_IM4() + 0*i4 + HAM_IM5() = -k_pot * Lap_IM5() + 100*i5 + + dRE1_dt() = -HAM_IM1()/hbar + dRE2_dt() = -HAM_IM2()/hbar + dRE3_dt() = -HAM_IM3()/hbar + dRE4_dt() = -HAM_IM4()/hbar + dRE5_dt() = -HAM_IM5()/hbar + + dIM1_dt() = HAM_RE1()/hbar + dIM2_dt() = HAM_RE2()/hbar + dIM3_dt() = HAM_RE3()/hbar + dIM4_dt() = HAM_RE4()/hbar + dIM5_dt() = HAM_RE5()/hbar +end functions + +begin reaction rules + # Real part updates + Up_RE1: 0 -> Psi(x~1,t~RE) if(dRE1_dt()>0, dRE1_dt(), 0) + Up_RE2: 0 -> Psi(x~2,t~RE) if(dRE2_dt()>0, dRE2_dt(), 0) + Up_RE3: 0 -> Psi(x~3,t~RE) if(dRE3_dt()>0, dRE3_dt(), 0) + Up_RE4: 0 -> Psi(x~4,t~RE) if(dRE4_dt()>0, dRE4_dt(), 0) + Up_RE5: 0 -> Psi(x~5,t~RE) if(dRE5_dt()>0, dRE5_dt(), 0) + + Dn_RE1: Psi(x~1,t~RE) -> 0 if(dRE1_dt()<0, -dRE1_dt(), 0) + Dn_RE2: Psi(x~2,t~RE) -> 0 if(dRE2_dt()<0, -dRE2_dt(), 0) + Dn_RE3: Psi(x~3,t~RE) -> 0 if(dRE3_dt()<0, -dRE3_dt(), 0) + Dn_RE4: Psi(x~4,t~RE) -> 0 if(dRE4_dt()<0, -dRE4_dt(), 0) + Dn_RE5: Psi(x~5,t~RE) -> 0 if(dRE5_dt()<0, -dRE5_dt(), 0) + + # Imaginary part updates + Up_IM1: 0 -> Psi(x~1,t~IM) if(dIM1_dt()>0, dIM1_dt(), 0) + Up_IM2: 0 -> Psi(x~2,t~IM) if(dIM2_dt()>0, dIM2_dt(), 0) + Up_IM3: 0 -> Psi(x~3,t~IM) if(dIM3_dt()>0, dIM3_dt(), 0) + Up_IM4: 0 -> Psi(x~4,t~IM) if(dIM4_dt()>0, dIM4_dt(), 0) + Up_IM5: 0 -> Psi(x~5,t~IM) if(dIM5_dt()>0, dIM5_dt(), 0) + + Dn_IM1: Psi(x~1,t~IM) -> 0 if(dIM1_dt()<0, -dIM1_dt(), 0) + Dn_IM2: Psi(x~2,t~IM) -> 0 if(dIM2_dt()<0, -dIM2_dt(), 0) + Dn_IM3: Psi(x~3,t~IM) -> 0 if(dIM3_dt()<0, -dIM3_dt(), 0) + Dn_IM4: Psi(x~4,t~IM) -> 0 if(dIM4_dt()<0, -dIM4_dt(), 0) + Dn_IM5: Psi(x~5,t~IM) -> 0 if(dIM5_dt()<0, -dIM5_dt(), 0) +end reaction rules + +end model + +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>10,n_steps=>500}) diff --git a/Contributed/BNGPlayground_Examples/physics/phwaveequation/README.md b/Contributed/BNGPlayground_Examples/physics/phwaveequation/README.md new file mode 100644 index 00000000..098e97e6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/physics/phwaveequation/README.md @@ -0,0 +1,22 @@ +# ph wave equation + +Model: ph_wave_equation.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- ph_wave_equation.bngl + +## Tags + +ph, wave, equation, node diff --git a/Contributed/BNGPlayground_Examples/physics/phwaveequation/metadata.yaml b/Contributed/BNGPlayground_Examples/physics/phwaveequation/metadata.yaml new file mode 100644 index 00000000..5f811e1c --- /dev/null +++ b/Contributed/BNGPlayground_Examples/physics/phwaveequation/metadata.yaml @@ -0,0 +1,24 @@ +id: "ph_wave_equation" +name: "ph wave equation" +description: "Model: ph_wave_equation.bngl" +contributors: + - name: "Achyudhan" +tags: ["ph", "wave", "equation", "node"] +category: "physics" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/ph_wave_equation.bngl" +playground: + visible: false + gallery_category: "physics" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/physics/phwaveequation/ph_wave_equation.bngl b/Contributed/BNGPlayground_Examples/physics/phwaveequation/ph_wave_equation.bngl new file mode 100644 index 00000000..4217488f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/physics/phwaveequation/ph_wave_equation.bngl @@ -0,0 +1,96 @@ +# Model: ph_wave_equation.bngl +# Description: Simulates 1D longitudinal wave propagation in a discrete-mass spring system. +# Demonstrates physics simulations in a rule-based framework. + +begin model + +begin parameters + k_spring 10.0 + mass 1.0 + dt_scale 0.05 + rate_coeff k_spring/mass * dt_scale +end parameters + +begin molecule types + Node(i~1~2~3~4~5,t~POS~VEL) +end molecule types + +begin seed species + # Initial displacement (Gaussian pulse) + Node(i~1,t~POS) 0.0 + Node(i~2,t~POS) 0.5 + Node(i~3,t~POS) 1.0 + Node(i~4,t~POS) 0.5 + Node(i~5,t~POS) 0.0 + + # Initial velocity + Node(i~1,t~VEL) 0.0 + Node(i~2,t~VEL) 0.0 + Node(i~3,t~VEL) 0.0 + Node(i~4,t~VEL) 0.0 + Node(i~5,t~VEL) 0.0 +end seed species + +begin observables + Molecules P1 Node(i~1,t~POS) + Molecules P2 Node(i~2,t~POS) + Molecules P3 Node(i~3,t~POS) + Molecules P4 Node(i~4,t~POS) + Molecules P5 Node(i~5,t~POS) + + Molecules V1 Node(i~1,t~VEL) + Molecules V2 Node(i~2,t~VEL) + Molecules V3 Node(i~3,t~VEL) + Molecules V4 Node(i~4,t~VEL) + Molecules V5 Node(i~5,t~VEL) +end observables + +begin functions + # Force on node i = k * (x_{i+1} - 2*x_i + x_{i-1}) + # Fixed boundaries: x_0 = x_6 = 0 + BC_Acc1() = P2 - 2*P1 + BC_Acc2() = P3 - 2*P2 + P1 + BC_Acc3() = P4 - 2*P3 + P2 + BC_Acc4() = P5 - 2*P4 + P3 + BC_Acc5() = 0 - 2*P5 + P4 +end functions + +begin reaction rules + # VEL += Force * dt + Rule_V1_Up: 0 -> Node(i~1,t~VEL) if(BC_Acc1()>0, BC_Acc1()*rate_coeff, 0) + Rule_V1_Dn: Node(i~1,t~VEL) -> 0 if(BC_Acc1()<0, -BC_Acc1()*rate_coeff, 0) + + Rule_V2_Up: 0 -> Node(i~2,t~VEL) if(BC_Acc2()>0, BC_Acc2()*rate_coeff, 0) + Rule_V2_Dn: Node(i~2,t~VEL) -> 0 if(BC_Acc2()<0, -BC_Acc2()*rate_coeff, 0) + + Rule_V3_Up: 0 -> Node(i~3,t~VEL) if(BC_Acc3()>0, BC_Acc3()*rate_coeff, 0) + Rule_V3_Dn: Node(i~3,t~VEL) -> 0 if(BC_Acc3()<0, -BC_Acc3()*rate_coeff, 0) + + Rule_V4_Up: 0 -> Node(i~4,t~VEL) if(BC_Acc4()>0, BC_Acc4()*rate_coeff, 0) + Rule_V4_Dn: Node(i~4,t~VEL) -> 0 if(BC_Acc4()<0, -BC_Acc4()*rate_coeff, 0) + + Rule_V5_Up: 0 -> Node(i~5,t~VEL) if(BC_Acc5()>0, BC_Acc5()*rate_coeff, 0) + Rule_V5_Dn: Node(i~5,t~VEL) -> 0 if(BC_Acc5()<0, -BC_Acc5()*rate_coeff, 0) + + # POS += VEL * dt + Rule_P1_Up: 0 -> Node(i~1,t~POS) if(V1>0, V1*dt_scale, 0) + Rule_P1_Dn: Node(i~1,t~POS) -> 0 if(V1<0, -V1*dt_scale, 0) + + Rule_P2_Up: 0 -> Node(i~2,t~POS) if(V2>0, V2*dt_scale, 0) + Rule_P2_Dn: Node(i~2,t~POS) -> 0 if(V2<0, -V2*dt_scale, 0) + + Rule_P3_Up: 0 -> Node(i~3,t~POS) if(V3>0, V3*dt_scale, 0) + Rule_P3_Dn: Node(i~3,t~POS) -> 0 if(V3<0, -V3*dt_scale, 0) + + Rule_P4_Up: 0 -> Node(i~4,t~POS) if(V4>0, V4*dt_scale, 0) + Rule_P4_Dn: Node(i~4,t~POS) -> 0 if(V4<0, -V4*dt_scale, 0) + + Rule_P5_Up: 0 -> Node(i~5,t~POS) if(V5>0, V5*dt_scale, 0) + Rule_P5_Dn: Node(i~5,t~POS) -> 0 if(V5<0, -V5*dt_scale, 0) +end reaction rules + +end model + +# --- Actions --- +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>10,n_steps=>1000,abstol=>1e-8,reltol=>1e-8}) diff --git a/Contributed/BNGPlayground_Examples/processes/processactintreadmilling/README.md b/Contributed/BNGPlayground_Examples/processes/processactintreadmilling/README.md new file mode 100644 index 00000000..9612b5fb --- /dev/null +++ b/Contributed/BNGPlayground_Examples/processes/processactintreadmilling/README.md @@ -0,0 +1,22 @@ +# process actin treadmilling + +Model: process_actin_treadmilling.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ssa +- Imported from: ai-generated + +## Files + +- process_actin_treadmilling.bngl + +## Tags + +process, actin, treadmilling, generate_network, simulate diff --git a/Contributed/BNGPlayground_Examples/processes/processactintreadmilling/metadata.yaml b/Contributed/BNGPlayground_Examples/processes/processactintreadmilling/metadata.yaml new file mode 100644 index 00000000..68675ee5 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/processes/processactintreadmilling/metadata.yaml @@ -0,0 +1,24 @@ +id: "process_actin_treadmilling" +name: "process actin treadmilling" +description: "Model: process_actin_treadmilling.bngl" +contributors: + - name: "Achyudhan" +tags: ["process", "actin", "treadmilling", "generate_network", "simulate"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ssa"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/process_actin_treadmilling.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/processes/processactintreadmilling/process_actin_treadmilling.bngl b/Contributed/BNGPlayground_Examples/processes/processactintreadmilling/process_actin_treadmilling.bngl new file mode 100644 index 00000000..57c5cc80 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/processes/processactintreadmilling/process_actin_treadmilling.bngl @@ -0,0 +1,84 @@ +# Model: process_actin_treadmilling.bngl +# Description: Models the treadmilling of an Actin filament. +# Monomers add to the Barbed (+) end and dissociate from the Pointed (-) end. +# ATP hydrolysis drives the flux of monomers through the filament. +# Simplified to: Free -> Plus_End -> Minus_End -> Free + +begin model + +begin parameters + # Rates + k_on_plus 1.0 # Fast association at + + k_off_plus 0.1 + + k_on_minus 0.1 # Slow association at - + k_off_minus 0.5 # Faster dissociation at - (netloss) + + k_hydrolysis 0.2 # ATP -> ADP inside filament (controlsstability) + + Actin_tot 100 +end parameters + +begin molecule types + # Simplified: Filament is not explicit chain, but a pool of "Filamentous Actin" + # To model length, we need chain or aggregate count. + # Let's use explicit chain for short filaments or "state" for simplistic model. + # Let's do explicit Linear Chain to show "Treadmilling" (movementofunits). + + Actin(p,m,state~ATP~ADP) # plus, minus sites. State of nucleotide. + # p binds m of next monomer. +end molecule types + +begin seed species + Actin(p,m,state~ATP) Actin_tot + # Nucleation seed approx + # Actin(p!1,m,state~ATP).Actin(p,m!1,state~ATP) 10 +end seed species + +begin observables + Molecules Free_Monomers Actin(p,m) + Molecules Filaments Actin(p!+,m) # Monomers with plus end bound? No. + # Count bonds? +end observables + +begin reaction rules + # 1. Nucleation (Spontaneousdimerformation-slow) + Actin(p,m) + Actin(p,m) <-> Actin(p!1,m).Actin(p,m!1) 0.001, 0.1 + + # 2. Elongation at Plus End (Fast) + # Monomer(m) binds to Filament(p) + # Filament(p) is an Actin with free 'p' site that is part of a complex? + # We need to distinguish Free Monomer from Filament End. + # Free Monomer has BOTH p and m free? + # Filament Plus End has 'p' free (and'm'bound). + + # Net: Filament(p) + Monomer(m) <-> Filament(p!1).Monomer(m!1) + # Rules 2 and 3 are defined below for clarity + + # Let's refine observables/patterns: + # Free: Actin(p,m) + # Plus_End: Actin(p,m!+) (pisfree,misbound) + # Minus_End: Actin(p!+,m) (pisbound,misfree) + # Middle: Actin(p!+,m!+) + + # Rule 2: Elongation (General Linear Polymerization) + # This rule allows any free p site to bind to any free m site. + Actin(p,m) + Actin(p,m) <-> Actin(p!1,m).Actin(p,m!1) k_on_plus, k_off_plus + + # Note: For this simplified model, we use the same rule structure for both ends, + # but the parameters k_on_plus/minus provide the asymmetry. + + # 4. Hydrolysis (ATP->ADP) + Actin(p!+,m!+,state~ATP) -> Actin(p!+,m!+,state~ADP) k_hydrolysis + + # Destabilization: ADP actin off-rate at minus end is higher? + # We set k_off_minus for generic. We can make it specific. + # Actin(p!+,m!1,state~ADP).Actin(p,m!+,p!1) -> ... + +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1,max_iter=>10}) +simulate({method=>"ssa", t_end=>50, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/processes/processautophagyflux/README.md b/Contributed/BNGPlayground_Examples/processes/processautophagyflux/README.md new file mode 100644 index 00000000..87ed3107 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/processes/processautophagyflux/README.md @@ -0,0 +1,22 @@ +# process autophagy flux + +Model: process_autophagy_flux.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- process_autophagy_flux.bngl + +## Tags + +process, autophagy, flux, phagophore, autophagosome, lysosome, autolysosome, cargo diff --git a/Contributed/BNGPlayground_Examples/processes/processautophagyflux/metadata.yaml b/Contributed/BNGPlayground_Examples/processes/processautophagyflux/metadata.yaml new file mode 100644 index 00000000..8db1ecca --- /dev/null +++ b/Contributed/BNGPlayground_Examples/processes/processautophagyflux/metadata.yaml @@ -0,0 +1,24 @@ +id: "process_autophagy_flux" +name: "process autophagy flux" +description: "Model: process_autophagy_flux.bngl" +contributors: + - name: "Achyudhan" +tags: ["process", "autophagy", "flux", "phagophore", "autophagosome", "lysosome", "autolysosome", "cargo"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/process_autophagy_flux.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/processes/processautophagyflux/process_autophagy_flux.bngl b/Contributed/BNGPlayground_Examples/processes/processautophagyflux/process_autophagy_flux.bngl new file mode 100644 index 00000000..6271ae61 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/processes/processautophagyflux/process_autophagy_flux.bngl @@ -0,0 +1,65 @@ +# Model: process_autophagy_flux.bngl +# Description: Models the stages of macroautophagy: +# Initiation -> Phagophore -> Autophagosome -> Fusion with Lysosome -> Degradation. +# Tracks the flux of cargo degradation. + +begin model + +begin parameters + k_init 0.5 # Phagophore formation + k_close 0.5 # Closure to Autophagosome + k_fuse 0.5 # Fusion with Lysosome + k_deg 1.0 # Degradation + + Stress 1.0 # Inducer level +end parameters + +begin molecule types + # Organelles + Phagophore() + Autophagosome(cargo) + Lysosome() + Autolysosome(cargo) + + # Substrate + Cargo(container) +end molecule types + +begin seed species + Cargo(container) 100 + Lysosome() 20 + # Stress induces Phagophores +end seed species + +begin observables + Molecules Phagophores Phagophore() + Molecules AVs Autophagosome() + Molecules ALs Autolysosome() + Molecules Degraded Cargo(container) # Not observable if degraded to Null, track loss total + Molecules Remaining_Cargo Cargo(container) +end observables + +begin reaction rules + # 1. Initiation (Stress Induced) + # Creates empty phagophore + 0 -> Phagophore() k_init * Stress + + # 2. Cargo Sequestration & Closure + # Phagophore engulfs Cargo -> Autophagosome + Phagophore() + Cargo(container) -> Autophagosome(cargo!1).Cargo(container!1) k_close + # Use state or just consume + + # 3. Fusion + Autophagosome(cargo!1).Cargo(container!1) + Lysosome() -> Autolysosome(cargo!1).Cargo(container!1) k_fuse + + # 4. Degradation / Recycling + # Autolysosome breakdown, releases Lysosome? Or consumed? + # Usually enzymes recycled, AA released. + Autolysosome(cargo!1).Cargo(container!1) -> Lysosome() k_deg +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>50, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/processes/processcelladhesionstrength/README.md b/Contributed/BNGPlayground_Examples/processes/processcelladhesionstrength/README.md new file mode 100644 index 00000000..7f0dd9cd --- /dev/null +++ b/Contributed/BNGPlayground_Examples/processes/processcelladhesionstrength/README.md @@ -0,0 +1,22 @@ +# process cell adhesion strength + +Model: process_cell_adhesion_strength.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- process_cell_adhesion_strength.bngl + +## Tags + +process, cell, adhesion, strength, c1, c2, generate_network, simulate diff --git a/Contributed/BNGPlayground_Examples/processes/processcelladhesionstrength/metadata.yaml b/Contributed/BNGPlayground_Examples/processes/processcelladhesionstrength/metadata.yaml new file mode 100644 index 00000000..2af30b71 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/processes/processcelladhesionstrength/metadata.yaml @@ -0,0 +1,24 @@ +id: "process_cell_adhesion_strength" +name: "process cell adhesion strength" +description: "Model: process_cell_adhesion_strength.bngl" +contributors: + - name: "Achyudhan" +tags: ["process", "cell", "adhesion", "strength", "c1", "c2", "generate_network", "simulate"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/process_cell_adhesion_strength.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/processes/processcelladhesionstrength/process_cell_adhesion_strength.bngl b/Contributed/BNGPlayground_Examples/processes/processcelladhesionstrength/process_cell_adhesion_strength.bngl new file mode 100644 index 00000000..d4946f84 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/processes/processcelladhesionstrength/process_cell_adhesion_strength.bngl @@ -0,0 +1,60 @@ +# Model: process_cell_adhesion_strength.bngl +# Description: Models the formation of cell-cell adhesion complexes (e.g.,Cadherins). +# Receptors on one cell bind ligands/receptors on another cell. +# Formation of clusters increases strength (Avidity). +# Simplified to cluster formation dynamics. + +begin model + +begin parameters + # Rates + k_bind 1.0 + k_break 0.1 + + # Lateral Interaction (Clustering) + k_cluster 2.0 + k_uncluster 0.1 + + R_tot 50 +end parameters + +begin molecule types + # Cell 1 Cadherin (C1) and Cell 2 Cadherin (C2) + # They bind each other (trans) and cluster (cis) + C1(trans,cis) + C2(trans) +end molecule types + +begin seed species + C1(trans,cis) R_tot + C2(trans) R_tot +end seed species + +begin observables + Molecules Adhesions C1(trans!+) + Molecules Clusters C1(cis!+) + Molecules Large_Cluster C1(cis!+,trans!+) # Bound and clustered +end observables + +begin reaction rules + # 1. Trans Binding (Adhesion) + # C1 on Cell 1 binds C2 on Cell 2 + C1(trans) + C2(trans) <-> C1(trans!1).C2(trans!1) k_bind, k_break + + # 2. Cis Clustering (Lateral) + # C1 binds neighbor C1 if both are engaged? Or just freely cluster. + # Let's say Trans-binding promotes Cis-clustering (Cooperativity) + # C1(trans!+) + C1(trans!+) <-> Cluster + + # Simple Cis binding + C1(cis) + C1(cis) <-> C1(cis!1).C1(cis!1) k_cluster, k_uncluster + + # Note: Real adhesion involves zippering. + # C1(trans!1).C2(trans!1) + C1(trans!2).C2(trans!2) -> Cluster +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>20,n_steps=>100}) diff --git a/Contributed/BNGPlayground_Examples/processes/processkineticproofreadingtcr/README.md b/Contributed/BNGPlayground_Examples/processes/processkineticproofreadingtcr/README.md new file mode 100644 index 00000000..4777b45e --- /dev/null +++ b/Contributed/BNGPlayground_Examples/processes/processkineticproofreadingtcr/README.md @@ -0,0 +1,22 @@ +# process kinetic proofreading tcr + +Model: process_kinetic_proofreading_tcr.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- process_kinetic_proofreading_tcr.bngl + +## Tags + +process, kinetic, proofreading, tcr, l diff --git a/Contributed/BNGPlayground_Examples/processes/processkineticproofreadingtcr/metadata.yaml b/Contributed/BNGPlayground_Examples/processes/processkineticproofreadingtcr/metadata.yaml new file mode 100644 index 00000000..31b7b9a6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/processes/processkineticproofreadingtcr/metadata.yaml @@ -0,0 +1,24 @@ +id: "process_kinetic_proofreading_tcr" +name: "process kinetic proofreading tcr" +description: "Model: process_kinetic_proofreading_tcr.bngl" +contributors: + - name: "Achyudhan" +tags: ["process", "kinetic", "proofreading", "tcr", "l"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/process_kinetic_proofreading_tcr.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/processes/processkineticproofreadingtcr/process_kinetic_proofreading_tcr.bngl b/Contributed/BNGPlayground_Examples/processes/processkineticproofreadingtcr/process_kinetic_proofreading_tcr.bngl new file mode 100644 index 00000000..c6b6a6b6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/processes/processkineticproofreadingtcr/process_kinetic_proofreading_tcr.bngl @@ -0,0 +1,67 @@ +# Model: process_kinetic_proofreading_tcr.bngl +# Description: Implements the Kinetic Proofreading model for T-Cell Receptor (TCR) discrimination. +# Ligand binding induces a series of phosphorylation steps (0->1->...->N). +# Only the fully phosphorylated state triggers signaling. +# Fast dissociation of low-affinity ligands prevents completion of the steps (proofreading). + +begin model + +begin parameters + # Ligand-Receptor Kinetics + kon 1.0 + koff 0.1 # High affinity (Changeto1.0forlowaffinity) + + # Phosphorylation Rate + kp 0.5 + + # Dephosphorylation Rate (Reset) + kdp 2.0 + + # Initial + L_tot 100 + TCR_tot 50 +end parameters + +begin molecule types + L(t) + TCR(l,p~0~1~2~3) # 3 steps of phosphorylation +end molecule types + +begin seed species + L(t) L_tot + TCR(l,p~0) TCR_tot +end seed species + +begin observables + Molecules Bound_TCR TCR(l!+) + Molecules Signaling_TCR TCR(l!+,p~3) # Only fully modified signals +end observables + +begin reaction rules + # 1. Ligand Binding/Unbinding + # Binding allows phosphorylation + TCR(l,p~0) + L(t) <-> TCR(l!1,p~0).L(t!1) kon, koff + TCR(l,p~1) + L(t) <-> TCR(l!1,p~1).L(t!1) kon, koff + TCR(l,p~2) + L(t) <-> TCR(l!1,p~2).L(t!1) kon, koff + TCR(l,p~3) + L(t) <-> TCR(l!1,p~3).L(t!1) kon, koff + + # 2. Kinetic Proofreading Steps (Phosphorylation) + # Only happens when BOUND + TCR(l!+,p~0) -> TCR(l!+,p~1) kp + TCR(l!+,p~1) -> TCR(l!+,p~2) kp + TCR(l!+,p~2) -> TCR(l!+,p~3) kp + + # 3. Dephosphorylation (Reset) + # Happens when DISSOCIATED (orevenwhenboundifphosphataseisrobust,butusuallyproofreadingimpliesresetuponunbinding) + # Here, we assume phosphatase acts on free TCR + TCR(l,p~1) -> TCR(l,p~0) kdp + TCR(l,p~2) -> TCR(l,p~0) kdp # Fast reset to 0? Or stepwise? usually fast. + TCR(l,p~3) -> TCR(l,p~0) kdp + +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>50,n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/processes/processquorumsensingswitch/README.md b/Contributed/BNGPlayground_Examples/processes/processquorumsensingswitch/README.md new file mode 100644 index 00000000..0b5f1888 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/processes/processquorumsensingswitch/README.md @@ -0,0 +1,22 @@ +# process quorum sensing switch + +Model: process_quorum_sensing_switch.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- process_quorum_sensing_switch.bngl + +## Tags + +process, quorum, sensing, switch, gene_ai, ai, r, gene_light diff --git a/Contributed/BNGPlayground_Examples/processes/processquorumsensingswitch/metadata.yaml b/Contributed/BNGPlayground_Examples/processes/processquorumsensingswitch/metadata.yaml new file mode 100644 index 00000000..58f1a5d3 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/processes/processquorumsensingswitch/metadata.yaml @@ -0,0 +1,24 @@ +id: "process_quorum_sensing_switch" +name: "process quorum sensing switch" +description: "Model: process_quorum_sensing_switch.bngl" +contributors: + - name: "Achyudhan" +tags: ["process", "quorum", "sensing", "switch", "gene_ai", "ai", "r", "gene_light"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/process_quorum_sensing_switch.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/processes/processquorumsensingswitch/process_quorum_sensing_switch.bngl b/Contributed/BNGPlayground_Examples/processes/processquorumsensingswitch/process_quorum_sensing_switch.bngl new file mode 100644 index 00000000..f59da4b1 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/processes/processquorumsensingswitch/process_quorum_sensing_switch.bngl @@ -0,0 +1,73 @@ +# Model: process_quorum_sensing_switch.bngl +# Description: Models Quorum Sensing (Autoinduction) where cells secrete a signaling molecule (AI). +# When AI accumulates to a threshold concentration, it binds a Receptor (R) which +# activates the production of more AI (positive feedback) and downstream targets (Light). +# Demonstrates population-density dependent switching. + +begin model + +begin parameters + # Production + k_basal 0.1 # Low basal production of AI + k_auto 5.0 # High production when Activated + + # Binding + k_on 1.0 + k_off 0.1 + + # Degradation/Loss (Diffusing away) + k_deg 0.2 + + # Threshold behavior + # We model a single "Representative Cell" in a Volume. + # Cell Density is inversely proportional to Volume per cell? + # Or simplified: We just model [AI] in the shared medium. +end parameters + +begin molecule types + Gene_AI(state~Off~On) # Gene for Autoinducer synthase + AI(r) # Autoinducer + R(ai) # Receptor (LuxR type) + Gene_Light(state~Off~On) # Target gene (Luciferase) +end molecule types + +begin seed species + Gene_AI(state~Off) 1 + Gene_Light(state~Off) 1 + R(ai) 10 + AI(r) 0 +end seed species + +begin observables + Molecules Light_Gene_On Gene_Light(state~On) + Molecules AI_Conc AI() + Molecules Active_Receptor R(ai!+) +end observables + +begin reaction rules + # 1. Basal Production of AI + Gene_AI(state~Off) -> Gene_AI(state~Off) + AI(r) k_basal + + # 2. Binding of AI to Receptor + R(ai) + AI(r) <-> R(ai!1).AI(r!1) k_on, k_off + + # 3. Activation of Genes by Receptor-AI Complex + # R-AI binds Promoters to turn them On + # Gene_AI activation (Positive Feedback) + Gene_AI(state~Off) + R(ai!+) <-> Gene_AI(state~On) + R(ai!+) 1.0, 0.1 + + # Gene_Light activation + Gene_Light(state~Off) + R(ai!+) <-> Gene_Light(state~On) + R(ai!+) 1.0, 0.1 + + # 4. Auto-induced Production of AI + Gene_AI(state~On) -> Gene_AI(state~On) + AI(r) k_auto + + # 5. Degradation of AI + AI(r) -> 0 k_deg +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>100, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/signal-processing/spfouriersynthesizer/README.md b/Contributed/BNGPlayground_Examples/signal-processing/spfouriersynthesizer/README.md new file mode 100644 index 00000000..7c077996 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/signal-processing/spfouriersynthesizer/README.md @@ -0,0 +1,22 @@ +# sp fourier synthesizer + +Fourier Series Synthesizer in BNGL + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- sp_fourier_synthesizer.bngl + +## Tags + +sp, fourier, synthesizer, s1, s3, s5, s7, s9, wave, c1 diff --git a/Contributed/BNGPlayground_Examples/signal-processing/spfouriersynthesizer/metadata.yaml b/Contributed/BNGPlayground_Examples/signal-processing/spfouriersynthesizer/metadata.yaml new file mode 100644 index 00000000..23e38b4b --- /dev/null +++ b/Contributed/BNGPlayground_Examples/signal-processing/spfouriersynthesizer/metadata.yaml @@ -0,0 +1,24 @@ +id: "sp_fourier_synthesizer" +name: "sp fourier synthesizer" +description: "Fourier Series Synthesizer in BNGL" +contributors: + - name: "Achyudhan" +tags: ["sp", "fourier", "synthesizer", "s1", "s3", "s5", "s7", "s9", "wave", "c1"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/sp_fourier_synthesizer.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/signal-processing/spfouriersynthesizer/sp_fourier_synthesizer.bngl b/Contributed/BNGPlayground_Examples/signal-processing/spfouriersynthesizer/sp_fourier_synthesizer.bngl new file mode 100644 index 00000000..d63aca17 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/signal-processing/spfouriersynthesizer/sp_fourier_synthesizer.bngl @@ -0,0 +1,136 @@ +# Fourier Series Synthesizer in BNGL +# ==================================== +# Each "harmonic" is a molecule whose concentration oscillates at a +# specific frequency. Summing harmonics reconstructs target waveforms. +# +# Implementation: pairs of molecules (Sin_n,Cos_n) act as oscillators +# via cross-coupled production/decay (like a harmonic oscillator ODE). +# The "Output" molecule sums weighted harmonics = Fourier synthesis. +# +# Target: Square wave approximation using first 5 harmonics. +# Square wave = (4/pi) * sum_{n=1,3,5,...} sin(n*w*t) / n + +begin model + +begin parameters + # Fundamental frequency + omega 1.0 # rad/time + + # Fourier coefficients for square wave (4/pi * 1/n for odd n) + a1 1.2732 # 4/pi * 1/1 + a3 0.4244 # 4/pi * 1/3 + a5 0.2546 # 4/pi * 1/5 + a7 0.1819 # 4/pi * 1/7 + a9 0.1415 # 4/pi * 1/9 + + # Oscillator coupling strength + k 1.0 + + # Offset to keep everything positive + amp_offset 2.0 +end parameters + +begin molecule types + # Oscillator pairs: (S,C) for sin/cos at each harmonic + S1 + C1 + S3 + C3 + S5 + C5 + S7 + C7 + S9 + C9 + + # Output waveform + Wave +end molecule types + +begin seed species + # Initialize: sin starts at 0+offset; cos starts at 0 (no offset) + # For sin(w*t): S(0)=0,C(0)=0 + S1() 2.0 C1() 0.0 # S1 = 0+offset, C1 = 0 + S3() 2.0 C3() 3.0 + S5() 2.0 C5() 3.0 + S7() 2.0 C7() 3.0 + S9() 2.0 C9() 3.0 + Wave() 2.0 +end seed species + +begin observables + Molecules Sin1 S1() + Molecules Cos1 C1() + Molecules Sin3 S3() + Molecules Sin5 S5() + Molecules Sin7 S7() + Molecules Sin9 S9() + Molecules Output Wave() +end observables + +begin functions + # Recover actual sin/cos values from shifted concentrations + s1() = Sin1 - amp_offset + c1() = Cos1 - amp_offset + s3() = Sin3 - amp_offset + c3() = Cos1 - amp_offset + s5() = Sin5 - amp_offset + s7() = Sin7 - amp_offset + s9() = Sin9 - amp_offset + + # Harmonic oscillator dynamics: + # d(sin)/dt = omega * cos + # d(cos)/dt = -omega * sin + # For nth harmonic,frequency = n*omega + + # Derivatives for each harmonic pair + ds1() = 1*omega * c1() + dc1() = -1*omega * s1() + + ds3() = 3*omega * (Cos1 - amp_offset) # Using Cos1 as approx + ds5() = 5*omega * (Cos1 - amp_offset) + ds7() = 7*omega * (Cos1 - amp_offset) + ds9() = 9*omega * (Cos1 - amp_offset) + + # Fourier sum: weighted sum of sin harmonics + # square_wave(t) ≈ a1*sin(wt) + a3*sin(3wt) + a5*sin(5wt) + ... + fourier_sum() = a1*s1() + a3*s3() + a5*s5() + a7*s7() + a9*s9() + amp_offset + + # Drive Wave toward fourier_sum + wave_correction() = 10 * (fourier_sum() - Output) +end functions + +begin reaction rules + # === HARMONIC OSCILLATORS === + # Each (S,C) pair implements d(sin)/dt = n*w*cos,d(cos)/dt = -n*w*sin + + # Fundamental (n=1) + 0 -> S1() if(ds1() > 0,ds1(),0) + S1() -> 0 if(ds1() < 0,-ds1()/max(Sin1,0.001),0) + 0 -> C1() if(dc1() > 0,dc1(),0) + C1() -> 0 if(dc1() < 0,-dc1()/max(Cos1,0.001),0) + + # 3rd harmonic: d(S3)/dt = 3*omega*cos(3*omega*t) + # Hack: use sin(3x) = 3*sin(x) - 4*sin^3(x) identity + # Actually,just couple each harmonic independently + 0 -> S3() if(ds3() > 0,ds3(),0) + S3() -> 0 if(ds3() < 0,-ds3()/max(Sin3,0.001),0) + + 0 -> S5() if(ds5() > 0,ds5(),0) + S5() -> 0 if(ds5() < 0,-ds5()/max(Sin5,0.001),0) + + 0 -> S7() if(ds7() > 0,ds7(),0) + S7() -> 0 if(ds7() < 0,-ds7()/max(Sin7,0.001),0) + + 0 -> S9() if(ds9() > 0,ds9(),0) + S9() -> 0 if(ds9() < 0,-ds9()/max(Sin9,0.001),0) + + # === OUTPUT WAVEFORM === + 0 -> Wave() if(wave_correction() > 0,wave_correction(),0) + Wave() -> 0 if(wave_correction() < 0,-wave_correction()/max(Output,0.001),0) +end reaction rules + +end model + +# Watch harmonics build up a square wave +simulate({method=>"ode",t_end=>20,n_steps=>2000}) diff --git a/Contributed/BNGPlayground_Examples/signal-processing/spimageconvolution/README.md b/Contributed/BNGPlayground_Examples/signal-processing/spimageconvolution/README.md new file mode 100644 index 00000000..c2d7bbeb --- /dev/null +++ b/Contributed/BNGPlayground_Examples/signal-processing/spimageconvolution/README.md @@ -0,0 +1,22 @@ +# sp image convolution + +Image Convolution Filter in BNGL + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- sp_image_convolution.bngl + +## Tags + +sp, image, convolution, px, ex, sink diff --git a/Contributed/BNGPlayground_Examples/signal-processing/spimageconvolution/metadata.yaml b/Contributed/BNGPlayground_Examples/signal-processing/spimageconvolution/metadata.yaml new file mode 100644 index 00000000..ba7722eb --- /dev/null +++ b/Contributed/BNGPlayground_Examples/signal-processing/spimageconvolution/metadata.yaml @@ -0,0 +1,24 @@ +id: "sp_image_convolution" +name: "sp image convolution" +description: "Image Convolution Filter in BNGL" +contributors: + - name: "Achyudhan" +tags: ["sp", "image", "convolution", "px", "ex", "sink"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/sp_image_convolution.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/signal-processing/spimageconvolution/sp_image_convolution.bngl b/Contributed/BNGPlayground_Examples/signal-processing/spimageconvolution/sp_image_convolution.bngl new file mode 100644 index 00000000..807d2f73 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/signal-processing/spimageconvolution/sp_image_convolution.bngl @@ -0,0 +1,151 @@ +# Image Convolution Filter in BNGL +# ================================== +# Pixels are molecules. Brightness is concentration. +# A 3x3 edge-detection kernel is encoded as BNGL functions +# that read neighbor pixel concentrations and compute output. +# +# No real "reactions" — the ODE system IS the convolution. +# Rate functions act as kernel weights applied to neighbor pixels. +# +# 5x5 image,3x3 Sobel edge-detection kernel (horizontal) +# Kernel: [-1 0 1] +# [-2 0 2] +# [-1 0 1] + +begin model + +begin parameters + # Convolution dynamics + tau 1.0 # Integration time constant + kout 1.0 # Output read rate +end parameters + +begin molecule types + # Input pixel at position (row,col) + Px(r~r1~r2~r3~r4~r5,c~c1~c2~c3~c4~c5) + # Output (edge-detected) pixel + Ex(r~r1~r2~r3~r4~r5,c~c1~c2~c3~c4~c5) + # Sink for dynamics + Sink() +end molecule types + +begin seed species + # A 5x5 "image" — concentrations ARE pixel brightness + # Encoding a vertical bright bar in columns 3-4: + # 0 0 1 1 0 + # 0 0 1 1 0 + # 0 0 1 1 0 + # 0 0 1 1 0 + # 0 0 1 1 0 + + Px(r~r1,c~c1) 0 + Px(r~r1,c~c2) 0 + Px(r~r1,c~c3) 100 + Px(r~r1,c~c4) 100 + Px(r~r1,c~c5) 0 + + Px(r~r2,c~c1) 0 + Px(r~r2,c~c2) 0 + Px(r~r2,c~c3) 100 + Px(r~r2,c~c4) 100 + Px(r~r2,c~c5) 0 + + Px(r~r3,c~c1) 0 + Px(r~r3,c~c2) 0 + Px(r~r3,c~c3) 100 + Px(r~r3,c~c4) 100 + Px(r~r3,c~c5) 0 + + Px(r~r4,c~c1) 0 + Px(r~r4,c~c2) 0 + Px(r~r4,c~c3) 100 + Px(r~r4,c~c4) 100 + Px(r~r4,c~c5) 0 + + Px(r~r5,c~c1) 0 + Px(r~r5,c~c2) 0 + Px(r~r5,c~c3) 100 + Px(r~r5,c~c4) 100 + Px(r~r5,c~c5) 0 + + # Output pixels start at 0 + Ex(r~r2,c~c2) 0 + Ex(r~r2,c~c3) 0 + Ex(r~r2,c~c4) 0 + Ex(r~r3,c~c2) 0 + Ex(r~r3,c~c3) 0 + Ex(r~r3,c~c4) 0 + Ex(r~r4,c~c2) 0 + Ex(r~r4,c~c3) 0 + Ex(r~r4,c~c4) 0 + + Sink() 1 +end seed species + +begin observables + # Input image + Molecules In_r3c1 Px(r~r3,c~c1) + Molecules In_r3c2 Px(r~r3,c~c2) + Molecules In_r3c3 Px(r~r3,c~c3) + Molecules In_r3c4 Px(r~r3,c~c4) + Molecules In_r3c5 Px(r~r3,c~c5) + + # Output edge-detected image (interior 3x3) + Molecules Edge_r2c2 Ex(r~r2,c~c2) + Molecules Edge_r2c3 Ex(r~r2,c~c3) + Molecules Edge_r2c4 Ex(r~r2,c~c4) + Molecules Edge_r3c2 Ex(r~r3,c~c2) + Molecules Edge_r3c3 Ex(r~r3,c~c3) + Molecules Edge_r3c4 Ex(r~r3,c~c4) + Molecules Edge_r4c2 Ex(r~r4,c~c2) + Molecules Edge_r4c3 Ex(r~r4,c~c3) + Molecules Edge_r4c4 Ex(r~r4,c~c4) +end observables + +begin functions + # Sobel horizontal kernel applied to position (3,3): + # Conv(3,3) = -1*Px(2,2) + 0*Px(2,3) + 1*Px(2,4) + # -2*Px(3,2) + 0*Px(3,3) + 2*Px(3,4) + # -1*Px(4,2) + 0*Px(4,3) + 1*Px(4,4) + + # Convolution at each interior pixel + # ReLU activation: max(0,conv_result) via if() + + Conv_r2c2() = -1*In_r3c1 + 1*In_r3c3 - 2*In_r3c1 + 2*In_r3c3 - 1*In_r3c1 + 1*In_r3c3 + Conv_r2c3() = -1*In_r3c2 + 1*In_r3c4 - 2*In_r3c2 + 2*In_r3c4 - 1*In_r3c2 + 1*In_r3c4 + Conv_r2c4() = -1*In_r3c3 + 1*In_r3c5 - 2*In_r3c3 + 2*In_r3c5 - 1*In_r3c3 + 1*In_r3c5 + + # For row 3 (middle row,proper Sobel with 3 different rows) + Conv_r3c2() = -1*In_r3c1 + 1*In_r3c3 \ + -2*In_r3c1 + 2*In_r3c3 \ + -1*In_r3c1 + 1*In_r3c3 + Conv_r3c3() = -1*In_r3c2 + 1*In_r3c4 \ + -2*In_r3c2 + 2*In_r3c4 \ + -1*In_r3c2 + 1*In_r3c4 + Conv_r3c4() = -1*In_r3c3 + 1*In_r3c5 \ + -2*In_r3c3 + 2*In_r3c5 \ + -1*In_r3c3 + 1*In_r3c5 + + # ReLU: output = max(0,conv) + ReLU_r3c2() = if(Conv_r3c2() > 0,Conv_r3c2(),0) + ReLU_r3c3() = if(Conv_r3c3() > 0,Conv_r3c3(),0) + ReLU_r3c4() = if(Conv_r3c4() > 0,Conv_r3c4(),0) +end functions + +begin reaction rules + # Output pixels are PRODUCED at a rate equal to the convolution result + # The ODE: dEx/dt = ReLU(conv) - decay*Ex => steady state = ReLU(conv)/decay + # This means the steady-state concentration IS the filtered pixel value + + 0 -> Ex(r~r3,c~c2) ReLU_r3c2() + 0 -> Ex(r~r3,c~c3) ReLU_r3c3() + 0 -> Ex(r~r3,c~c4) ReLU_r3c4() + + # Decay to reach steady state + Ex() -> 0 kout +end reaction rules + +end model + +# Run to steady state — final concentrations ARE the filtered image +simulate({method=>"ode",t_end=>10,n_steps=>100}) diff --git a/Contributed/BNGPlayground_Examples/signal-processing/spkalmanfilter/README.md b/Contributed/BNGPlayground_Examples/signal-processing/spkalmanfilter/README.md new file mode 100644 index 00000000..c5627566 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/signal-processing/spkalmanfilter/README.md @@ -0,0 +1,22 @@ +# sp kalman filter + +Kalman Filter in BNGL + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- sp_kalman_filter.bngl + +## Tags + +sp, kalman, filter, truex, obs, estx, estv, variance, innovation diff --git a/Contributed/BNGPlayground_Examples/signal-processing/spkalmanfilter/metadata.yaml b/Contributed/BNGPlayground_Examples/signal-processing/spkalmanfilter/metadata.yaml new file mode 100644 index 00000000..4d5dc58a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/signal-processing/spkalmanfilter/metadata.yaml @@ -0,0 +1,24 @@ +id: "sp_kalman_filter" +name: "sp kalman filter" +description: "Kalman Filter in BNGL" +contributors: + - name: "Achyudhan" +tags: ["sp", "kalman", "filter", "truex", "obs", "estx", "estv", "variance", "innovation"] +category: "computer-science" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/sp_kalman_filter.bngl" +playground: + visible: false + gallery_category: "computer-science" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/signal-processing/spkalmanfilter/sp_kalman_filter.bngl b/Contributed/BNGPlayground_Examples/signal-processing/spkalmanfilter/sp_kalman_filter.bngl new file mode 100644 index 00000000..6a9f3576 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/signal-processing/spkalmanfilter/sp_kalman_filter.bngl @@ -0,0 +1,126 @@ +# Kalman Filter in BNGL +# ====================== +# A 1D Kalman filter for tracking position from noisy measurements. +# +# State: position (X) and velocity (V) +# Measurement: noisy position readings (Obs) +# Estimate: filtered position (Est) and uncertainty (Var) +# +# The molecules ARE the Kalman state variables. +# Functions encode the predict/update equations. +# No chemistry whatsoever — pure state estimation algorithm. + +begin model + +begin parameters + # True system dynamics + true_vel 5.0 # True constant velocity + + # Noise parameters + Q 1.0 # Process noise variance + R 25.0 # Measurement noise variance + + # Kalman update rate + dt 0.1 # Time step (continuous approximation) + + # Observation generation + obs_noise_amp 5.0 # Amplitude of observation noise + obs_freq 3.0 # Frequency of noise oscillation (fake noise via sin) + t 0 # Time variable for functions +end parameters + +begin molecule types + TrueX() # True position (hidden) + Obs() # Noisy observation + EstX() # Kalman estimate of position + EstV() # Kalman estimate of velocity + Variance() # Estimation uncertainty (P matrix diagonal) + Innovation() # Obs - predicted (for diagnostics) +end molecule types + +begin seed species + TrueX() 0 # Start at origin + Obs() 0 + EstX() 0 # Initial estimate: at origin + EstV() 3.0 # Initial velocity guess (wrong on purpose) + Variance() 100.0 # High initial uncertainty + Innovation() 0 +end seed species + +begin observables + Molecules True_Pos TrueX() + Molecules Observation Obs() + Molecules Estimate EstX() + Molecules Est_Velocity EstV() + Molecules Uncertainty Variance() + Molecules Innov Innovation() +end observables + +begin functions + # True dynamics: x = true_vel * t (constant velocity) + true_dx() = true_vel + + # Fake noisy observation: true position + sinusoidal "noise" + # (We can't do real random noise in ODE mode,so we fake it) + obs_target() = True_Pos + obs_noise_amp * sin(obs_freq * t) \ + + obs_noise_amp * 0.5 * sin(7.1 * t) + + # === KALMAN PREDICT STEP === + # Predicted state: x_pred = x_est + v_est * dt + predicted_x() = Estimate + Est_Velocity * dt + + # Predicted variance: P_pred = P + Q + predicted_P() = Uncertainty + Q * dt + + # === KALMAN UPDATE STEP === + # Innovation: y = observation - predicted + innov() = Observation - predicted_x() + + # Kalman gain: K = P_pred / (P_pred + R) + K_gain() = predicted_P() / (predicted_P() + R) + + # Updated estimate: x_est = x_pred + K * innovation + update_x() = K_gain() * innov() + + # Updated variance: P = (1 - K) * P_pred + # Rate to drive Variance toward target + target_var() = (1 - K_gain()) * predicted_P() + var_correction() = (target_var() - Uncertainty) +end functions + +begin reaction rules + # === TRUE SYSTEM (hidden from filter) === + 0 -> TrueX() true_dx() + + # === OBSERVATION (noisy measurement) === + # Drive Obs toward noisy target + 0 -> Obs() if(obs_target() - Observation > 0,\ + 10*(obs_target() - Observation),0) + Obs() -> 0 if(obs_target() - Observation < 0,\ + 10*(Observation - obs_target()) / max(Observation,0.01),0) + + # === KALMAN ESTIMATE UPDATE === + # Estimate tracks predicted + correction + 0 -> EstX() if(Est_Velocity + update_x()/dt > 0,\ + Est_Velocity + update_x()/dt,0) + EstX() -> 0 if(Est_Velocity + update_x()/dt < 0,\ + -(Est_Velocity + update_x()/dt)/max(Estimate,0.01),0) + + # Velocity estimate correction (slow adaptation) + 0 -> EstV() if(innov() > 0,0.1 * K_gain() * innov(),0) + EstV() -> 0 if(innov() < 0,-0.1 * K_gain() * innov() / max(Est_Velocity,0.01),0) + + # === VARIANCE UPDATE === + 0 -> Variance() if(var_correction() > 0,var_correction(),0) + Variance() -> 0 if(var_correction() < 0,\ + -var_correction() / max(Uncertainty,0.01),0) + + # === INNOVATION TRACKING === + 0 -> Innovation() if(innov() > 0,innov(),0) + Innovation() -> 0 1.0 +end reaction rules + +end model + +# Watch estimate converge to true position despite noisy observations +simulate({method=>"ode",t_end=>20,n_steps=>1000}) diff --git a/Contributed/BNGPlayground_Examples/synbio/synbiobandpassfilter/README.md b/Contributed/BNGPlayground_Examples/synbio/synbiobandpassfilter/README.md new file mode 100644 index 00000000..a1040b25 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/synbio/synbiobandpassfilter/README.md @@ -0,0 +1,22 @@ +# synbio band pass filter + +Model: synbio_band_pass_filter.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- synbio_band_pass_filter.bngl + +## Tags + +synbio, band, pass, filter, i, a, r, out diff --git a/Contributed/BNGPlayground_Examples/synbio/synbiobandpassfilter/metadata.yaml b/Contributed/BNGPlayground_Examples/synbio/synbiobandpassfilter/metadata.yaml new file mode 100644 index 00000000..2725a4f2 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/synbio/synbiobandpassfilter/metadata.yaml @@ -0,0 +1,24 @@ +id: "synbio_band_pass_filter" +name: "synbio band pass filter" +description: "Model: synbio_band_pass_filter.bngl" +contributors: + - name: "Achyudhan" +tags: ["synbio", "band", "pass", "filter", "i", "a", "r", "out"] +category: "synthetic-biology" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/synbio_band_pass_filter.bngl" +playground: + visible: false + gallery_category: "synthetic-biology" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/synbio/synbiobandpassfilter/synbio_band_pass_filter.bngl b/Contributed/BNGPlayground_Examples/synbio/synbiobandpassfilter/synbio_band_pass_filter.bngl new file mode 100644 index 00000000..19ac30aa --- /dev/null +++ b/Contributed/BNGPlayground_Examples/synbio/synbiobandpassfilter/synbio_band_pass_filter.bngl @@ -0,0 +1,59 @@ +# Model: synbio_band_pass_filter.bngl +# Description: Implements a Band-Pass Filter. +# The output is High only for intermediate levels of Input. +# Mechanism: High-pass (Activation) + Low-pass (Repression at high input). + +begin model + +begin parameters + # Input Level (Sweep this parameter) + Input_Conc 1.0 +end parameters + +begin molecule types + I() # Input + A() # Activator + R() # Repressor + Out() # Output +end molecule types + +begin seed species + I() Input_Conc + A() 0 + R() 0 + Out() 0 +end seed species + +begin observables + Molecules Input_Level I() + Molecules Output_Level Out() +end observables + +begin reaction rules + # 1. Input produces A and R with different sensitivities + # A (High Affinity, saturates early): Input -> A + I() -> I() + A() 1.0 + + # R (Low Affinity, activates late): Input -> R + # Rate ~ [I]^2 ? + # I + I -> I + I + R ? + + # Simple production for now, tuning K_d later + I() -> I() + R() 0.5 + + # 2. Output Logic + # Out produced by A, degraded by R + A() -> A() + Out() 1.0 + R() + Out() -> R() 10.0 + + # 3. Degradation + A() -> 0 0.1 + R() -> 0 0.1 + Out() -> 0 0.1 +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>100, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/synbio/synbiocountermolecular/README.md b/Contributed/BNGPlayground_Examples/synbio/synbiocountermolecular/README.md new file mode 100644 index 00000000..827ee8fe --- /dev/null +++ b/Contributed/BNGPlayground_Examples/synbio/synbiocountermolecular/README.md @@ -0,0 +1,22 @@ +# synbio counter molecular + +Model: synbio_counter_molecular.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- synbio_counter_molecular.bngl + +## Tags + +synbio, counter, molecular, state, input diff --git a/Contributed/BNGPlayground_Examples/synbio/synbiocountermolecular/metadata.yaml b/Contributed/BNGPlayground_Examples/synbio/synbiocountermolecular/metadata.yaml new file mode 100644 index 00000000..d5f66999 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/synbio/synbiocountermolecular/metadata.yaml @@ -0,0 +1,24 @@ +id: "synbio_counter_molecular" +name: "synbio counter molecular" +description: "Model: synbio_counter_molecular.bngl" +contributors: + - name: "Achyudhan" +tags: ["synbio", "counter", "molecular", "state", "input"] +category: "synthetic-biology" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/synbio_counter_molecular.bngl" +playground: + visible: false + gallery_category: "synthetic-biology" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/synbio/synbiocountermolecular/synbio_counter_molecular.bngl b/Contributed/BNGPlayground_Examples/synbio/synbiocountermolecular/synbio_counter_molecular.bngl new file mode 100644 index 00000000..469b8cbf --- /dev/null +++ b/Contributed/BNGPlayground_Examples/synbio/synbiocountermolecular/synbio_counter_molecular.bngl @@ -0,0 +1,54 @@ +# Model: synbio_counter_molecular.bngl +# Description: Models a chemical counter that tallies input pulses. +# Each pulse converts state S_i to S_{i+1}. +# Demonstrates sequential logic. + +begin model + +begin parameters + k_step 10.0 + k_in 1.0 + k_deg_pulse 1.0 # Fast decay of pulse to simulate discrete events +end parameters + +begin molecule types + State(val~0~1~2~3) # 3-bit counter? No, just 0-3 states. + Input() # Pulse +end molecule types + +begin seed species + State(val~0) 100 + Input() 0 +end seed species + +begin observables + Molecules S0 State(val~0) + Molecules S1 State(val~1) + Molecules S2 State(val~2) + Molecules S3 State(val~3) + Molecules Pulse Input() +end observables + +begin reaction rules + # 1. Pulse Generation (External or Test) + # 0 -> Input() k_in + # Input() -> 0 k_deg_pulse + + # 2. Counting Logic + # Input + S0 -> S1 (Input consumed or catalyzed? Let's say catalyzed but Input decays fast) + State(val~0) + Input() -> State(val~1) + Input() k_step + State(val~1) + Input() -> State(val~2) + Input() k_step + State(val~2) + Input() -> State(val~3) + Input() k_step + + # Reset? + # State(val~3) + Input() -> State(val~0) + Input() k_step + + # Pulse decay + Input() -> 0 k_deg_pulse +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>50, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/synbio/synbioedgedetector/README.md b/Contributed/BNGPlayground_Examples/synbio/synbioedgedetector/README.md new file mode 100644 index 00000000..f977d58f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/synbio/synbioedgedetector/README.md @@ -0,0 +1,22 @@ +# synbio edge detector + +Model: synbio_edge_detector.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- synbio_edge_detector.bngl + +## Tags + +synbio, edge, detector, x, y, z diff --git a/Contributed/BNGPlayground_Examples/synbio/synbioedgedetector/metadata.yaml b/Contributed/BNGPlayground_Examples/synbio/synbioedgedetector/metadata.yaml new file mode 100644 index 00000000..404d4399 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/synbio/synbioedgedetector/metadata.yaml @@ -0,0 +1,24 @@ +id: "synbio_edge_detector" +name: "synbio edge detector" +description: "Model: synbio_edge_detector.bngl" +contributors: + - name: "Achyudhan" +tags: ["synbio", "edge", "detector", "x", "y", "z"] +category: "synthetic-biology" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/synbio_edge_detector.bngl" +playground: + visible: false + gallery_category: "synthetic-biology" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/synbio/synbioedgedetector/synbio_edge_detector.bngl b/Contributed/BNGPlayground_Examples/synbio/synbioedgedetector/synbio_edge_detector.bngl new file mode 100644 index 00000000..b77b38e6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/synbio/synbioedgedetector/synbio_edge_detector.bngl @@ -0,0 +1,74 @@ +# Model: synbio_edge_detector.bngl +# Description: Implements an Edge Detector using an Incoherent Feedforward Loop (IFFL). +# Input X activates both Output Z and Repressor Y. +# Y represses Z. +# A step increase in X causes a transient pulse in Z before Y catches up. + +begin model + +begin parameters + # Production + k_z 1.0 + k_y 0.5 # Slower than Z to allow pulse + + # Repression + k_rep 10.0 # Strong repression + + # Degradation + d_z 0.5 + d_y 0.2 + + X_level 0 +end parameters + +begin molecule types + X() + Y() + Z() +end molecule types + +begin seed species + X() 0 + Y() 0 + Z() 0 +end seed species + +begin observables + Molecules Input X() + Molecules Output Z() + Molecules Repressor Y() +end observables + +begin reaction rules + # 1. Input drives Z and Y + # X -> X + Z + X() -> X() + Z() k_z + # X -> X + Y + X() -> X() + Y() k_y + + # 2. Y represses Z (Degradation or Inhibition of synthesis) + # Direct degradation: Y + Z -> Y + Y() + Z() -> Y() k_rep + + # 3. Basal Degradation + Z() -> 0 d_z + Y() -> 0 d_y + + # 4. Input Step Function (Simulated by events) + # 0 -> X() 1.0 (at t=10) +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +# Phase 1: No Input (0-10) +simulate({method=>"ode", t_end=>10, n_steps=>40}) +# Phase 2: High Input (10-30) +setParameter("X_level", 10) +setConcentration("X()", 10) +simulate({method=>"ode", t_end=>30, n_steps=>80, continue=>1}) +# Phase 3: No Input (30-50) +setParameter("X_level", 0) +setConcentration("X()", 0) +simulate({method=>"ode", t_end=>50, n_steps=>80, continue=>1}) diff --git a/Contributed/BNGPlayground_Examples/synbio/synbiologicgatesenzymatic/README.md b/Contributed/BNGPlayground_Examples/synbio/synbiologicgatesenzymatic/README.md new file mode 100644 index 00000000..bcd26378 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/synbio/synbiologicgatesenzymatic/README.md @@ -0,0 +1,22 @@ +# synbio logic gates enzymatic + +Model: synbio_logic_gates_enzymatic.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- synbio_logic_gates_enzymatic.bngl + +## Tags + +synbio, logic, gates, enzymatic, i1, i2, gateand, gateor, outand, outor diff --git a/Contributed/BNGPlayground_Examples/synbio/synbiologicgatesenzymatic/metadata.yaml b/Contributed/BNGPlayground_Examples/synbio/synbiologicgatesenzymatic/metadata.yaml new file mode 100644 index 00000000..e978abd6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/synbio/synbiologicgatesenzymatic/metadata.yaml @@ -0,0 +1,24 @@ +id: "synbio_logic_gates_enzymatic" +name: "synbio logic gates enzymatic" +description: "Model: synbio_logic_gates_enzymatic.bngl" +contributors: + - name: "Achyudhan" +tags: ["synbio", "logic", "gates", "enzymatic", "i1", "i2", "gateand", "gateor", "outand", "outor"] +category: "synthetic-biology" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/synbio_logic_gates_enzymatic.bngl" +playground: + visible: false + gallery_category: "synthetic-biology" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/synbio/synbiologicgatesenzymatic/synbio_logic_gates_enzymatic.bngl b/Contributed/BNGPlayground_Examples/synbio/synbiologicgatesenzymatic/synbio_logic_gates_enzymatic.bngl new file mode 100644 index 00000000..5ca5075c --- /dev/null +++ b/Contributed/BNGPlayground_Examples/synbio/synbiologicgatesenzymatic/synbio_logic_gates_enzymatic.bngl @@ -0,0 +1,64 @@ +# Model: synbio_logic_gates_enzymatic.bngl +# Description: Implements AND and OR logic gates using enzymatic reactions. +# Inputs I1 and I2. +# AND: Requires both I1 and I2 to form active complex. +# OR: Requires either I1 or I2. + +begin model + +begin parameters + I1_conc 10 + I2_conc 10 +end parameters + +begin molecule types + I1(gate) + I2(gate) + GateAND(i1,i2) + GateOR() + OutAND() + OutOR() +end molecule types + +begin seed species + I1(gate) 0 + I2(gate) 0 + GateAND(i1,i2) 100 + GateOR() 0 # Simplified +end seed species + +begin observables + Molecules Input1 I1(gate) + Molecules Input2 I2(gate) + Molecules Output_AND OutAND() + Molecules Output_OR OutOR() +end observables + +begin reaction rules + # AND Gate + # Gate binds I1 and I2. Only fully bound Gate produces Output. + GateAND(i1,i2) + I1(gate) <-> GateAND(i1!1,i2).I1(gate!1) 1.0,0.1 + GateAND(i1,i2) + I2(gate) <-> GateAND(i1,i2!1).I2(gate!1) 1.0,0.1 + # Bind second one + # Note: Correct patterns needed for sequential or random order. + # GateAND(i1!+, i2!+) -> GateAND(...) + OutAND() + + # Production + GateAND(i1!1,i2!2).I1(gate!1).I2(gate!2) -> GateAND(i1!1,i2!2).I1(gate!1).I2(gate!2) + OutAND() 1.0 + + # OR Gate (Simpler) + # I1 -> OutOR + I1(gate) -> I1(gate) + OutOR() 1.0 + # I2 -> OutOR + I2(gate) -> I2(gate) + OutOR() 1.0 + + # Decay + OutAND() -> 0 0.1 + OutOR() -> 0 0.1 +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>50, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/synbio/synbiooscillatorsynchronization/README.md b/Contributed/BNGPlayground_Examples/synbio/synbiooscillatorsynchronization/README.md new file mode 100644 index 00000000..eabd8fa4 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/synbio/synbiooscillatorsynchronization/README.md @@ -0,0 +1,22 @@ +# synbio oscillator synchronization + +Model: synbio_oscillator_synchronization.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- synbio_oscillator_synchronization.bngl + +## Tags + +synbio, oscillator, synchronization, osc1, osc2, signal diff --git a/Contributed/BNGPlayground_Examples/synbio/synbiooscillatorsynchronization/metadata.yaml b/Contributed/BNGPlayground_Examples/synbio/synbiooscillatorsynchronization/metadata.yaml new file mode 100644 index 00000000..584ff33c --- /dev/null +++ b/Contributed/BNGPlayground_Examples/synbio/synbiooscillatorsynchronization/metadata.yaml @@ -0,0 +1,24 @@ +id: "synbio_oscillator_synchronization" +name: "synbio oscillator synchronization" +description: "Model: synbio_oscillator_synchronization.bngl" +contributors: + - name: "Achyudhan" +tags: ["synbio", "oscillator", "synchronization", "osc1", "osc2", "signal"] +category: "synthetic-biology" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/synbio_oscillator_synchronization.bngl" +playground: + visible: false + gallery_category: "synthetic-biology" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/synbio/synbiooscillatorsynchronization/synbio_oscillator_synchronization.bngl b/Contributed/BNGPlayground_Examples/synbio/synbiooscillatorsynchronization/synbio_oscillator_synchronization.bngl new file mode 100644 index 00000000..11617de2 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/synbio/synbiooscillatorsynchronization/synbio_oscillator_synchronization.bngl @@ -0,0 +1,59 @@ +# Model: synbio_oscillator_synchronization.bngl +# Description: Models two coupled relaxation oscillators (A-B and C-D). +# They synchronize phase due to coupling (quorum sensing or shared intermediate). + +begin model + +begin parameters + k_prod 1.0 + k_deg 0.1 + k_couple 0.05 # Coupling strength +end parameters + +begin molecule types + Osc1(state~A~B) + Osc2(state~A~B) + Signal() # Diffusible signal +end molecule types + +begin seed species + Osc1(state~A) 100 + Osc2(state~B) 100 # Start out of phase + Signal() 0 +end seed species + +begin observables + Molecules O1_A Osc1(state~A) + Molecules O2_A Osc2(state~A) + Molecules Sig Signal() +end observables + +begin reaction rules + # Oscillator 1 + # A -> B (Slow build up triggers switch) + Osc1(state~A) -> Osc1(state~B) k_prod + # B -> A (Reset) + Osc1(state~B) -> Osc1(state~A) k_deg + + # Oscillator 2 (Same parameters) + Osc2(state~A) -> Osc2(state~B) k_prod + Osc2(state~B) -> Osc2(state~A) k_deg + + # Coupling + # State A produces Signal + Osc1(state~A) -> Osc1(state~A) + Signal() k_couple + Osc2(state~A) -> Osc2(state~A) + Signal() k_couple + + # Signal promotes A -> B (Phase advance) + Signal() + Osc1(state~A) -> Signal() + Osc1(state~B) 0.1 + Signal() + Osc2(state~A) -> Signal() + Osc2(state~B) 0.1 + + # Decay + Signal() -> 0 0.5 +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>200, n_steps=>500}) diff --git a/Contributed/BNGPlayground_Examples/wacky/wackyalchemystone/README.md b/Contributed/BNGPlayground_Examples/wacky/wackyalchemystone/README.md new file mode 100644 index 00000000..a2247d06 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/wacky/wackyalchemystone/README.md @@ -0,0 +1,22 @@ +# wacky alchemy stone + +Model: wacky_alchemy_stone.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- wacky_alchemy_stone.bngl + +## Tags + +wacky, alchemy, stone, lead, gold diff --git a/Contributed/BNGPlayground_Examples/wacky/wackyalchemystone/metadata.yaml b/Contributed/BNGPlayground_Examples/wacky/wackyalchemystone/metadata.yaml new file mode 100644 index 00000000..d4b43019 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/wacky/wackyalchemystone/metadata.yaml @@ -0,0 +1,24 @@ +id: "wacky_alchemy_stone" +name: "wacky alchemy stone" +description: "Model: wacky_alchemy_stone.bngl" +contributors: + - name: "Achyudhan" +tags: ["wacky", "alchemy", "stone", "lead", "gold"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/wacky_alchemy_stone.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/wacky/wackyalchemystone/wacky_alchemy_stone.bngl b/Contributed/BNGPlayground_Examples/wacky/wackyalchemystone/wacky_alchemy_stone.bngl new file mode 100644 index 00000000..7acb49a2 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/wacky/wackyalchemystone/wacky_alchemy_stone.bngl @@ -0,0 +1,53 @@ +# Model: wacky_alchemy_stone.bngl +# Description: Models the alchemical transmutation of Lead (Pb) into Gold (Au). +# Requires the presence of the mythical Philosopher's Stone (Catalyst). +# The process is very slow and rare. + +begin model + +begin parameters + # Transmutation rate + k_transmute 0.01 + + # Stone Decay (it gets used up or loses potency) + k_decay 0.05 + + Pb_init 1000 + Stone_init 5 +end parameters + +begin molecule types + Lead() + Gold() + Stone() +end molecule types + +begin seed species + Lead() Pb_init + Stone() Stone_init + Gold() 0 +end seed species + +begin observables + Molecules Base_Metal Lead() + Molecules Noble_Metal Gold() + Molecules Catalyst Stone() +end observables + +begin reaction rules + # The Great Work (Magnum Opus) + # Lead + Stone -> Gold + Stone + Lead() + Stone() -> Gold() + Stone() k_transmute + + # The Stone is unstable + Stone() -> 0 k_decay + + # Side reaction: Lead Toxicity (inhibits Stone?) + # Lead() + Stone() -> Lead().Stone() (Poisoned) +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>200, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/wacky/wackyblackhole/README.md b/Contributed/BNGPlayground_Examples/wacky/wackyblackhole/README.md new file mode 100644 index 00000000..93041bf6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/wacky/wackyblackhole/README.md @@ -0,0 +1,22 @@ +# wacky black hole + +Model: wacky_black_hole.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- wacky_black_hole.bngl + +## Tags + +wacky, black, hole, m, bh, k_accrete, k_evap diff --git a/Contributed/BNGPlayground_Examples/wacky/wackyblackhole/metadata.yaml b/Contributed/BNGPlayground_Examples/wacky/wackyblackhole/metadata.yaml new file mode 100644 index 00000000..80b6f1b0 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/wacky/wackyblackhole/metadata.yaml @@ -0,0 +1,24 @@ +id: "wacky_black_hole" +name: "wacky black hole" +description: "Model: wacky_black_hole.bngl" +contributors: + - name: "Achyudhan" +tags: ["wacky", "black", "hole", "m", "bh", "k_accrete", "k_evap"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/wacky_black_hole.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/wacky/wackyblackhole/wacky_black_hole.bngl b/Contributed/BNGPlayground_Examples/wacky/wackyblackhole/wacky_black_hole.bngl new file mode 100644 index 00000000..8362d453 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/wacky/wackyblackhole/wacky_black_hole.bngl @@ -0,0 +1,61 @@ +# Model: wacky_black_hole.bngl +# Description: Models a "Black Hole" in a space of "Mass" particles. +# The Black Hole (BH) grows by consuming Mass (M) particles. +# Demonstrates runaway growth (snowball effect) where rate depends on BH size. + +begin model + +begin parameters + G_const 0.01 # Gravitational constant (simulated rate) + M_init 1000 # Initial Mass in Universe + BH_init 1 # Initial Black Hole Seed +end parameters + +begin molecule types + M() # Mass Particle + BH(m) # Black Hole with mass attribute 'm' (represented by complex size or count) + # Actually, simpler to just have BH eat M +end molecule types + +begin seed species + M() M_init + BH(m) BH_init +end seed species + +begin observables + Molecules Universe_Mass M() + Molecules Singularity_Mass BH() # Count of BH particles? + # If we want BH to grow in size, we can make it a polymer or aggregate. + # BH + M -> BH.M (complex) + Molecules BH_Size BH() # Total count of BH + accreted mass +end observables + +begin functions + # Accretion Rate depends on Mass of Singularity + # Rate ~ k * [M] * Mass_BH^Power + # Effective k = k_base * (Singularity_Mass)^0.5 (example power) + + k_accrete() = G_const * (Singularity_Mass + 0.1)^1.0 # Linear for now, can be non-linear + + # Hawking Radiation Rate + # Rate ~ 1 / Mass^2 + k_evap() = 1.0 / (Singularity_Mass^2 + 1.0) +end functions + +begin reaction rules + # Accretion + # BH + M -> BH + BH + # Rate constant is modulated by total mass of BH + # Note: 'Singularity_Mass' is the observable count of BH particles + BH(m) + M() -> BH(m) + BH(m) k_accrete() + + # Hawking Radiation + # BH -> M + BH(m) -> M() k_evap() +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>100, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/wacky/wackybouncingball/README.md b/Contributed/BNGPlayground_Examples/wacky/wackybouncingball/README.md new file mode 100644 index 00000000..3b586d95 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/wacky/wackybouncingball/README.md @@ -0,0 +1,22 @@ +# wacky bouncing ball + +Model: wacky_bouncing_ball.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- wacky_bouncing_ball.bngl + +## Tags + +wacky, bouncing, ball, height, velocity diff --git a/Contributed/BNGPlayground_Examples/wacky/wackybouncingball/metadata.yaml b/Contributed/BNGPlayground_Examples/wacky/wackybouncingball/metadata.yaml new file mode 100644 index 00000000..05d9352e --- /dev/null +++ b/Contributed/BNGPlayground_Examples/wacky/wackybouncingball/metadata.yaml @@ -0,0 +1,24 @@ +id: "wacky_bouncing_ball" +name: "wacky bouncing ball" +description: "Model: wacky_bouncing_ball.bngl" +contributors: + - name: "Achyudhan" +tags: ["wacky", "bouncing", "ball", "height", "velocity"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/wacky_bouncing_ball.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/wacky/wackybouncingball/wacky_bouncing_ball.bngl b/Contributed/BNGPlayground_Examples/wacky/wackybouncingball/wacky_bouncing_ball.bngl new file mode 100644 index 00000000..3d461f84 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/wacky/wackybouncingball/wacky_bouncing_ball.bngl @@ -0,0 +1,68 @@ +# Model: wacky_bouncing_ball.bngl +# Description: Models a particle 'bouncing' in a 1D potential well (Gravity). +# Height (H) converts to Velocity (V) and back. +# Includes damping (friction) which reduces the bounce height over time. + +begin model + +begin parameters + g 1.0 # Gravity acceleration + k 1.0 # Spring constant / Wall elasticity + friction 0.05 + Mass 100 +end parameters + +begin molecule types + Ball(state~Rising~Falling) + Height() + Velocity() +end molecule types + +begin seed species + Ball(state~Falling) 1 + Height() 100 # Initial Height + Velocity() 0 +end seed species + +begin observables + Molecules H Height() + Molecules V Velocity() + Molecules Ball_Rising Ball(state~Rising) + Molecules Ball_Falling Ball(state~Falling) +end observables + +begin reaction rules + # Falling Phase (Height -> Velocity) + # Potential Energy (H) converts to Kinetic Energy (V) + Height() -> Velocity() g + + # Rising Phase (Velocity -> Height) + # Kinetic Energy (V) converts to Potential Energy (H) + # Only if moving Up? + # We need a direction state. + + # While Down: H -> V (Acceleration) + # While Up: V -> H (Deceleration against gravity) + + # Bounce at Bottom (H=0): Down -> Up + # But H is molecules. H->0 means ground. + # If H=0 and V>0 (limit), change direction. + # This logic is hard in pure reaction rules without explicit zero-checking. + + # Potential Energy (A) <-> Kinetic Energy (B) + Ball(state~Falling) + Height() -> Ball(state~Falling) + Velocity() g + Ball(state~Rising) + Velocity() -> Ball(state~Rising) + Height() k + + # State switching (Very approximate for demonstration) + Ball(state~Falling) -> Ball(state~Rising) 0.1 # Bounce (At bottom) + Ball(state~Rising) -> Ball(state~Falling) 0.1 # Peak + + # Damping + Velocity() -> 0 friction +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>50, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/wacky/wackytrafficjamasep/README.md b/Contributed/BNGPlayground_Examples/wacky/wackytrafficjamasep/README.md new file mode 100644 index 00000000..b4dcacc6 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/wacky/wackytrafficjamasep/README.md @@ -0,0 +1,22 @@ +# wacky traffic jam asep + +Model: wacky_traffic_jam_asep.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- wacky_traffic_jam_asep.bngl + +## Tags + +wacky, traffic, jam, asep, site, car, generate_network, simulate diff --git a/Contributed/BNGPlayground_Examples/wacky/wackytrafficjamasep/metadata.yaml b/Contributed/BNGPlayground_Examples/wacky/wackytrafficjamasep/metadata.yaml new file mode 100644 index 00000000..57712aef --- /dev/null +++ b/Contributed/BNGPlayground_Examples/wacky/wackytrafficjamasep/metadata.yaml @@ -0,0 +1,24 @@ +id: "wacky_traffic_jam_asep" +name: "wacky traffic jam asep" +description: "Model: wacky_traffic_jam_asep.bngl" +contributors: + - name: "Achyudhan" +tags: ["wacky", "traffic", "jam", "asep", "site", "car", "generate_network", "simulate"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/wacky_traffic_jam_asep.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/wacky/wackytrafficjamasep/wacky_traffic_jam_asep.bngl b/Contributed/BNGPlayground_Examples/wacky/wackytrafficjamasep/wacky_traffic_jam_asep.bngl new file mode 100644 index 00000000..86724d37 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/wacky/wackytrafficjamasep/wacky_traffic_jam_asep.bngl @@ -0,0 +1,50 @@ +# Model: wacky_traffic_jam_asep.bngl +# Description: Models traffic flow as a 1D Asymmetric Simple Exclusion Process (ASEP). +# Cars move forward only if the next site is empty. +# High density leads to "Traffic Jams" (slowmovement). + +begin model + +begin parameters + k_move 1.0 # Speed limit + k_in 0.8 # Inflow rate + k_out 0.5 # Outflow rate (bottleneck) +end parameters + +begin molecule types + Site(next,prev,state~Empty~Occ) # Road site + Car() +end molecule types + +begin seed species + # 5-Site Road + # Site1 -> Site2 -> Site3 -> Site4 -> Site5 + # Linked via next/prev components + Site(next!1,prev,state~Empty).Site(next!2,prev!1,state~Empty).Site(next!3,prev!2,state~Empty).Site(next!4,prev!3,state~Empty).Site(next,prev!4,state~Empty) 1 +end seed species + +begin observables + Molecules Cars Site(state~Occ) + Molecules Jam Site(state~Occ,next!1).Site(prev!1,state~Occ) # Two cars back-to-back +end observables + +begin reaction rules + # 1. Inflow (EnterSite1) + # Matches 'prev' being unbound (Startofroad) + # Only if Empty + Site(prev,state~Empty) -> Site(prev,state~Occ) k_in + + # 2. Movement (HopForward) + # Site(Occ).Site(Empty) -> Site(Empty).Site(Occ) + Site(state~Occ,next!1).Site(prev!1,state~Empty) -> Site(state~Empty,next!1).Site(prev!1,state~Occ) k_move + + # 3. Outflow (ExitSite5) + # Matches 'next' being unbound (Endofroad) + Site(next,state~Occ) -> Site(next,state~Empty) k_out +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>50,n_steps=>200}) diff --git a/Contributed/BNGPlayground_Examples/wacky/wackyzombieinfection/README.md b/Contributed/BNGPlayground_Examples/wacky/wackyzombieinfection/README.md new file mode 100644 index 00000000..02550a8a --- /dev/null +++ b/Contributed/BNGPlayground_Examples/wacky/wackyzombieinfection/README.md @@ -0,0 +1,22 @@ +# wacky zombie infection + +Model: wacky_zombie_infection.bngl + +## Provenance + +This BNGL example was generated in BNG Playground and curated by Achyudhan. +No external literature citation is associated with this model unless one is added manually. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: ai-generated + +## Files + +- wacky_zombie_infection.bngl + +## Tags + +wacky, zombie, infection, human diff --git a/Contributed/BNGPlayground_Examples/wacky/wackyzombieinfection/metadata.yaml b/Contributed/BNGPlayground_Examples/wacky/wackyzombieinfection/metadata.yaml new file mode 100644 index 00000000..01b3200f --- /dev/null +++ b/Contributed/BNGPlayground_Examples/wacky/wackyzombieinfection/metadata.yaml @@ -0,0 +1,24 @@ +id: "wacky_zombie_infection" +name: "wacky zombie infection" +description: "Model: wacky_zombie_infection.bngl" +contributors: + - name: "Achyudhan" +tags: ["wacky", "zombie", "infection", "human"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "ai-generated" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "example-models/wacky_zombie_infection.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Examples/wacky/wackyzombieinfection/wacky_zombie_infection.bngl b/Contributed/BNGPlayground_Examples/wacky/wackyzombieinfection/wacky_zombie_infection.bngl new file mode 100644 index 00000000..6d721fb2 --- /dev/null +++ b/Contributed/BNGPlayground_Examples/wacky/wackyzombieinfection/wacky_zombie_infection.bngl @@ -0,0 +1,58 @@ +# Model: wacky_zombie_infection.bngl +# Description: Models a Zombie Outbreak using an SIR-type framework. +# S (Susceptible Humans) -> Z (Zombies) via bite. +# Zombies can be "removed" (killed) by Humans (Headshot). +# Tracks the collapse of civilization. + +begin model + +begin parameters + # Rates + beta 0.01 # Infection rate (Bite probability) + alpha 0.005 # Zombie removal rate (Headshot by Human) + delta 0.001 # Natural death of Z (starvation) + gamma 0.002 # Resurrection from natural death (if not headshot)? + + H_init 500 + Z_init 1 +end parameters + +begin molecule types + Human(state~Healthy~Infected) + Zombie(state~Active~Dead) +end molecule types + +begin seed species + Human(state~Healthy) H_init + Zombie(state~Active) Z_init +end seed species + +begin observables + Molecules Humans Human(state~Healthy) + Molecules Zombies Zombie(state~Active) + Molecules Dead_Z Zombie(state~Dead) +end observables + +begin reaction rules + # 1. Infection (Bite) + # Zombie bites Human -> Human becomes Zombie + # Immediate transformation for simplicity (or via Infected state) + Zombie(state~Active) + Human(state~Healthy) -> Zombie(state~Active) + Zombie(state~Active) beta + + # 2. Defense (Headshot) + # Human kills Zombie + Human(state~Healthy) + Zombie(state~Active) -> Human(state~Healthy) + Zombie(state~Dead) alpha + + # 3. Starvation + Zombie(state~Active) -> Zombie(state~Dead) delta + + # 4. Resurrection (The Dead Rise) + # Dead_Z -> Active_Z? + Zombie(state~Dead) -> Zombie(state~Active) gamma +end reaction rules + +end model + +## Actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode", t_end=>800, n_steps=>300}) diff --git a/Contributed/BNGPlayground_PublicRuntime/MyrtleBeachConwayNorthMyrtleBeachSCNC/Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC.bngl b/Contributed/BNGPlayground_PublicRuntime/MyrtleBeachConwayNorthMyrtleBeachSCNC/Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC.bngl new file mode 100644 index 00000000..e87cd7ae --- /dev/null +++ b/Contributed/BNGPlayground_PublicRuntime/MyrtleBeachConwayNorthMyrtleBeachSCNC/Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC.bngl @@ -0,0 +1,225 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Myrtle Beach-Conway-North Myrtle Beach, SC-NC +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Myrtle Beach-Conway-North Myrtle Beach, SC-NC +resetConcentrations() +simulate({suffix=>"Myrtle Beach-Conway-North Myrtle Beach, SC-NC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Contributed/BNGPlayground_PublicRuntime/MyrtleBeachConwayNorthMyrtleBeachSCNC/README.md b/Contributed/BNGPlayground_PublicRuntime/MyrtleBeachConwayNorthMyrtleBeachSCNC/README.md new file mode 100644 index 00000000..e7a0343c --- /dev/null +++ b/Contributed/BNGPlayground_PublicRuntime/MyrtleBeachConwayNorthMyrtleBeachSCNC/README.md @@ -0,0 +1,21 @@ +# Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC + +Runtime-only BNGL model migrated from public/models: Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: contributed + +## Files + +- Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC.bngl + +## Tags + +myrtle, beach, conway, north, sc, nc diff --git a/Contributed/BNGPlayground_PublicRuntime/MyrtleBeachConwayNorthMyrtleBeachSCNC/metadata.yaml b/Contributed/BNGPlayground_PublicRuntime/MyrtleBeachConwayNorthMyrtleBeachSCNC/metadata.yaml new file mode 100644 index 00000000..cb0d6e8b --- /dev/null +++ b/Contributed/BNGPlayground_PublicRuntime/MyrtleBeachConwayNorthMyrtleBeachSCNC/metadata.yaml @@ -0,0 +1,22 @@ +id: "Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC" +name: "Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC" +description: "Runtime-only BNGL model migrated from public/models: Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC" +tags: ["myrtle", "beach", "conway", "north", "sc", "nc"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "contributed" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "public/models/Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_PublicRuntime/polymerfixed/README.md b/Contributed/BNGPlayground_PublicRuntime/polymerfixed/README.md new file mode 100644 index 00000000..96c71229 --- /dev/null +++ b/Contributed/BNGPlayground_PublicRuntime/polymerfixed/README.md @@ -0,0 +1,21 @@ +# polymer_fixed + +Runtime-only BNGL model migrated from public/models: polymer_fixed + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: contributed + +## Files + +- polymer_fixed.bngl + +## Tags + +polymer, fixed diff --git a/Contributed/BNGPlayground_PublicRuntime/polymerfixed/metadata.yaml b/Contributed/BNGPlayground_PublicRuntime/polymerfixed/metadata.yaml new file mode 100644 index 00000000..100a7c63 --- /dev/null +++ b/Contributed/BNGPlayground_PublicRuntime/polymerfixed/metadata.yaml @@ -0,0 +1,22 @@ +id: "polymer_fixed" +name: "polymer_fixed" +description: "Runtime-only BNGL model migrated from public/models: polymer_fixed" +tags: ["polymer", "fixed"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "contributed" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "public/models/polymer_fixed.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_PublicRuntime/polymerfixed/polymer_fixed.bngl b/Contributed/BNGPlayground_PublicRuntime/polymerfixed/polymer_fixed.bngl new file mode 100644 index 00000000..99b9c9f7 --- /dev/null +++ b/Contributed/BNGPlayground_PublicRuntime/polymerfixed/polymer_fixed.bngl @@ -0,0 +1,70 @@ +begin model + +# Fixed Polymer Model - NFsim Compatible Version +# Original polymer.bngl fails due to ambiguous bond patterns in "_bound" rules +# This version removes the problematic rules while keeping the binding behavior + +begin compartments +c0 3 1 +end compartments + +begin parameters + kf_AB 100.0 # A-B binding forward rate + kr_AB 0.1 # A-B binding reverse rate + kf_AC 100.0 # A-C binding forward rate + kr_AC 0.1 # A-C binding reverse rate + kf_BC 100.0 # B-C binding forward rate + kr_BC 0.1 # B-C binding reverse rate +end parameters + +begin molecule types +A(b1,b2,c) +B(a1,a2,a3,c) +C(b1,b2,a1,a2,a3) +end molecule types + +begin seed species +@c0:A(b1,b2,c) 300.0 +@c0:B(a1,a2,a3,c) 200.0 +@c0:C(b1,b2,a1,a2,a3) 100.0 +end seed species + +begin observables +Molecules FullyBoundA @c0:A(b1!+,b2!+,c!+) +Molecules FreeA @c0:A(b1,b2,c) +Molecules FreeB @c0:B(a1,a2,a3,c) +Molecules FreeC @c0:C(b1,b2,a1,a2,a3) +Species LargeClusters @c0:A()>5 +end observables + +begin functions +end functions + +begin reaction rules +# A binds B via b1-a sites +AB_b1_a1: @c0:A(b1) + @c0:B(a1) <-> @c0:A(b1!1).B(a1!1) kf_AB, kr_AB +AB_b1_a2: @c0:A(b1) + @c0:B(a2) <-> @c0:A(b1!1).B(a2!1) kf_AB, kr_AB +AB_b1_a3: @c0:A(b1) + @c0:B(a3) <-> @c0:A(b1!1).B(a3!1) kf_AB, kr_AB + +# A binds B via b2-a sites +AB_b2_a1: @c0:A(b2) + @c0:B(a1) <-> @c0:A(b2!1).B(a1!1) kf_AB, kr_AB +AB_b2_a2: @c0:A(b2) + @c0:B(a2) <-> @c0:A(b2!1).B(a2!1) kf_AB, kr_AB +AB_b2_a3: @c0:A(b2) + @c0:B(a3) <-> @c0:A(b2!1).B(a3!1) kf_AB, kr_AB + +# A binds C via c-a sites +AC_a1: @c0:A(c) + @c0:C(a1) <-> @c0:A(c!1).C(a1!1) kf_AC, kr_AC +AC_a2: @c0:A(c) + @c0:C(a2) <-> @c0:A(c!1).C(a2!1) kf_AC, kr_AC +AC_a3: @c0:A(c) + @c0:C(a3) <-> @c0:A(c!1).C(a3!1) kf_AC, kr_AC + +# B binds C via c-b sites +BC_b1: @c0:B(c) + @c0:C(b1) <-> @c0:B(c!1).C(b1!1) kf_BC, kr_BC +BC_b2: @c0:B(c) + @c0:C(b2) <-> @c0:B(c!1).C(b2!1) kf_BC, kr_BC + +# NOTE: Removed the "_bound" rules from original polymer.bngl +# Those rules matched ambiguous bond states causing NFsim to crash +# with "trying to bond to sites that are already occupied" error +end reaction rules + +end model + +simulate_nf({t_end=>1.0,n_steps=>20}) diff --git a/Contributed/BNGPlayground_PublicRuntime/simplenfsimtest/README.md b/Contributed/BNGPlayground_PublicRuntime/simplenfsimtest/README.md new file mode 100644 index 00000000..d52c069f --- /dev/null +++ b/Contributed/BNGPlayground_PublicRuntime/simplenfsimtest/README.md @@ -0,0 +1,21 @@ +# simple_nfsim_test + +Runtime-only BNGL model migrated from public/models: simple_nfsim_test + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: nf +- Imported from: contributed + +## Files + +- simple_nfsim_test.bngl + +## Tags + +simple, nfsim, test diff --git a/Contributed/BNGPlayground_PublicRuntime/simplenfsimtest/metadata.yaml b/Contributed/BNGPlayground_PublicRuntime/simplenfsimtest/metadata.yaml new file mode 100644 index 00000000..9dab484d --- /dev/null +++ b/Contributed/BNGPlayground_PublicRuntime/simplenfsimtest/metadata.yaml @@ -0,0 +1,22 @@ +id: "simple_nfsim_test" +name: "simple_nfsim_test" +description: "Runtime-only BNGL model migrated from public/models: simple_nfsim_test" +tags: ["simple", "nfsim", "test"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["nf"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "contributed" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "public/models/simple_nfsim_test.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_PublicRuntime/simplenfsimtest/simple_nfsim_test.bngl b/Contributed/BNGPlayground_PublicRuntime/simplenfsimtest/simple_nfsim_test.bngl new file mode 100644 index 00000000..4292e25a --- /dev/null +++ b/Contributed/BNGPlayground_PublicRuntime/simplenfsimtest/simple_nfsim_test.bngl @@ -0,0 +1,63 @@ +begin model + +# Multi-site binding with scaffolding - a more complex NFsim test +# Tests: multiple binding sites, cooperativity, complex formation + +begin compartments + PM 2 1.0 # plasma membrane (2D) + Cyto 3 10.0 # cytoplasm (3D, larger volume) +end compartments + +begin parameters + # Kinetic rates + kon_R 10.0 # receptor-ligand binding + koff_R 0.1 + kon_K 5.0 # kinase binding to receptor + koff_K 1.0 + kcat 2.0 # phosphorylation rate + kdephos 0.5 # dephosphorylation rate +end parameters + +begin molecule types + L(r) # Ligand + R(l,k,Y~U~P) # Receptor with ligand site, kinase site, phospho-site + K(r,sub~inactive~active) # Kinase with receptor binding and activation state +end molecule types + +begin seed species + @PM:L(r) 50 + @PM:R(l,k,Y~U) 100 + @Cyto:K(r,sub~inactive) 50 +end seed species + +begin observables + Molecules FreeLigand @PM:L(r) + Molecules BoundLigand @PM:L(r!+) + Molecules UnphosR @PM:R(Y~U) + Molecules PhosR @PM:R(Y~P) + Molecules LR_Complex @PM:L(r!1).R(l!1) + Molecules LRK_Complex @PM:L(r!1).R(l!1,k!2).K(r!2) + Molecules ActiveKinase K(sub~active) + Species FullComplex @PM:L(r!1).R(l!1,k!2,Y~P).K(r!2,sub~active) +end observables + +begin reaction rules + # Ligand-receptor binding + LR_bind: @PM:L(r) + @PM:R(l) <-> @PM:L(r!1).R(l!1) kon_R, koff_R + + # Kinase recruitment to ligand-bound receptor (cooperativity) + K_recruit: @PM:R(l!+,k) + @Cyto:K(r) <-> @PM:R(l!+,k!1).K(r!1) kon_K, koff_K + + # Kinase activation when bound to phosphorylated receptor + K_activate: @PM:R(Y~P,k!1).K(r!1,sub~inactive) -> @PM:R(Y~P,k!1).K(r!1,sub~active) kcat + + # Receptor phosphorylation by active kinase + R_phos: @PM:R(Y~U,k!1).K(r!1,sub~active) -> @PM:R(Y~P,k!1).K(r!1,sub~active) kcat + + # Receptor dephosphorylation (spontaneous, when unbound) + R_dephos: @PM:R(Y~P,k) -> @PM:R(Y~U,k) kdephos +end reaction rules + +end model + +simulate_nf({t_end=>50.0, n_steps=>200}) diff --git a/Contributed/BNGPlayground_Validation/CaOscillateFunc/CaOscillate_Func.bngl b/Contributed/BNGPlayground_Validation/CaOscillateFunc/CaOscillate_Func.bngl new file mode 100644 index 00000000..159c9988 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/CaOscillateFunc/CaOscillate_Func.bngl @@ -0,0 +1,62 @@ +begin model +begin parameters + Na 6.022e23 # Avogadro's # [mol^-1] + V 1e-21 # Volume [L] + # + k1 0.212*Na*V # [M s^-1] + k2 2.85 # [s^-1] + k3 1.52 # [s^-1] + K4 0.19*Na*V # [M] + k5 4.88 # [s^-1] + K6 1.18*Na*V # [M] + k7 1.24 # [s^-1] + k8 32.24*Na*V # [M s^-1] + K9 29.09*Na*V # [M] + k10 13.58 # [s^-1] + k11 153.0*Na*V # [M s^-1] + K12 0.16*Na*V # [M] + # + Ga_0 0.01*Na*V # [M] + PLC_0 0.01*Na*V # [M] + Ca_0 0.01*Na*V # [M] +end parameters + +begin molecule types + Null() + Ga() + PLC() + Ca() +end molecule types + +begin species + Null() 1 + Ga() Ga_0 + PLC() PLC_0 + Ca() Ca_0 +end species + +begin observables + Molecules G Ga() + Molecules P PLC() + Molecules C Ca() + Molecules NULL Null() +end observables + +begin reaction rules + Null() -> Ga() + Null() k1 + Ga() -> Ga() + Ga() k2 + Ga() + PLC() -> PLC() k3/(K4+G) #Sat(k3,K4) + Ga() + Ca() -> Ca() k5/(K6+G) #Sat(k5,K6) + Ga() -> PLC() + Ga() k7 + PLC() + Null() -> Null() k8/(K9+P) #Sat(k8,K9) + Ga() -> Ca() + Ga() k10 + Ca() + Null() -> Null() k11/(K12+C) #Sat(k11,K12) +end reaction rules +end model + +## actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>20,n_steps=>200,verbose=>1,atol=>1e-12,rtol=>1e-12}) +#simulate({method=>"ssa",t_end=>20,n_output_steps=>200,verbose=>1}) +#simulate({method=>"pla",t_end=>20,n_output_steps=>200,verbose=>1,pla_config=>"fEuler|pre-eps:sb|eps=0.03"}) +#simulate({argfile=>"Models2/simargs.txt"}) diff --git a/Contributed/BNGPlayground_Validation/CaOscillateFunc/README.md b/Contributed/BNGPlayground_Validation/CaOscillateFunc/README.md new file mode 100644 index 00000000..6c6eadae --- /dev/null +++ b/Contributed/BNGPlayground_Validation/CaOscillateFunc/README.md @@ -0,0 +1,21 @@ +# CaOscillate_Func + +Calcium oscillations (func) + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode, ssa +- Imported from: test-case + +## Files + +- CaOscillate_Func.bngl + +## Tags + +validation, caoscillate, func, null, ga, plc, ca diff --git a/Contributed/BNGPlayground_Validation/CaOscillateFunc/metadata.yaml b/Contributed/BNGPlayground_Validation/CaOscillateFunc/metadata.yaml new file mode 100644 index 00000000..2c13e476 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/CaOscillateFunc/metadata.yaml @@ -0,0 +1,22 @@ +id: "CaOscillate_Func" +name: "CaOscillate_Func" +description: "Calcium oscillations (func)" +tags: ["validation", "caoscillate", "func", "null", "ga", "plc", "ca"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode", "ssa"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/CaOscillate_Func.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/CaOscillateSat/CaOscillate_Sat.bngl b/Contributed/BNGPlayground_Validation/CaOscillateSat/CaOscillate_Sat.bngl new file mode 100644 index 00000000..f3f6a130 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/CaOscillateSat/CaOscillate_Sat.bngl @@ -0,0 +1,62 @@ +begin model +begin parameters + Na 6.022e23 # Avogadro's # [mol^-1] + V 1e-21 # Volume [L] + # + k1 0.212*Na*V # [M s^-1] + k2 2.85 # [s^-1] + k3 1.52 # [s^-1] + K4 0.19*Na*V # [M] + k5 4.88 # [s^-1] + K6 1.18*Na*V # [M] + k7 1.24 # [s^-1] + k8 32.24*Na*V # [M s^-1] + K9 29.09*Na*V # [M] + k10 13.58 # [s^-1] + k11 153.0*Na*V # [M s^-1] + K12 0.16*Na*V # [M] + # + Ga_0 0.01*Na*V # [M] + PLC_0 0.01*Na*V # [M] + Ca_0 0.01*Na*V # [M] +end parameters + +begin molecule types + Null() + Ga() + PLC() + Ca() +end molecule types + +begin species + Null() 1 + Ga() Ga_0 + PLC() PLC_0 + Ca() Ca_0 +end species + +begin observables + Molecules G Ga() + Molecules P PLC() + Molecules C Ca() + Molecules NULL Null() +end observables + +begin reaction rules + Null() -> Ga() + Null() k1 + Ga() -> Ga() + Ga() k2 + Ga() + PLC() -> PLC() Sat(k3,K4) + Ga() + Ca() -> Ca() Sat(k5,K6) + Ga() -> PLC() + Ga() k7 + PLC() + Null() -> Null() Sat(k8,K9) + Ga() -> Ca() + Ga() k10 + Ca() + Null() -> Null() Sat(k11,K12) +end reaction rules +end model + +## actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>20,n_steps=>200,verbose=>1,atol=>1e-12,rtol=>1e-12}) +#simulate({method=>"ssa",t_end=>20,n_output_steps=>200,verbose=>1}) +#simulate({method=>"pla",t_end=>20,n_output_steps=>200,verbose=>1,pla_config=>"fEuler|pre-eps:sb|eps=0.03"}) +#simulate({argfile=>"Models2/simargs.txt"}) diff --git a/Contributed/BNGPlayground_Validation/CaOscillateSat/README.md b/Contributed/BNGPlayground_Validation/CaOscillateSat/README.md new file mode 100644 index 00000000..aee2d7e7 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/CaOscillateSat/README.md @@ -0,0 +1,21 @@ +# CaOscillate_Sat + +Calcium oscillations (sat) + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode, ssa +- Imported from: test-case + +## Files + +- CaOscillate_Sat.bngl + +## Tags + +validation, caoscillate, sat, null, ga, plc, ca diff --git a/Contributed/BNGPlayground_Validation/CaOscillateSat/metadata.yaml b/Contributed/BNGPlayground_Validation/CaOscillateSat/metadata.yaml new file mode 100644 index 00000000..fee41162 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/CaOscillateSat/metadata.yaml @@ -0,0 +1,22 @@ +id: "CaOscillate_Sat" +name: "CaOscillate_Sat" +description: "Calcium oscillations (sat)" +tags: ["validation", "caoscillate", "sat", "null", "ga", "plc", "ca"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode", "ssa"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/CaOscillate_Sat.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/Haugh2b/Haugh2b.bngl b/Contributed/BNGPlayground_Validation/Haugh2b/Haugh2b.bngl new file mode 100644 index 00000000..501ccee3 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/Haugh2b/Haugh2b.bngl @@ -0,0 +1,78 @@ +begin model +begin parameters + kon_S1 1 + koff_S1 0.1 + kon_S2 1 + koff_S2 0.001 + kp1_PTP 0.1 + km1_PTP 90 + kcat_PTP 10 + kp1_KD 10 + km1_KD 99 + kcat_KD 1 + chi_m 100 + R_tot 1 +end parameters + +begin species + #R(KD,Y1~U,Y2~U) 1.00 + R(KD,Y1~P) R_tot + S1(PTP,SH2) 1.00 + S2(SH2,Y~U) 0.25 +end species + +begin reaction rules + + # Binding of S1(SH2) from cytosol + R(Y1~P) + S1(SH2) <-> R(Y1~P!1).S1(SH2!1) kon_S1, koff_S1 \ + exclude_reactants(2,R) + + # Binding of S1(SH2) from membrane + R(Y1~P) + S1(SH2) <-> R(Y1~P!1).S1(SH2!1) chi_m*kon_S1, koff_S1 \ + include_reactants(2,R) + + # Binding of S2(SH2) from cytosol + R(Y1~P) + S2(SH2) <-> R(Y1~P!1).S2(SH2!1) kon_S2, koff_S2 \ + exclude_reactants(2,R) + + # Binding of S2(SH2) from membrane + R(Y1~P) + S2(SH2) <-> R(Y1~P!1).S2(SH2!1) chi_m*kon_S2, koff_S2 \ + include_reactants(2,R) + + # Binding of R(KD) to S2(Y~U) intracomplex and phosphorylation + R(KD,Y1~P!1).S2(SH2!1,Y~U) <-> R(KD!2,Y1~P!1).S2(SH2!1,Y~U!2) kp1_KD, km1_KD + R(KD!2,Y1~P!1).S2(SH2!1,Y~U!2) -> R(KD,Y1~P!1).S2(SH2!1,Y~P) kcat_KD + + # Binding of S2(Y~P) in cytosol to S1(PTP) in cytosol + S2(Y~P) + S1(PTP) <-> S2(Y~P!1).S1(PTP!1) kp1_PTP, km1_PTP \ + exclude_reactants(1,R) exclude_reactants(2,R) + + # Binding of S2(Y~P) in cytosol to S1(PTP) at membrane + S2(Y~P) + S1(PTP) <-> S2(Y~P!1).S1(PTP!1) kp1_PTP, km1_PTP \ + exclude_reactants(1,R) include_reactants(2,R) + + # Binding of S2(Y~P) at membran to S1(PTP) in cytosol + S2(Y~P) + S1(PTP) <-> S2(Y~P!1).S1(PTP!1) kp1_PTP, km1_PTP \ + include_reactants(1,R) exclude_reactants(2,R) + + # Binding of S2(Y~P) at membrane to S1(PTP) at membrane + S2(Y~P) + S1(PTP) <-> S2(Y~P!1).S1(PTP!1) chi_m*kp1_PTP, km1_PTP \ + include_reactants(1,R) include_reactants(2,R) + + # Dephosphorylation of S2(Y~P) + S2(Y~P!1).S1(PTP!1) -> S2(Y~U) + S1(PTP) kcat_PTP +end reaction rules + +begin observables + Molecules S2_P_tot S2(Y~P!?) + Molecules S2_P_mem S2(SH2!1,Y~P!?).R(Y1~P!1), S2(SH2,Y~P!1).S1(PTP!1,SH2!2).R(Y1!2) + Molecules R_total R + Molecules S1_total S1 + Molecules S2_total S2 +end observables +end model + +## actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>50,n_steps=>5,rtol=>1e-12,atol=>1e-12}) + diff --git a/Contributed/BNGPlayground_Validation/Haugh2b/README.md b/Contributed/BNGPlayground_Validation/Haugh2b/README.md new file mode 100644 index 00000000..4281d286 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/Haugh2b/README.md @@ -0,0 +1,21 @@ +# Haugh2b + +R(KD,Y1~U,Y2~U) 1.00 + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- Haugh2b.bngl + +## Tags + +validation, haugh2b, r, s1, s2, exclude_reactants, include_reactants diff --git a/Contributed/BNGPlayground_Validation/Haugh2b/metadata.yaml b/Contributed/BNGPlayground_Validation/Haugh2b/metadata.yaml new file mode 100644 index 00000000..904e50e1 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/Haugh2b/metadata.yaml @@ -0,0 +1,22 @@ +id: "Haugh2b" +name: "Haugh2b" +description: "R(KD,Y1~U,Y2~U) 1.00" +tags: ["validation", "haugh2b", "r", "s1", "s2", "exclude_reactants", "include_reactants"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/Haugh2b.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/Kiefhaberemodel/Kiefhaber_emodel.bngl b/Contributed/BNGPlayground_Validation/Kiefhaberemodel/Kiefhaber_emodel.bngl new file mode 100644 index 00000000..1fe971e6 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/Kiefhaberemodel/Kiefhaber_emodel.bngl @@ -0,0 +1,123 @@ + +# Allow molar units to be used for bimolecular rate constants +setOption("NumberPerQuantityUnit",6.02214e23) + +begin model + +# A model for coupled folding and binding of a peptide to a ligand based on +# Kiefhaber et al. (2012) formulated using the energy-based extension of the +# BioNetGen language (eBNGL) developed by Hogg (2013). +# +# Note that eBNGL is best used in combination with the compartmental extension +# of BNGL (cBNGL), which requires that intensive units be used for +# bimolecular rate constants, i.e., 1/conc 1/time. +# Here we have expressed biomolecular rate constants +# in 1/M 1/s and specified compartment volumes in liters. +# The option NumberPerQuantityUnit at the top of the file requires us to +# specify the seed species concentrations in number of molecules +# rather than moles. cBNGL always requires extensive units for species +# concentrations. + +# References: +# 1. Kiefhaber T, Bachmann A, Steen Jensen K (2012) +# Curr Opin Struct Biol 22: 21-29. +# 2. Hogg, JS (2013) "Modeling Energy: A Pattern-Based Approach", Chapter 2, +# PhD Thesis, University of Pittsburgh. http://d-scholarship.pitt.edu/19621/ + +begin molecule types + +# The ligand, L, is a folded protein that has a peptide binding site "p". +L(p) + +# The peptide, P, has a component c that indicates whether is it unfolded, +# U, or folded, F. P also has a binding site for S. +P(c~U~F,s) + +end molecule types + +begin parameters + +# volume of cytoplasmic (CP) compartment +volCP 1e-12 # [=] L + +# global linear free energy partitioning parameter (see Hogg (2013)) +phi 0.5 # [=] dimensionless, 0<=phi<=1 + +# rate constants for folding and unfolding +kf 1 # [=] /s +ku 50 # [=] /s + +# rate constants for binding and unbinding +kon 5e6 # [=] /M/s +koff 0.01 # [=] /s + +# Activation energy for folding set to match specified rate constants. +E0_fold=-(1-phi)*ln(kf)-phi*ln(ku) + +# Activation energy for binding set to match specified rate constants. +E0_bind=-(1-phi)*ln(kon)-phi*ln(koff) + +# Cooperativity between folding and binding, i.e. the factor +# by which the binding affinity is increased upon folding of the peptide +coop 1000 # [=] dimensionless factor + +end parameters + +begin compartments + +# define the 3D compartment CP to represent +# the cytoplasm and specify its volume using the volCP parameter +CP 3 volCP + +end compartments + +begin observables + +# outputs +Molecules US A(c~U,s!1).S(a!1) +Molecules FS A(c~F,s!1).S(a!1) + +end observables + +begin seed species + +S(a)@CP 100 # [=] molecules +A(c~U,s)@CP 10000 # [=] molecules + +end seed species + +begin energy patterns + +# Free energy of the folded state relative to unfolded +A(c~F) ln(ku/kf) + +# Free energy of binding compared with unbound +A(s!1).S(a!1) ln(koff/kon) + +# Free energy for cooperative interaction +A(c~F,s!1).S(a!1) -ln(coop) + +end energy patterns + +begin reaction rules + +# folding +A(c~U)<->A(c~F) Arrhenius(phi,E0_fold) # see Hogg (2013) + +# binding +S(a)+A(s)<->S(a!1).A(s!1) Arrhenius(phi,E0_bind) # see Hogg (2013) + +end reaction rules + +end model + +begin actions + +generate_network({overwrite=>1}) + +# Used for checking the numerical values of parameters - can be removed. +writeNetwork({suffix=>"num",evaluate_expressions=>1}) + +simulate_ode({t_end=>200,n_steps=>200}) + +end actions diff --git a/Contributed/BNGPlayground_Validation/Kiefhaberemodel/README.md b/Contributed/BNGPlayground_Validation/Kiefhaberemodel/README.md new file mode 100644 index 00000000..3c7addd0 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/Kiefhaberemodel/README.md @@ -0,0 +1,21 @@ +# Kiefhaber_emodel + +Allow molar units to be used for bimolecular rate constants + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: test-case + +## Files + +- Kiefhaber_emodel.bngl + +## Tags + +validation, kiefhaber, emodel, setoption, l, p, s, a diff --git a/Contributed/BNGPlayground_Validation/Kiefhaberemodel/metadata.yaml b/Contributed/BNGPlayground_Validation/Kiefhaberemodel/metadata.yaml new file mode 100644 index 00000000..b4e91b6c --- /dev/null +++ b/Contributed/BNGPlayground_Validation/Kiefhaberemodel/metadata.yaml @@ -0,0 +1,22 @@ +id: "Kiefhaber_emodel" +name: "Kiefhaber_emodel" +description: "Allow molar units to be used for bimolecular rate constants" +tags: ["validation", "kiefhaber", "emodel", "setoption", "l", "p", "s", "a"] +category: "validation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: true + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/Kiefhaber_emodel.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Validation/Korwek2023/Korwek_2023.bngl b/Contributed/BNGPlayground_Validation/Korwek2023/Korwek_2023.bngl new file mode 100644 index 00000000..65f68890 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/Korwek2023/Korwek_2023.bngl @@ -0,0 +1,726 @@ +# This BioNetGen file features the article: +# +# ----------------------------------------------------------------------------- +# +# "Non-self RNA rewires IFN[beta] signaling: +# A mathematical model of the innate immune response" +# +# by Korwek Z, Czerkies M, Jaruszewicz-Blonska J, +# Prus W, Kosiuk I, Kochanczyk M, & Lipniacki T +# +# published in Science Signaling (2023). +# +# ----------------------------------------------------------------------------- +# +# For a description of the BioNetGen language (BNGL) see e.g. Faeder et al +# [Meth. Mol. Biol. (2009), http://dx.doi.org/10.1007/978-1-59745-525-1_5]. +# The model may be executed using BioNetGen [http://www.bionetgen.org]. +# We recommend using BioNetGen within RuleBender [http://www.rulebender.org]. + +begin model + +begin parameters + + ## mnemonics in prefixes of parameter names: + # + # * a_/d_ -- Activation/Deactivation, + # * b_/u_ -- Binding/Unbinding, + # * i_/e_ -- Import/Export, + # * p_/q_ -- Phosphorylation/dephosphorylation, + # * g_ -- deGradation, + # * t_ -- Transcription, + # * s_ -- protein Synthesis (i.e., mRNA translation), + # * m_ -- Michaelis--Menten-type coefficient; inhibition or activation constant, + # * k_ -- other Kinetic rate, + # + # * du_ -- dephosphorylation-induced unbinding, + # * tg_ -- rate for both transcription and transcript degradation, + # * sg_ -- rate for both translation and protein degradation. + # + # * h_ -- Having or not a specific gene/protein (for simulating knock-outs); + # * n -- amouNt of a chemical species, + + + + ### === Cell parameters =============================================================== + + k_v 5 # ratio of the cytoplasmic to the nuclear volume + + h_Mavs 1 # (gene name: MAVS) + h_Pkr_gene 1 # (gene name: EIF2AK2) + h_Rnasel_gene 1 # (gene name: RNASEL) + + + + ### === Initial conditions, stimulation =============================================== + + n_Tak1_i_initial 1 + n_NFkB_IkBa_cyt_initial 1 + n_Ikk_n_initial 1 + n_Irf3_i_initial 1 + n_Tbk1_i_initial 1 + n_eIF2a_dephospho_initial 1 + + n_TNFa_stimulation 1 + n_IFNb_stimulation 1 + + n_polyIC_stimulation 1 # (experiments for PCR: 10, + # experiments for Western blots: 1) + + + + ### === Reaction parameters =========================================================== + + ## common parameters ------------------------------------------------------------------ + # + # technical coefficient to avoid dividing by zero in gene activation rates + EPSILON 1.0e-6 + # + k_FAST 1.0 + k_POLYIC 0.00024390060510912293 # FITTED + tg_TRANSCRIPT 7.259610076954435e-05 # FITTED + sg_PROTEIN 1.532955086663982e-05 # FITTED + m_Rnasel 0.031164323577208185 # FITTED + m_Eif2a 0.015830114342212334 # FITTED + + + ## poly(I:C) module ------------------------------------------------------------------- + # + i_Polyic k_POLYIC + b_Rigi_Polyic k_POLYIC + b_RigiPolyic_Mavs k_POLYIC + a_Pkr_by_Polyic k_POLYIC + d_Pkr k_POLYIC + a_Oas3_by_Polyic k_POLYIC + d_Oas3 k_POLYIC + p_Eif2a_by_Pkr k_POLYIC + p_Eif2a_basal 7.723454616604743e-06 + q_Eif2a k_POLYIC + a_Rnasel_by_Oas3 k_POLYIC + d_Rnasel k_POLYIC + ma_Rigi_gene_basal 0.05930147549419551 # FITTED + tg_Isg_mrna tg_TRANSCRIPT + ma_Pkr_Oas3_gene_basal 0.7245345686782008 # FITTED + ma_Rnasel_gene_basal 1.020172036452892 # FITTED + sg_Rigi sg_PROTEIN + sg_Pkr 4.2805996953166866e-05 # FITTED + sg_Oas3 sg_PROTEIN + sg_Rnasel sg_PROTEIN + + + ## NF-kB module ----------------------------------------------------------------------- + # + a_Tak1_by_Tnfa 0.8903603794354649 # FITTED + a_Tak1_by_RigiMavs k_FAST + d_Tak1 k_FAST + a_Ikk 0.010904467109555071 # FITTED + d_Ikk_1 0.0008829700327658654 # FITTED + d_Ikk_2 0.05982062403935003 # FITTED + d_Ikk_3 0.00026826640310831975 # FITTED + b_Nfkb_Ikba_cyt k_FAST + b_Nfkb_Ikba_nuc k_v*b_Nfkb_Ikba_cyt + p_Ikba_by_Ikk 0.008458552410073877 # FITTED + g_Ikba_p_any k_FAST + g_Ikba_u_free sg_PROTEIN + g_Ikba_u_with_Nfkb 3.944402357840543e-05 # FITTED + i_Nfkb k_FAST + e_Nfkb_with_Ikba k_FAST + i_Ikba 0.0005635774134351319 # FITTED + e_Ikba 0.02051107491820277 # FITTED + tg_Ikba_mrna 0.0002565157989928973 # FITTED + a_Ikba_gene_by_Nfkb__ 0.0684701851861643 # FITTED + a_Ikba_gene_by_Nfkb k_FAST*a_Ikba_gene_by_Nfkb__ + d_Ikba_gene_by_Ikba k_FAST + tg_A20_mrna 0.0009406825155497426 # FITTED + a_A20_gene_by_Nfkb__ 0.025686603943611396 # FITTED + a_A20_gene_by_Nfkb k_FAST*a_A20_gene_by_Nfkb__ + d_A20_gene_by_Ikba k_FAST + s_Ikba 0.004255786898310512 # FITTED + sg_A20 5.014115674793064e-06 # FITTED + + + ## IRF3 module ------------------------------------------------------------------------ + # + p_Tbk1_by_RigiMavs k_FAST + q_Tbk1 k_FAST + q_Tbk1_by_A20__ 3.875729946075596e2 # FITTED + q_Tbk1_by_A20 q_Tbk1_by_A20__*q_Tbk1 + p_Irf3_by_Tbk1 k_POLYIC + q_Irf3 k_POLYIC + + + ## IFNb module ------------------------------------------------------------------------ + # + b_Ifnar_Ifnb_cyt k_FAST + b_Ifnar_Ifnb_ext 0.000750779497463291 # FITTED + tg_Ifnar_mrna tg_TRANSCRIPT + m_Rnasel_Ifnar_mrna 0.0039023754286057065 # FITTED + s_Ifnar 2.8778555528751826e-05 # FITTED + g_Ifnar 9.77848544160331e-05 # FITTED + g_Ifnar_w_Ifnb 0.00031054256866899256 # FITTED + tg_Ifnb_mrna tg_TRANSCRIPT + m_Ifnb_mrna_NfkbIrf3 3.162948461272814e-05 # FITTED + sg_Ifnb sg_PROTEIN + + + ## STAT1/2 module --------------------------------------------------------------------- + # + p_Stat k_FAST + q_Stat 0.0018294332440515334 # FITTED + m_Ifnar_a 0.020141727438512898 # FITTED + b_Stat1_Stat2 k_FAST + qu_Stat1_Stat2 0.052370747192221206 # FITTED + ma_Stat1_gene_basal 0.18314838022720048 # FITTED + ma_Stat2_gene_basal 0.07023843113385617 # FITTED + a_gene_by_Stat12dim 13126.669661929025 # FITTED, also used by the poly(I:C) module + tg_Stat_mrna tg_TRANSCRIPT + sg_Stat sg_PROTEIN + +end parameters + + + +begin molecule types + + ## poly(I:C) module ------------------------------------------------------------------- + + PolyIC(Rigi,loc~ext~cyt) # polyinosinic:polycytidylic acid, poly(I:C): + # Rigi -- RIG-I-binding site, + # loc -- location (extracellular or intracellular cytoplasmic). + + RIGI(Polyic,Mavs) # retinoic acid-inducible gene I, RIG-I: + # Polyic -- poly(I:C)-binding site, + # Mavs -- MAVS-binding site. + + MAVS(Rigi) # mitochondrial antiviral-signaling protein, MAVS: + # Rigi -- RIG-I-binding site. + + PKR(st~i~a) # protein kinase R, PKR: + # st -- activation state (switched on by poly(I:C) ternary complex). + + OAS3(st~i~a) # 2'-5'-oligoadenylate synthetase 3, OAS3: + # st -- activation state (switched on by poly(I:C) ternary complex). + + RNaseL(st~i~a) # ribonuclease L, RNase L: + # st -- activation state (switched on by active OAS3). + + eIF2a(st~0~p) # eukaryotic initiation factor 2, eIF2[alpha]: + # st -- phosphorylation state (eIF2a is inhibited when phosphorylated + # by active PKR) + + RIGI_mRNA() # RIG-I gene (DDX58) transcript + PKR_mRNA() # PKR gene (EIF2AK) transcript + OAS3_mRNA() # OAS3 gene (OAS3) transcript + RNaseL_mRNA() # RNase L gene (RNASEL) transcript + + + ## NF-kB module ----------------------------------------------------------------------- + + TNFa() # (extracellular) tumor necrosis factor alpha, TNF[alpha] + + TAK1(st~i~a) # TAK1 protein encoded by MAP3K7: + # st -- activation state (activators: poly(I:C):RIG-I:MAVS, TNFa). + + IKK(st~n~a~i~ii) # I[kappa]B kinase, IKK: + # st -- activation state (one of: neutral, active, inactive, inactive + # intermediate; activated by active TAK1). + + IkBa(Nfkb,loc~nuc~cyt,Ser32_Ser36~0~pp) # nuclear factor of kappa light polypeptide gene enhancer + # in B-cells inhibitor, alpha; I[kappa]B[alpha]: + # loc -- subcellular location (nuclear or cytoplasmic), + # Ser32_Ser36 -- lumped phosphorylation site (phosphorylated by active + # IKK; phosphorylated IkBa undergoes rapid degradation). + + NFkB(Ikba,loc~nuc~cyt) # nuclear factor [kappa] B, NF-[kappa]B: + # Ikba -- binding site for IkBa, + # loc -- subcellular location (cytoplasmic or nuclear). + + A20() # Tumor necrosis factor alpha-induced protein 3, a.k.a. A20. + + IkBa_mRNA() # I[kappa]B[alpha] gene (NFKBIA) transcript + A20_mRNA() # A20 gene (TNFAIP3) transcript + + + ## IRF3 module ------------------------------------------------------------------------ + + TBK1(Ser172~0~p) # TANK-binding kinase 1, TBK1: + # Ser172 -- phosphosite (TBK1 is activated upon its phosphorylation + # induced by poly(I:C):RIG-I:MAVS). + + IRF3(Ser396~0~p) # Interferon regulatory factor 3, IRF3: + # Ser396 -- phosphosite (IRF3 is activated upon its phosphorylation + # by phosphorylated TBK1). + + + ## IFNb module ------------------------------------------------------------------------ + + IFNAR(Ifnb) # Interferon-[beta] receptor, IFNAR: + # Ifnb -- IFNb-binding site (IFNAR is activated upon IFNb binding). + + IFNb(Ifnar,loc~ext~cyt) # Interferon-[beta] + + IFNAR_mRNA() # IFNAR gene (IFNAR1) transcript + IFNb_mRNA() # IFNb gene (IFNB1) transcript + + + ## STAT1/2 module --------------------------------------------------------------------- + + STAT1(Stat2,Tyr701~0~p) # Signal transducer and activator of transcription 1, STAT1: + # Stat2 -- binding site for STAT2, + # Tyr701 -- phosphosite (phosphorylated due to IFNAR:IFNb). + + STAT2(Stat1,Tyr690~0~p) # Signal transducer and activator of transcription 2, STAT2: + # Stat1 -- binding site for STAT1, + # Tyr690 -- phosphosite (phosphorylated due to IFNAR:IFNb). + + STAT1_mRNA() # STAT1 gene transcript + STAT2_mRNA() # STAT2 gene transcript + +end molecule types + + + +begin seed species + + # poly(I:C) module + PolyIC(Rigi,loc~ext) 0 + RIGI(Mavs,Polyic) 0 + MAVS(Rigi) h_Mavs + PKR(st~i) 0 + OAS3(st~i) 0 + RNaseL(st~i) 0 + eIF2a(st~0) n_eIF2a_dephospho_initial + RIGI_mRNA() 0 + PKR_mRNA() 0 + OAS3_mRNA() 0 + RNaseL_mRNA() 0 + + # NF-kB module + TNFa() 0 + NFkB(Ikba!0,loc~cyt).IkBa(Nfkb!0,loc~cyt,Ser32_Ser36~0) n_NFkB_IkBa_cyt_initial + TAK1(st~i) n_Tak1_i_initial + IKK(st~n) n_Ikk_n_initial + A20() 0 + IkBa_mRNA() 0 + A20_mRNA() 0 + + # IRF3 module + TBK1(Ser172~0) n_Tbk1_i_initial + IRF3(Ser396~0) n_Irf3_i_initial + + # IFNb module + IFNAR(Ifnb) 0 + IFNb(Ifnar,loc~cyt) 0 + IFNb(Ifnar,loc~ext) 0 + IFNAR_mRNA() 0 + IFNb_mRNA() 0 + + + # STAT1/2 module + STAT1(Stat2,Tyr701~0) 0 + STAT2(Stat1,Tyr690~0) 0 + STAT1(Stat2!1,Tyr701~p).STAT2(Stat1!1,Tyr690~p) 0 + STAT1_mRNA() 0 + STAT2_mRNA() 0 + +end seed species + + + +begin observables + + ## poly(I:C) module ------------------------------------------------------------------- + + Species RIG_I_total RIGI(Mavs!?,Polyic!?) + Molecules PKR_total PKR() + Molecules OAS3_total OAS3() + Species RNaseL_total RNaseL() + Species RNaseL_a RNaseL(st~a) # used in rate expression(s) + Species eIF2a_total eIF2a() + Species eIF2a_p eIF2a(st~p) # used in rate expression(s) + Species RIGI_mRNA RIGI_mRNA() # used in rate expression(s) + Species PKR_mRNA PKR_mRNA() # used in rate expression(s) + Species OAS3_mRNA OAS3_mRNA() # used in rate expression(s) + Species RNaseL_mRNA RNaseL_mRNA() # used in rate expression(s) + + + ## NF-kB module ----------------------------------------------------------------------- + + Species TAK1_a TAK1(st~a) # used in rate expression(s) + Species NFkB_nuc_free NFkB(loc~nuc,Ikba) # used in rate expression(s) + Species NFkB_nuc_total NFkB(loc~nuc) + Species NFkB_total NFkB() + Species IkBa_total IkBa(Nfkb,loc~cyt,Ser32_Ser36~pp),IkBa(Nfkb,loc~nuc,Ser32_Ser36~0),\ + IkBa(Nfkb,loc~nuc,Ser32_Ser36~pp),IkBa(Nfkb,loc~cyt,Ser32_Ser36~0),\ + IkBa(Nfkb!+,loc~cyt,Ser32_Ser36~pp),IkBa(Nfkb!+,loc~nuc,Ser32_Ser36~0),\ + IkBa(Nfkb!+,loc~nuc,Ser32_Ser36~pp),IkBa(Nfkb!+,loc~cyt,Ser32_Ser36~0) + Species IkBa_nuc_total IkBa(Nfkb,loc~nuc,Ser32_Ser36~0),\ + IkBa(Nfkb,loc~nuc,Ser32_Ser36~pp),\ + IkBa(Nfkb!+,loc~nuc,Ser32_Ser36~0),\ + IkBa(Nfkb!+,loc~nuc,Ser32_Ser36~pp) + Species IkBa_cyt_total IkBa(Nfkb,loc~cyt,Ser32_Ser36~pp),\ + IkBa(Nfkb,loc~cyt,Ser32_Ser36~0),\ + IkBa(Nfkb!+,loc~cyt,Ser32_Ser36~pp),\ + IkBa(Nfkb!+,loc~cyt,Ser32_Ser36~0) + Species IkBa_cyt_free IkBa(Nfkb,loc~cyt,Ser32_Ser36~pp),\ + IkBa(Nfkb,loc~cyt,Ser32_Ser36~0) + Species IkBa_p_cyt IkBa(Nfkb,loc~cyt,Ser32_Ser36~pp),\ + IkBa(Nfkb!+,loc~cyt,Ser32_Ser36~pp) + Species IkBa_nuc_free IkBa(Nfkb,loc~nuc,Ser32_Ser36~0) # used in rate expression(s) + Species A20 A20() # used in rate expression(s) + Species IKK_a IKK(st~a) + Species IkBa_mRNA IkBa_mRNA() # used in rate expression(s) + Species A20_mRNA A20_mRNA() # used in rate expression(s) + + + ## IRF3 module ------------------------------------------------------------------------ + + Species IRF3_total IRF3() + Species IRF3_p IRF3(Ser396~p) # used in rate expression(s) + + + ## IFNb module ------------------------------------------------------------------------ + + Species IFNAR_total IFNAR() + Species IFNAR_a IFNAR(Ifnb!+) # used in rate expression(s) + Species IFNb_ext IFNb(loc~ext) + Species IFNb_cyt IFNb(loc~cyt) + Species IFNAR_mRNA IFNAR_mRNA() # used in rate expression(s) + Species IFNb_mRNA IFNb_mRNA() # used in rate expression(s) + + + ## STAT1/2 module --------------------------------------------------------------------- + + Molecules STAT1_total STAT1() + Molecules STAT2_total STAT2() + Molecules STAT1_p STAT1(Tyr701~p) + Species STAT2_p STAT2(Tyr690~p) + Species STAT1_u STAT1(Stat2,Tyr701~0) # used in rate expression(s) + Species STAT2_u STAT2(Stat1,Tyr690~0) # used in rate expression(s) + Molecules STAT12_dimer STAT1(Stat2!1,Tyr701~p).STAT2(Stat1!1,Tyr690~p) # used in rate expression(s) + Species STAT1_mRNA STAT1_mRNA() # used in rate expression(s) + Species STAT2_mRNA STAT2_mRNA() # used in rate expression(s) + +end observables + + + +begin reaction rules + + ### === Poly(I:C) MODULE ============================================================== + + # (1) poly(I:C) enters the cell + PolyIC(Rigi,loc~ext) -> PolyIC(Rigi,loc~cyt) i_Polyic + + # (2) RIG-I binds poly(I:C) + RIGI(Mavs,Polyic) + PolyIC(Rigi,loc~cyt) -> \ + RIGI(Mavs,Polyic!1).PolyIC(Rigi!1,loc~cyt) b_Rigi_Polyic + + # (3) poly(I:C)-bound RIG-I is degraded, freeing poly(I:C) + RIGI(Mavs,Polyic!1).PolyIC(Rigi!1,loc~cyt) -> \ + PolyIC(Rigi,loc~cyt) sg_Rigi + + # (4) the poly(I:C):RIG-I complex binds MAVS, forming a ternary complex + RIGI(Mavs,Polyic!+) + MAVS(Rigi) -> \ + RIGI(Mavs!1,Polyic!+).MAVS(Rigi!1) b_RigiPolyic_Mavs + + # (5) RIG-I bound to both poly(I:C) and MAVS is degraded, protomers dissociate + PolyIC(Rigi!1,loc~cyt).RIGI(Mavs!2,Polyic!1).MAVS(Rigi!2) -> \ + PolyIC(Rigi,loc~cyt) + MAVS(Rigi) sg_Rigi + + # (6) poly(I:C) activates PKR + PolyIC(loc~cyt) + PKR(st~i) -> \ + PolyIC(loc~cyt) + PKR(st~a) a_Pkr_by_Polyic + + # (7) PKR inactivation + PKR(st~a) -> PKR(st~i) d_Pkr + + # (8) poly(I:C) activates OAS3 + PolyIC(loc~cyt) + OAS3(st~i) -> \ + PolyIC(loc~cyt) + OAS3(st~a) a_Oas3_by_Polyic + + # (9) OAS3 inactivation + OAS3(st~a) -> OAS3(st~i) d_Oas3 + + # (10A) active PKR phosphorylates eIF2a + PKR(st~a) + eIF2a(st~0) -> \ + PKR(st~a) + eIF2a(st~p) p_Eif2a_by_Pkr + + # (10B) eIF2a basal phosphorylation (=> activation of its inhibitory function) + eIF2a(st~0) -> eIF2a(st~p) p_Eif2a_basal + + # (11) eIF2a dephosphorylation + eIF2a(st~p) -> eIF2a(st~0) q_Eif2a + + # (12) active OAS3 activates RNaseL + OAS3(st~a) + RNaseL(st~i) -> \ + OAS3(st~a) + RNaseL(st~a) a_Rnasel_by_Oas3 + + # (13) RNase L deactivation + RNaseL(st~a) -> RNaseL(st~i) d_Rnasel + + # (14, 15, 16, 17) transcription of IFN-stimulated genes (ISGs) + 0 -> RIGI_mRNA() tg_Isg_mrna*(ma_Rigi_gene_basal + a_gene_by_Stat12dim*STAT12_dimer) \ + /(ma_Rigi_gene_basal + a_gene_by_Stat12dim*STAT12_dimer + 1) + # + 0 -> PKR_mRNA() h_Pkr_gene*tg_Isg_mrna*(ma_Pkr_Oas3_gene_basal + a_gene_by_Stat12dim*STAT12_dimer) \ + /(ma_Pkr_Oas3_gene_basal + a_gene_by_Stat12dim*STAT12_dimer + 1) + # + 0 -> OAS3_mRNA() tg_Isg_mrna*(ma_Pkr_Oas3_gene_basal + a_gene_by_Stat12dim*STAT12_dimer) \ + /(ma_Pkr_Oas3_gene_basal + a_gene_by_Stat12dim*STAT12_dimer + 1) + # + 0 -> RNaseL_mRNA() h_Rnasel_gene*tg_Isg_mrna*(ma_Rnasel_gene_basal + a_gene_by_Stat12dim*STAT12_dimer) \ + /(ma_Rnasel_gene_basal + a_gene_by_Stat12dim*STAT12_dimer + 1) + + # (18, 19, 20, 21) mRNA degradation + RIGI_mRNA() -> 0 tg_Isg_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + PKR_mRNA() -> 0 tg_Isg_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + OAS3_mRNA() -> 0 tg_Isg_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + RNaseL_mRNA() -> 0 tg_Isg_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + + # (22, 23, 24, 25) protein synthesis + RIGI_mRNA() -> RIGI_mRNA() + RIGI(Mavs,Polyic) sg_Rigi + PKR_mRNA() -> PKR_mRNA() + PKR(st~i) sg_Pkr + OAS3_mRNA() -> OAS3_mRNA() + OAS3(st~i) sg_Oas3 + RNaseL_mRNA() -> RNaseL_mRNA() + RNaseL(st~i) sg_Rnasel + + # (26, 27, 28, 29) protein degradation + RIGI(Mavs,Polyic) -> 0 sg_Rigi + PKR() -> 0 sg_Pkr + OAS3() -> 0 sg_Oas3 + RNaseL() -> 0 sg_Rnasel + + + + ### === NF-kB MODULE ================================================================== + + ## --- activity of TAK1 ----------------------------------------------------- + + # (1A) poly(I:C):RIG-I:MAVS complex activates TAK1 + RIGI(Mavs!1,Polyic!+).MAVS(Rigi!1) + TAK1(st~i) -> \ + RIGI(Mavs!1,Polyic!+).MAVS(Rigi!1) + TAK1(st~a) a_Tak1_by_RigiMavs + + # (1B) TNFa activates TAK1 + TNFa() + TAK1(st~i) -> \ + TNFa() + TAK1(st~a) a_Tak1_by_Tnfa + + # (2) active TAK1 is deactivated + TAK1(st~a) -> TAK1(st~i) d_Tak1 + + + ## --- activity of IKK ------------------------------------------------------ + + # (3) active TAK1 activates IKK + IKK(st~n) -> IKK(st~a) a_Ikk*TAK1_a*TAK1_a + + # (4) active IKK is deactivated, with a contribution from A20 + IKK(st~a) -> IKK(st~i) d_Ikk_1/d_Ikk_2*(d_Ikk_2 + A20) + + # (5, 6) inactive IKK transitions to the neutral state + IKK(st~i) -> IKK(st~ii) d_Ikk_3 + IKK(st~ii) -> IKK(st~n) d_Ikk_3 + + + ## --- formation of the IkBa:NF-kB complex ---------------------------------- + + # (7) IkBa and NF-kB form a complex in the cytoplasm + IkBa(Nfkb,loc~cyt,Ser32_Ser36~0) + NFkB(Ikba,loc~cyt) -> \ + IkBa(Nfkb!1,loc~cyt,Ser32_Ser36~0).NFkB(Ikba!1,loc~cyt) b_Nfkb_Ikba_cyt + + # (8) IkBa and NF-kB form a complex in the nucleus + IkBa(Nfkb,loc~nuc,Ser32_Ser36~0) + NFkB(Ikba,loc~nuc) -> \ + IkBa(Nfkb!1,loc~nuc,Ser32_Ser36~0).NFkB(Ikba!1,loc~nuc) b_Nfkb_Ikba_nuc + + + ## --- phosphorylation of IkBa ---------------------------------------------- + + # (9) active IKK phosphorylates unbound IkBa + IKK(st~a) + IkBa(Nfkb,loc~cyt,Ser32_Ser36~0) -> \ + IKK(st~a) + IkBa(Nfkb,loc~cyt,Ser32_Ser36~pp) p_Ikba_by_Ikk + + # (10) active IKK phosphorylates IkBa complexed with NF-kB + IKK(st~a) + IkBa(Nfkb!+,loc~cyt,Ser32_Ser36~0) -> \ + IKK(st~a) + IkBa(Nfkb!+,loc~cyt,Ser32_Ser36~pp) p_Ikba_by_Ikk + + + ## --- degradation of IkBa -------------------------------------------------- + + # (11) phosphorylated unbound IkBa is degraded (in the cytoplasm) + IkBa(Nfkb,loc~cyt,Ser32_Ser36~pp) -> 0 g_Ikba_p_any + + # (12) phosphorylated NF-kB-bound IkBa is degraded (in the cytoplasm, releasing free NF-kB) + IkBa(Nfkb!1,loc~cyt,Ser32_Ser36~pp).NFkB(Ikba!1,loc~cyt) -> \ + NFkB(Ikba,loc~cyt) g_Ikba_p_any + + # (13) nonphosphorylated nonbound IkBa is degraded (in the cytoplasm) + IkBa(Nfkb,loc~cyt,Ser32_Ser36~0) -> 0 g_Ikba_u_free + + # (14) nonphosphorylated NF-kB-bound IkBa is degraded (in the cytoplasm) + IkBa(Nfkb!1,loc~cyt,Ser32_Ser36~0).NFkB(Ikba!1,loc~cyt) -> \ + NFkB(Ikba,loc~cyt) g_Ikba_u_with_Nfkb + + + ## --- nucleocytoplasmic shuttling of NF-kB, IkBa, and IkBa:NF-kB ----------- + + # (15) nonbound NF-kB translocates from the cytoplasm to the nucleus + NFkB(Ikba,loc~cyt) -> NFkB(Ikba,loc~nuc) i_Nfkb + + # (16) NF-kB bound to nonphosphorylated IkBa translocates from the nucleus to the cytoplasm + IkBa(Nfkb!1,loc~nuc,Ser32_Ser36~0).NFkB(Ikba!1,loc~nuc) -> \ + IkBa(Nfkb!1,loc~cyt,Ser32_Ser36~0).NFkB(Ikba!1,loc~cyt) e_Nfkb_with_Ikba + + # (17, 18) nonbound nonphosphorylated IkBa translocates between the cytoplasm and the nucleus + IkBa(Nfkb,loc~cyt,Ser32_Ser36~0) <-> \ + IkBa(Nfkb,loc~nuc,Ser32_Ser36~0) i_Ikba, e_Ikba + + + ## --- gene expression and degradation of transcripts ----------------------- + + # (19, 20) IkBa gene transcription and transcript degradation + 0 -> IkBa_mRNA() tg_Ikba_mrna* a_Ikba_gene_by_Nfkb*NFkB_nuc_free \ + /(a_Ikba_gene_by_Nfkb*NFkB_nuc_free + d_Ikba_gene_by_Ikba*IkBa_nuc_free + EPSILON) + IkBa_mRNA() -> 0 tg_Ikba_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + + # (21, 22) A20 gene transcription and transcript degradation + 0 -> A20_mRNA() tg_A20_mrna* a_A20_gene_by_Nfkb*NFkB_nuc_free \ + /(a_A20_gene_by_Nfkb*NFkB_nuc_free + d_A20_gene_by_Ikba*IkBa_nuc_free + EPSILON) + A20_mRNA() -> 0 tg_A20_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + + + ## --- protein synthesis and degradation ------------------------------------ + + # (23) IkBa protein: synthesis + IkBa_mRNA() -> IkBa_mRNA() + IkBa(Nfkb,loc~cyt,Ser32_Ser36~0) s_Ikba*m_Eif2a/(m_Eif2a + eIF2a_p) + # (Degradation of IkBa protein is a part of signal transduction defined above; see rules 11--14.) + + # (24, 25) A20 protein: synthesis and degradation + A20_mRNA() -> A20_mRNA() + A20() sg_A20*m_Eif2a/(m_Eif2a + eIF2a_p) + A20() -> 0 sg_A20 + + + + ### === IRF3 module =================================================================== + + # (1) poly(I:C):RIG-I:MAVS complex activates (phosphorylates) TBK1 + RIGI(Mavs!+,Polyic!+) + TBK1(Ser172~0) -> \ + RIGI(Mavs!+,Polyic!+) + TBK1(Ser172~p) p_Tbk1_by_RigiMavs + + # (2A) TBK1 is deactivated (dephosphorylated) + TBK1(Ser172~p) -> TBK1(Ser172~0) q_Tbk1 + + # (2B) A20 (additionally) deactivates TBK1 + A20() + TBK1(Ser172~p) -> \ + A20() + TBK1(Ser172~0) q_Tbk1_by_A20 + + # (3) TBK1 activates (phosphorylates) IRF3 + TBK1(Ser172~p) + IRF3(Ser396~0) -> \ + TBK1(Ser172~p) + IRF3(Ser396~p) p_Irf3_by_Tbk1 + + # (4) IRF3 is deactivated (dephosphorylated) + IRF3(Ser396~p) -> IRF3(Ser396~0) q_Irf3 + + + + ### === IFNb module =================================================================== + + # (1) IFNb binds IFNAR (autocrine activation) + IFNAR(Ifnb) + IFNb(Ifnar,loc~cyt) -> \ + IFNAR(Ifnb!1).IFNb(Ifnar!1,loc~ext) b_Ifnar_Ifnb_cyt + + # (2) IFNb binds IFNAR (external stimulation) + IFNAR(Ifnb) + IFNb(Ifnar,loc~ext) -> \ + IFNAR(Ifnb!1).IFNb(Ifnar!1,loc~ext) b_Ifnar_Ifnb_ext + + # (3, 4) IFNAR1 gene transcription and transcript degradation + 0 <-> IFNAR_mRNA() tg_Ifnar_mrna, tg_Ifnar_mrna*(m_Rnasel_Ifnar_mrna + RNaseL_a) \ + / m_Rnasel_Ifnar_mrna + + # (5, 6, 7) IFNAR protein: synthesis and degradation + IFNAR_mRNA() -> IFNAR_mRNA() + IFNAR(Ifnb) s_Ifnar*m_Eif2a/(m_Eif2a + eIF2a_p) + IFNAR(Ifnb) -> 0 g_Ifnar + IFNAR(Ifnb!+) -> 0 g_Ifnar_w_Ifnb + + # (8, 9): IFNb gene transcription and transcript degradation + 0 -> IFNb_mRNA() tg_Ifnb_mrna*NFkB_nuc_free*IRF3_p/(m_Ifnb_mrna_NfkbIrf3 + NFkB_nuc_free*IRF3_p) + IFNb_mRNA() -> 0 tg_Ifnb_mrna + + # (10, 11): IFNb protein: synthesis and degradation + IFNb_mRNA() -> IFNb_mRNA() + IFNb(Ifnar,loc~cyt) sg_Ifnb + IFNb(Ifnar,loc~cyt) -> 0 sg_Ifnb + + + + ### === STAT1/2 module ================================================================ + + # (1, 3; 2, 4) STAT1 and STAT2: phosphorylation and dephosphorylation + STAT1(Stat2,Tyr701~0) <-> STAT1(Stat2,Tyr701~p) p_Stat*IFNAR_a*m_Ifnar_a/(m_Ifnar_a + STAT1_u), q_Stat + STAT2(Stat1,Tyr690~0) <-> STAT2(Stat1,Tyr690~p) p_Stat*IFNAR_a*m_Ifnar_a/(m_Ifnar_a + STAT2_u), q_Stat + + # (5) p-STAT1 and p-STAT2 heterodimerize + STAT1(Stat2,Tyr701~p) + STAT2(Stat1,Tyr690~p) -> \ + STAT1(Stat2!1,Tyr701~p).STAT2(Stat1!1,Tyr690~p) b_Stat1_Stat2 + + # (6) the p-STAT1:p-STAT2 dimer gets dephosphorylated and then immediately dissociates + STAT1(Stat2!1,Tyr701~p).STAT2(Stat1!1,Tyr690~p) -> \ + STAT1(Stat2,Tyr701~0) + STAT2(Stat1,Tyr690~0) qu_Stat1_Stat2 + + # (7, 8; 9, 10) STAT1 gene and STAT2 gene transcription and transcript degradation + 0 -> STAT1_mRNA() tg_Stat_mrna*(ma_Stat1_gene_basal + a_gene_by_Stat12dim*STAT12_dimer) \ + /(ma_Stat1_gene_basal + a_gene_by_Stat12dim*STAT12_dimer + 1) + # + 0 -> STAT2_mRNA() tg_Stat_mrna*(ma_Stat2_gene_basal + a_gene_by_Stat12dim*STAT12_dimer) \ + /(ma_Stat2_gene_basal + a_gene_by_Stat12dim*STAT12_dimer + 1) + # + STAT1_mRNA() -> 0 tg_Stat_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + STAT2_mRNA() -> 0 tg_Stat_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + + # (11, 12; 13, 14; 15) STAT1 protein and STAT2 protein: synthesis and degradation + STAT1_mRNA() -> STAT1_mRNA() + STAT1(Stat2,Tyr701~0) sg_Stat + STAT2_mRNA() -> STAT2_mRNA() + STAT2(Stat1,Tyr690~0) sg_Stat + STAT1(Stat2) -> 0 sg_Stat + STAT2(Stat1) -> 0 sg_Stat + STAT1(Stat2!1).STAT2(Stat1!1) -> 0 sg_Stat + +end reaction rules + +end model + + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + + +begin actions + + generate_network({overwrite=>1}); + + + ## Export: + # + #writeSBML({}); + #writeMfile({}); + + + ## Settings for different cell types (when all commented out, WT cells are simulated): + # + # # for RNase L KO cells: + # setParameter("h_Rnasel_gene",0); + # + # # for PKR KO: + # setParameter("h_Pkr_gene",0); + + + ## Simulation: + # + # (1 of 3) equilibration (first phase duration is 30 days, second phase ends before stimulation): + simulate_ode({t_end=>3600*24*30,n_steps=>1000}); + simulate_ode({continue=>0,t_start=>0,t_end=>100000-24*3600,n_steps=>24*60}); + # + # (2 of 3) prestimulation with IFNb (24 h before stimulation): + setConcentration("IFNb(Ifnar,loc~ext)","n_IFNb_stimulation"); + simulate_ode({continue=>1,t_start=>100000-24*3600,t_end=>100000,n_steps=>24*60}); + # + # (3 of 3) stimulation with poly(I:C): + setConcentration("PolyIC(Rigi,loc~ext)","n_polyIC_stimulation"); + simulate_ode({continue=>1,t_start=>100000, t_end=>100000+10*3600,n_steps=>24*60}); + +end actions \ No newline at end of file diff --git a/Contributed/BNGPlayground_Validation/Korwek2023/README.md b/Contributed/BNGPlayground_Validation/Korwek2023/README.md new file mode 100644 index 00000000..e1e040f8 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/Korwek2023/README.md @@ -0,0 +1,21 @@ +# Korwek_2023 + +This BioNetGen file features the article: + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- Korwek_2023.bngl + +## Tags + +validation, korwek, 2023, polyic, rigi, mavs, pkr, oas3, rnasel, eif2a, rigi_mrna diff --git a/Contributed/BNGPlayground_Validation/Korwek2023/metadata.yaml b/Contributed/BNGPlayground_Validation/Korwek2023/metadata.yaml new file mode 100644 index 00000000..d836cd9b --- /dev/null +++ b/Contributed/BNGPlayground_Validation/Korwek2023/metadata.yaml @@ -0,0 +1,22 @@ +id: "Korwek_2023" +name: "Korwek_2023" +description: "This BioNetGen file features the article:" +tags: ["validation", "korwek", "2023", "polyic", "rigi", "mavs", "pkr", "oas3", "rnasel", "eif2a", "rigi_mrna"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/Korwek_2023.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/Motivatingexample/Motivating_example.bngl b/Contributed/BNGPlayground_Validation/Motivatingexample/Motivating_example.bngl new file mode 100644 index 00000000..3253f40b --- /dev/null +++ b/Contributed/BNGPlayground_Validation/Motivatingexample/Motivating_example.bngl @@ -0,0 +1,262 @@ +# Signal Transduction with receptor internalization and transcriptional reg. # +# vanilla BNGL code: justin.s.hogg@gmail.com # +# conception: Leonard A. Harris, Justin S. Hogg, James R. Faeder # +# 6 June 2009 # +# # +# Vanilla version requires +15 rules (and context) compared to cBNGL. # +# A motivating example for Winter Simulation Conference 2009 invited paper. # + +begin model +begin parameters + nEndo 5 # mean number of endosomes + + vol_EC 20.0 # volumes + vol_CP 4.0 + vol_NU 1.0 + vol_EN 0.1*nEndo + + sa_PM 0.4 # membrane surface areas + sa_NM 0.1 + sa_EM 0.01*nEndo + + eff_width 1.0 # effective surface width + + L0 1000 # initial species counts (extensive units: quantity, not concentration) + R0 200 + TF0 200 + DNA0 2 + Im0 40 + NP0 4 + + kp_LR 0.1 # kinetic parameters (2nd order reaction params in vol/time units) + km_LR 1.0 + kp_LL 0.1 + km_LL 1.0 + k_R_endo 1.0 + k_recycle 0.1 + k_R_transphos 1.0 + k_R_dephos 0.1 + kp_R_TF 0.1 + km_R_TF 0.1 + kp_R_TFp 0.1 + km_R_TFp 10.0 + k_TF_transphos 1.0 + k_TF_dephos 1.0 + kp_TF_TF 0.1 + km_TF_TF 1.0 + kp_TF_p1 0.1 + km_TF_p1 1.0 + k_transcribe 1.0 + k_translate 1.0 + k_mRNA_to_CP 1.0 # volume to volume species transport. + k_mRNA_deg 1.0 + k_P_deg 0.1 + k_Im_bind_CP 0.1 + k_Im_unbind_CP 0.1 + k_Im_bind_NU 0.1 + k_Im_unbind_NU 10.0 + k_Im_enters_NP 0.1 + k_Im_exits_NP 1.0 + k_Im_cross_NP 1.0 + kp_P1_p2 0.1 + km_P1_p2 1.0 + + eVol_PM sa_PM * eff_width # effective surface volumes + eVol_NM sa_NM * eff_width + eVol_EM sa_EM * eff_width +end parameters + +begin molecule types + L(r,d,loc~EC~EN) # Ligand w/ receptor binding and dimer sites. + R(l,tf~Y~pY,loc~PM~EM) # Receptor with ligand and TF binding sites. + TF(r,d~Y~pY,dna,im,loc~CP~NU) # Transcription factor (monomer) w/ receptor, DNA, and importin binding sites; and dimerization domain. + DNA(p1,p2) # DNA molecule with two promoter sites. + mRNA1(loc~CP~NU) # mRNA transcript for Protein 1. + mRNA2(loc~CP~NU) # mRNA transcript for Protein 2. + P1(im,dna,loc~CP~NU) # Protein 1 w/ importin and DNA binding site. + P2() # Protein 2. + Im(fg,cargo,loc~CP~NU) # nuclear importin mol. w/ hydrophobic domain (fg) that interacts with nuclear pore. + NP(fg) # nuc. pore complex w/ hydrophobic FG repeat. + Sink() # a place for deleted molecules. +end molecule types + +begin species + L(r,d,loc~EC) L0 + R(l,tf~Y,loc~PM) R0 + TF(r,d~Y,dna,im,loc~CP) TF0 + DNA(p1,p2) DNA0 + Im(fg,cargo,loc~CP) Im0 + NP(fg) NP0 + $Sink() 0 +end species + +begin reaction rules + # ligand dimerization (1 -> 6 rules) + # + # @EC: neither ligand bound to PM through Rec + Rule1_1: L(d,r,loc~EC) + L(d,r,loc~EC) \ + <-> L(d!1,r,loc~EC).L(d!1,r,loc~EC) kp_LL/vol_EC, km_LL + + # @EN: neither ligand bound to EM through Rec + Rule1_2: L(d,r,loc~EN) + L(d,r,loc~EN) \ + <-> L(d!1,r,loc~EN).L(d!1,r,loc~EN) kp_LL/vol_EN, km_LL + + # @EC: one ligand bound to PM through Rec + Rule1_3: L(d,r!+,loc~EC) + L(d,r,loc~EC) \ + <-> L(d!1,r!+,loc~EC).L(d!1,r,loc~EC) kp_LL/vol_EC, km_LL + + # @EN: one ligand bound to EM through Rec + Rule1_4: L(d,r!+,loc~EN) + L(d,r,loc~EN) \ + <-> L(d!1,r!+,loc~EN).L(d!1,r,loc~EN) kp_LL/vol_EN, km_LL + + # @PM: both ligands bound to PM through Rec + Rule1_5: L(d,r!+,loc~EC) + L(d,r!+,loc~EC) \ + <-> L(d!1,r!+,loc~EC).L(d!1,r!+,loc~EC) kp_LL/eVol_PM, km_LL + + # @EM: both ligands bound to EM through Rec + Rule1_6: L(d,r!+,loc~EN) + L(d,r!+,loc~EN) \ + <-> L(d!1,r!+,loc~EN).L(d!1,r!+,loc~EN) kp_LL/eVol_EM, km_LL + + # receptor-ligand binding + Rule2_1: L(r,loc~EC) + R(l,loc~PM) <-> L(r!1,loc~EC).R(l!1,loc~PM) kp_LR/vol_EC, km_LR exclude_reactants(1,R) + Rule2_2: L(r,loc~EN) + R(l,loc~EM) <-> L(r!1,loc~EN).R(l!1,loc~EM) kp_LR/vol_EN, km_LR exclude_reactants(1,R) + Rule2_3: L(r,loc~EC) + R(l,loc~PM) <-> L(r!1,loc~EC).R(l!1,loc~PM) kp_LR/eVol_PM, km_LR include_reactants(1,R) + Rule2_4: L(r,loc~EN) + R(l,loc~EM) <-> L(r!1,loc~EN).R(l!1,loc~EM) kp_LR/eVol_EM, km_LR include_reactants(1,R) + + # receptor-dimer internalization + Rule3: R(loc~PM).L(loc~EC).L(loc~EC).R(loc~PM) -> R(loc~EM).L(loc~EN).L(loc~EN).R(loc~EM) k_R_endo + + # receptor,ligand recycling + Rule4_1: R(l,loc~EM) -> R(l,loc~PM) k_recycle + Rule4_2: R(l!1,loc~EM).L(r!1,d,loc~EN) -> R(l!1,loc~PM).L(r!1,d,loc~EC) k_recycle + Rule4_3: R(l!1,loc~EM).L(r!1,d!2,loc~EN).L(r,d!2,loc~EN) -> R(l!1,loc~PM).L(r!1,d!2,loc~EC).L(r,d!2,loc~EC) k_recycle + Rule4_4: R(l!1,loc~EM).L(r!1,d!2,loc~EN).L(r!3,d!2,loc~EN).R(l!3,loc~EM) \ + -> R(l!1,loc~PM).L(r!1,d!2,loc~EC).L(r!3,d!2,loc~EC).R(l!3,loc~PM) k_recycle + + Rule5_1: L(r,d,loc~EN) -> L(r,d,loc~EC) k_recycle + Rule5_2: L(r,d!1,loc~EN).L(r,d!1,loc~EN) -> L(r,d!1,loc~EC).L(r,d!1,loc~EC) k_recycle + + # receptor transphosphorylation + # Rule6 (1 -> 1 rule) + R.R(tf~Y) -> R.R(tf~pY) k_R_transphos + + # receptor dephosphorylation + Rule7: R(tf~pY) -> R(tf~Y) k_R_dephos + + # receptor--transcriptionFactor binding + Rule8: R(tf~pY) + TF(d~Y,r,loc~CP) <-> R(tf~pY!1).TF(d~Y,r!1,loc~CP) kp_R_TF/vol_CP, km_R_TF + # Rule9 (1 -> 1 rule) + Rule9: R(tf~pY) + TF(d~pY,r,loc~CP) <-> R(tf~pY!1).TF(d~pY,r!1,loc~CP) kp_R_TFp/vol_CP, km_R_TFp + + # transcription factor trans-phosphorylation + Rule10: TF.R.R.TF(d~Y) -> TF.R.R.TF(d~pY) k_TF_transphos + + # transcription factor dephosphorylation + Rule11: TF(d~pY,loc~CP) -> TF(d~Y,loc~CP) k_TF_dephos + + # transcription factor dimerization + Rule12_1: TF(r,d~pY,dna,loc~CP) + TF(r,d~pY,dna,loc~CP) \ + <-> TF(r,d~pY!1,dna,loc~CP).TF(r,d~pY!1,dna,loc~CP) kp_TF_TF/vol_CP, km_TF_TF + Rule12_2: TF(r,d~pY,dna,loc~NU) + TF(r,d~pY,dna,loc~NU) \ + <-> TF(r,d~pY!1,dna,loc~NU).TF(r,d~pY!1,dna,loc~NU) kp_TF_TF/vol_NU, km_TF_TF + + # TF dimer binds promoters + Rule13: TF(dna,im,loc~NU).TF(dna,im,loc~NU) + DNA(p1) \ + <-> TF(dna!1,im,loc~NU).TF(dna!2,im,loc~NU).DNA(p1!1!2) kp_TF_p1/vol_NU, km_TF_p1 + + # transcription + Rule14: DNA(p1!+) -> DNA(p1!+) + mRNA1(loc~NU) k_transcribe + Rule15: DNA(p2!+) -> DNA(p2!+) + mRNA2(loc~NU) k_transcribe + + # mRNA transport to cytoplams + Rule16: mRNA1(loc~NU) -> mRNA1(loc~CP) k_mRNA_to_CP + Rule17: mRNA2(loc~NU) -> mRNA2(loc~CP) k_mRNA_to_CP + + # mRNA translation to protein + Rule18: mRNA1(loc~CP) -> mRNA1(loc~CP) + P1(im,dna,loc~CP) k_translate + Rule19: mRNA2(loc~CP) -> mRNA2(loc~CP) + P2() k_translate + + # mRNA degradation (2 -> 2 rules) + Rule20: mRNA1 -> Sink() k_mRNA_deg DeleteMolecules + Rule21: mRNA2 -> Sink() k_mRNA_deg DeleteMolecules + + # Protein degradation (2 -> 2 rules) + Rule22: P1 -> Sink() k_P_deg DeleteMolecules + Rule23: P2 -> Sink() k_P_deg DeleteMolecules + + # importin binds TF dimer (tends to pick up in CP, drop off in NU). + Rule24: TF(im,dna,r,loc~CP).TF(im,dna,r,loc~CP) + Im(cargo,loc~CP) \ + <-> TF(im!1,dna,r,loc~CP).TF(im!2,dna,r,loc~CP).Im(cargo!1!2,loc~CP) k_Im_bind_CP/vol_CP, k_Im_unbind_CP + + Rule25: TF(im,dna,r,loc~NU).TF(im,dna,r,loc~NU) + Im(cargo,loc~NU) \ + <-> TF(im!1,dna,r,loc~NU).TF(im!2,dna,r,loc~NU).Im(cargo!1!2,loc~NU) k_Im_bind_NU/vol_NU, k_Im_unbind_NU + + # importin binds P1 (tends to pick up in CP, drop off in NU). + Rule26: P1(im,dna,loc~CP) + Im(cargo,loc~CP) <-> P1(im!1,dna,loc~CP).Im(cargo!1,loc~CP) k_Im_bind_CP/vol_CP, k_Im_unbind_CP + Rule27: P1(im,dna,loc~NU) + Im(cargo,loc~NU) <-> P1(im!1,dna,loc~NU).Im(cargo!1,loc~NU) k_Im_bind_NU/vol_NU, k_Im_unbind_NU + + # importin enters nuclear pore + Rule28_1: Im(fg,loc~CP) + NP(fg) <-> Im(fg!1,loc~CP).NP(fg!1) k_Im_enters_NP/vol_CP, k_Im_exits_NP + Rule28_2: Im(fg,loc~NU) + NP(fg) <-> Im(fg!1,loc~NU).NP(fg!1) k_Im_enters_NP/vol_NU, k_Im_exits_NP + + # importin traverses nuclear pore (with any cargo) + Rule29_1: Im(cargo,loc~CP).NP <-> Im(cargo,loc~NU).NP k_Im_cross_NP, k_Im_cross_NP + Rule29_2: TF(loc~CP).TF(loc~CP).Im(loc~CP).NP <-> TF(loc~NU).TF(loc~NU).Im(loc~NU).NP k_Im_cross_NP, k_Im_cross_NP + Rule29_3: P1(loc~CP).Im(loc~CP).NP <-> P1(loc~NU).Im(loc~NU).NP k_Im_cross_NP, k_Im_cross_NP + + # P1 binds promoter 2 + Rule30: P1(im,dna,loc~NU) + DNA(p2) <-> P1(im,dna!1,loc~NU).DNA(p2!1) kp_P1_p2/vol_NU, km_P1_p2 +end reaction rules + +begin observables + Molecules Tot_L L + Molecules Tot_R R + Molecules Tot_TF TF + Molecules Tot_DNA DNA + Molecules Tot_mRNA1 mRNA1 + Molecules Tot_mRNA2 mRNA2 + Molecules Tot_P1 P1 + Molecules Tot_P2 P2 + Molecules Tot_NP NP + Molecules Tot_Im Im + + Species L_Dimers_EC L(r,loc~EC).L(r,loc~EC) + Species L_Dimers_PM L.L.R(loc~PM) + Species L_Dimers_EN L(r,loc~EN).L(r,loc~EN) + Species L_Dimers_EM L.L.R(loc~EM) + + Species L_Bound_PM L(d).R(loc~PM), L.L.R(loc~PM), L.L.R(loc~PM) + Species L_Bound_EM L(d).R(loc~EM), L.L.R(loc~EM), L.L.R(loc~EM) + + Species R_Dimers_PM R(loc~PM).R(loc~PM) + Species R_Dimers_EM R(loc~EM).R(loc~EM) + + Molecules Catalytic_R R(tf~pY!?) + Molecules Catalytic_TF R(tf~pY!1).TF(r!1) + Molecules Phos_TF TF(d~pY!?) + + Species TF_Dimer_CP TF(d~pY!1,loc~CP).TF(d~pY!1,loc~CP) + Species TF_Dimer_NU TF(d~pY!1,loc~NU).TF(d~pY!1,loc~NU) + + Species Bound_prom1 DNA(p1!+) + Species Bound_prom2 DNA(p2!+) + + Species P1_NU P1(loc~NU) + Species P1_CP P1(loc~CP) + + Species Im_NU Im(loc~NU) + Species Im_CP Im(loc~CP) + + Species Im_Cargo_NP Im(fg!+,cargo!+) + + Species P1_NU_free P1(im,dna,loc~NU) + Species P1_NU_dna P1(im,dna!+,loc~NU) + + Species CountSink Sink() +end observables +end model + +# actions # +generate_network({overwrite=>1}) +simulate({method=>"ode",t_start=>0,t_end=>40,n_steps=>100}) + diff --git a/Contributed/BNGPlayground_Validation/Motivatingexample/README.md b/Contributed/BNGPlayground_Validation/Motivatingexample/README.md new file mode 100644 index 00000000..4e945c6a --- /dev/null +++ b/Contributed/BNGPlayground_Validation/Motivatingexample/README.md @@ -0,0 +1,21 @@ +# Motivating_example + +Signal Transduction with receptor internalization + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- Motivating_example.bngl + +## Tags + +validation, motivating, example, l, r, tf, dna, mrna1, mrna2, p1, p2 diff --git a/Contributed/BNGPlayground_Validation/Motivatingexample/metadata.yaml b/Contributed/BNGPlayground_Validation/Motivatingexample/metadata.yaml new file mode 100644 index 00000000..9dfc9870 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/Motivatingexample/metadata.yaml @@ -0,0 +1,22 @@ +id: "Motivating_example" +name: "Motivating_example" +description: "Signal Transduction with receptor internalization" +tags: ["validation", "motivating", "example", "l", "r", "tf", "dna", "mrna1", "mrna2", "p1", "p2"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/Motivating_example.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/MotivatingexamplecBNGL/Motivating_example_cBNGL.bngl b/Contributed/BNGPlayground_Validation/MotivatingexamplecBNGL/Motivating_example_cBNGL.bngl new file mode 100644 index 00000000..558916b8 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/MotivatingexamplecBNGL/Motivating_example_cBNGL.bngl @@ -0,0 +1,226 @@ +# Signal transduction with receptor internalization and transcriptional reg. # +# cBNGL code: justin.s.hogg@gmail.com # +# conception: Leonard A. Harris, Justin S. Hogg, James R. Faeder # +# 6 June 2009 # +# # +# Demonstrates features of cBNGL in a biologically relevant scenario. # +# A motivating example for Winter Simulation Conference 2009 invited paper. # + +begin model +begin parameters + nEndo 5 # mean number of endosomes + + vol_EC 20.0 # volumes + vol_CP 4.0 + vol_NU 1.0 + vol_EN 0.1*nEndo + + sa_PM 0.4 # membrane surface areas + sa_NM 0.1 + sa_EM 0.01*nEndo + + eff_width 1.0 # effective surface width + + L0 1000 # initial species counts (extensive units: quantity, not concentration) + R0 200 + TF0 200 + DNA0 2 + Im0 40 + NP0 4 + + kp_LR 0.1 # kinetic parameters (2nd order reaction params in vol/time units) + km_LR 1.0 + kp_LL 0.1 + km_LL 1.0 + k_R_endo 1.0 + k_recycle 0.1 + k_R_transphos 1.0 + k_R_dephos 0.1 + kp_R_TF 0.1 + km_R_TF 0.1 + kp_R_TFp 0.1 + km_R_TFp 10.0 + k_TF_transphos 1.0 + k_TF_dephos 1.0 + kp_TF_TF 0.1 + km_TF_TF 1.0 + kp_TF_p1 0.1 + km_TF_p1 1.0 + k_transcribe 1.0 + k_translate 1.0 + k_mRNA_to_CP 1.0 + k_mRNA_deg 1.0 + k_P_deg 0.1 + k_Im_bind_CP 0.1 + k_Im_unbind_CP 0.1 + k_Im_bind_NU 0.1 + k_Im_unbind_NU 10.0 + k_Im_enters_NP 0.1 + k_Im_exits_NP 1.0 + k_Im_cross_NP 1.0 + kp_P1_p2 0.1 + km_P1_p2 1.0 +end parameters + +begin compartments + EC 3 vol_EC + PM 2 sa_PM * eff_width EC + CP 3 vol_CP PM + NM 2 sa_NM * eff_width CP + NU 3 vol_NU NM + EM 2 sa_EM * eff_width CP + EN 3 vol_EN EM +end compartments + +begin molecule types + L(r,d) # Ligand w/ receptor binding and dimerization sites. + R(l,tf~Y~pY) # Receptor with ligand and TF binding sites. + TF(r,d~Y~pY,dna,im) # Transcription factor (monomer) with receptor, DNA, and importin binding sites; and dimerization domain. + DNA(p1,p2) # DNA molecule with two promoter sites. + mRNA1() # mRNA transcript for Protein 1. + mRNA2() # mRNA transcript for Protein 2. + P1(im,dna) # Protein 1 with importin and DNA binding domains. + P2() # Protein 2. + Im(fg,cargo) # nuclear importin molecule with hydrophobic domain (fg) that interacts with nuclear pore. + NP(fg) # nuclear pore complex w/ hydrophobic FG repeat domain. + Sink() # a place for deleted molecules. +end molecule types + +begin species + L(r,d)@EC L0 + R(l,tf~Y)@PM R0 + TF(r,d~Y,dna,im)@CP TF0 + DNA(p1,p2)@NU DNA0 + Im(fg,cargo)@CP Im0 + NP(fg)@NM NP0 + + # Arbitrarily assign compartment CP to the abstract molecule "Sink". + $Sink()@CP 0 +end species + +begin reaction rules + # receptor-ligand binding. + Rule1: L(r) + R(l) <-> L(r!1).R(l!1) kp_LR, km_LR + + # ligand dimerization. + Rule2: L(d) + L(d) <-> L(d!1).L(d!1) kp_LL, km_LL + + # Rule3: receptor-dimer internalization. + Rule3: @PM:R.R -> @EM:R.R k_R_endo + + # receptor, ligand recycling. + Rule4: @EM:R -> @PM:R k_recycle + Rule5: @EN:L -> @EC:L k_recycle + + # receptor transphosphorylation. + Rule6: R.R(tf~Y) -> R.R(tf~pY) k_R_transphos + + # receptor dephosphorylation. + Rule7: R(tf~pY) -> R(tf~Y) k_R_dephos + + # receptor-TF binding. favor binding if TF(dim~Y), unbinding if TF(dim~pY). + Rule8: R(tf~pY) + TF(d~Y,r) <-> R(tf~pY!1).TF(d~Y,r!1) kp_R_TF, km_R_TF + Rule9: R(tf~pY) + TF(d~pY,r) <-> R(tf~pY!1).TF(d~pY,r!1) kp_R_TFp, km_R_TFp + + # transcription factor trans-phosphorylation. + Rule10: TF.R.R.TF(d~Y) -> TF.R.R.TF(d~pY) k_TF_transphos + + # transcription factor dephosphorylation (CP only). + Rule11: TF(d~pY)@CP -> TF(d~Y)@CP k_TF_dephos + + # transcription factor dimerization. + Rule12: TF(r,d~pY,dna) + TF(r,d~pY,dna) <-> TF(r,d~pY!1,dna).TF(r,d~pY!1,dna) kp_TF_TF, km_TF_TF + + # TF dimer binds promoter 1. + Rule13: TF(dna,im).TF(dna,im) + DNA(p1) <-> TF(dna!1,im).TF(dna!2,im).DNA(p1!1!2) kp_TF_p1, km_TF_p1 + + # transcription. + Rule14: DNA(p1!+) -> DNA(p1!+) + mRNA1()@NU k_transcribe + Rule15: DNA(p2!+) -> DNA(p2!+) + mRNA2()@NU k_transcribe + + # mRNA transport to cytoplams. + Rule16: mRNA1@NU -> mRNA1@CP k_mRNA_to_CP + Rule17: mRNA2@NU -> mRNA2@CP k_mRNA_to_CP + + # mRNA translation to protein. + Rule18: mRNA1@CP -> mRNA1@CP + P1(im,dna)@CP k_translate + Rule19: mRNA2@CP -> mRNA2@CP + P2()@CP k_translate + + # mRNA degradation. + Rule20: mRNA1 -> Sink()@CP k_mRNA_deg DeleteMolecules + Rule21: mRNA2 -> Sink()@CP k_mRNA_deg DeleteMolecules + + # protein degradation. + Rule22: P1 -> Sink()@CP k_P_deg DeleteMolecules + Rule23: P2 -> Sink()@CP k_P_deg DeleteMolecules + + # importin binds TF dimer (tends to pick up in CP, drop off in NU). + Rule24: TF(im,dna,r).TF(im,dna,r) + Im(cargo)@CP <-> TF(im!1,dna,r).TF(im!2,dna,r).Im(cargo!1!2)@CP k_Im_bind_CP, k_Im_unbind_CP + Rule25: TF(im,dna,r).TF(im,dna,r) + Im(cargo)@NU <-> TF(im!1,dna,r).TF(im!2,dna,r).Im(cargo!1!2)@NU k_Im_bind_NU, k_Im_unbind_NU + + # importin binds P1 (tends to pick up in CP, drop off in NU). + Rule26: P1(im,dna) + Im(cargo)@CP <-> P1(im!1,dna).Im(cargo!1)@CP k_Im_bind_CP, k_Im_unbind_CP + Rule27: P1(im,dna) + Im(cargo)@NU <-> P1(im!1,dna).Im(cargo!1)@NU k_Im_bind_NU, k_Im_unbind_NU + + # importin enters nuclear pore. + Rule28: Im(fg) + NP(fg) <-> Im(fg!1).NP(fg!1) k_Im_enters_NP, k_Im_exits_NP + + # importin traverses nuclear pore (with any cargo). + Rule29: Im(fg!1)@CP.NP(fg!1) <-> Im(fg!1)@NU.NP(fg!1) k_Im_cross_NP, k_Im_cross_NP MoveConnected + + # P1 binds promoter 2. + Rule30: P1(im,dna) + DNA(p2) <-> P1(im,dna!1).DNA(p2!1) kp_P1_p2, km_P1_p2 +end reaction rules + +begin observables + Molecules Tot_L L + Molecules Tot_R R + Molecules Tot_TF TF + Molecules Tot_DNA DNA + Molecules Tot_mRNA1 mRNA1 + Molecules Tot_mRNA2 mRNA2 + Molecules Tot_P1 P1 + Molecules Tot_P2 P2 + Molecules Tot_NP NP + Molecules Tot_Im Im + + Species L_Dimers_EC @EC:L.L + Species L_Dimers_PM @PM:L.L + Species L_Dimers_EN @EN:L.L + Species L_Dimers_EM @EM:L.L + + Molecules L_Bound_PM @PM:L + Molecules L_Bound_EM @EM:L + + Species R_Dimers_PM @PM:R.R + Species R_Dimers_EM @EM:R.R + + Molecules Catalytic_R R(tf~pY!?) + Molecules Catalytic_TF R(tf~pY!1).TF(r!1) + Molecules Phos_TF TF(d~pY!?) + + Species TF_Dimer_CP TF(d~pY!1)@CP.TF(d~pY!1)@CP + Species TF_Dimer_NU TF(d~pY!1)@NU.TF(d~pY!1)@NU + + Species Bound_prom1 DNA(p1!+) + Species Bound_prom2 DNA(p2!+) + + Species P1_NU P1@NU + Species P1_CP P1@CP + + Species Im_NU Im@NU + Species Im_CP Im@CP + + Species Im_Cargo_NP Im(fg!+,cargo!+) + + Species P1_NU_free P1(im,dna)@NU + Species P1_NU_dna P1(im,dna!+)@NU + + Species CountSink Sink()@CP +end observables +end model + +# actions # +generate_network({overwrite=>1}) +simulate({method=>"ode",t_start=>0,t_end=>40,n_steps=>100}) + diff --git a/Contributed/BNGPlayground_Validation/MotivatingexamplecBNGL/README.md b/Contributed/BNGPlayground_Validation/MotivatingexamplecBNGL/README.md new file mode 100644 index 00000000..a7249552 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/MotivatingexamplecBNGL/README.md @@ -0,0 +1,21 @@ +# Motivating_example_cBNGL + +Signal transduction with receptor internalization + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- Motivating_example_cBNGL.bngl + +## Tags + +validation, motivating, example, cbngl, l, r, tf, dna, mrna1, mrna2, p1, p2 diff --git a/Contributed/BNGPlayground_Validation/MotivatingexamplecBNGL/metadata.yaml b/Contributed/BNGPlayground_Validation/MotivatingexamplecBNGL/metadata.yaml new file mode 100644 index 00000000..19dc7a0a --- /dev/null +++ b/Contributed/BNGPlayground_Validation/MotivatingexamplecBNGL/metadata.yaml @@ -0,0 +1,22 @@ +id: "Motivating_example_cBNGL" +name: "Motivating_example_cBNGL" +description: "Signal transduction with receptor internalization" +tags: ["validation", "motivating", "example", "cbngl", "l", "r", "tf", "dna", "mrna1", "mrna2", "p1", "p2"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/Motivating_example_cBNGL.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/SHP2basemodel/README.md b/Contributed/BNGPlayground_Validation/SHP2basemodel/README.md new file mode 100644 index 00000000..ee8e2f53 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/SHP2basemodel/README.md @@ -0,0 +1,21 @@ +# SHP2_base_model + +Base model of Shp2 regulation + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- SHP2_base_model.bngl + +## Tags + +validation, shp2, base, model, r, s, exclude_reactants diff --git a/Contributed/BNGPlayground_Validation/SHP2basemodel/SHP2_base_model.bngl b/Contributed/BNGPlayground_Validation/SHP2basemodel/SHP2_base_model.bngl new file mode 100644 index 00000000..30289e1d --- /dev/null +++ b/Contributed/BNGPlayground_Validation/SHP2basemodel/SHP2_base_model.bngl @@ -0,0 +1,157 @@ +# Base model of Shp2 regulation from Barua, Faeder, and Haugh (2006). +# Copyright 2006, North Carolina State University and Los Alamos National +# Laboratory + +# Concentration units are in micromolar; time units are in seconds. +begin model +begin parameters + kdim 1000 + + kopen 10 + kclose 500 + + kon_CSH2 1 + koff_CSH2 1 + + kon_NSH2 1 + koff_NSH2 1 + + kkin_Y1 0.1 + + kon_PTP 1 + koff_PTP 10 + kcat_PTP 1 + + chi_r1 1000 + chi_r2 100 + chi_r3 1000 + chi_r4 1000 + chi_r5 100 + chi_r6 100 + chi_r7 100 + chi_r8 1000 # Equals chi_r1*chi_r6/chi_r2 + chi_r9 100 # Equals chi_r1*chi_r7/chi_r3 + chi_r10 100 # Equals chi_r1*chi_r6/chi_r4 + chi_r11 1000 # Equals chi_r1*chi_r7/chi_r5 + + R_dim 0.025 # R_tot= 2*R_dim + S_tot 0.05 +end parameters + +begin molecule types + R(DD,Y1~U~P,Y2~P) + S(NSH2~C~O,CSH2,PTP~C~O) +end molecule types + +begin seed species + S(NSH2~C,CSH2,PTP~C) S_tot + # Pre-dimerized receptors + R(DD!1,Y1~U,Y2~P).R(DD!1,Y1~U,Y2~P) R_dim +end seed species + +begin reaction rules + # Intra-complex phosphorylation + R(DD!+,Y1~U) -> R(DD!+,Y1~P) kkin_Y1 + + # Equilibrium between the closed form and open form of S + S(NSH2~C,PTP~C) <-> S(NSH2~O,PTP~O) kopen, kclose + + # Binding of S(CSH2) from cytosol + R(Y2~P) + S(CSH2) <-> R(Y2~P!1).S(CSH2!1) kon_CSH2,koff_CSH2 \ + exclude_reactants(2,R) + + # Binding of S(NSH2~O) from cytosol + R(Y2~P) + S(NSH2~O) <-> R(Y2~P!1).S(NSH2~O!1) kon_NSH2,koff_NSH2 \ + exclude_reactants(2,R) + + # Binding of S(PTP~O) from cytosol + R(Y1~P) + S(PTP~O) <-> R(Y1~P!1).S(PTP~O!1) kon_PTP,koff_PTP \ + exclude_reactants(2,R) + + # Dephosphorylation of R(Y1~P) + R(Y1~P!1).S(PTP~O!1) -> R(Y1~U) + S(PTP~O) kcat_PTP + R(Y1~P!1).S(PTP~O!1) -> R(Y1~U).S(PTP~O) kcat_PTP + + # 1 Intra-complex binding: CSH2 bound, association of NSH2 (open) with other receptor + R(Y2~P).S(NSH2~O,CSH2!+,PTP~O) <-> \ + R(Y2~P!1).S(NSH2~O!1,CSH2!+,PTP~O) chi_r1*kon_NSH2, koff_NSH2 + + # 2 Intra-complex binding: CSH2 bound, association of PTP (open) with same receptor + R(Y1~P,Y2~P!1).S(NSH2~O,CSH2!1,PTP~O) <-> \ + R(Y1~P!2,Y2~P!1).S(NSH2~O,CSH2!1,PTP~O!2) chi_r2*kon_PTP, koff_PTP + + # 3 Intra-complex binding: CSH2 bound, association of PTP (open) with other receptor + R(Y1~P).R(Y2~P!1).S(NSH2~O,CSH2!1,PTP~O) <-> \ + R(Y1~P!2).R(Y2~P!1).S(NSH2~O,CSH2!1,PTP~O!2) chi_r3*kon_PTP, koff_PTP + + # 4 Intra-complex binding: NSH2 bound, association of CSH2 with other receptor + R(Y2~P).S(NSH2~O!+,CSH2,PTP~O) <-> \ + R(Y2~P!1).S(NSH2~O!+,CSH2!1,PTP~O) chi_r1*kon_CSH2, koff_CSH2 + + # 5 Intra-complex binding: NSH2 bound, association of PTP with other receptor + R(Y1~P).R(Y2~P!1).S(NSH2~O!1,CSH2,PTP~O) <-> \ + R(Y1~P!2).R(Y2~P!1).S(NSH2~O!1,CSH2,PTP~O!2) chi_r4*kon_PTP, koff_PTP + + # 6 Intracomplex binding: NSH2 bound, association of PTP with same receptor + R(Y1~P,Y2~P!1).S(NSH2~O!1,CSH2,PTP~O) <-> \ + R(Y1~P!2,Y2~P!1).S(NSH2~O!1,CSH2,PTP~O!2) chi_r5*kon_PTP, koff_PTP + + # 7 Intra-complex binding: PTP bound, association of CSH2 with same receptor + R(Y1~P!1,Y2~P).S(NSH2~O,CSH2,PTP~O!1) <-> \ + R(Y1~P!1,Y2~P!2).S(NSH2~O,CSH2!2,PTP~O!1) chi_r2*kon_CSH2, koff_CSH2 + + # 8 Intra-complex binding: PTP bound, association of CSH2 with other receptor + R(Y1~P!1).R(Y2~P).S(NSH2~O,CSH2,PTP~O!1) <-> \ + R(Y1~P!1).R(Y2~P!2).S(NSH2~O,CSH2!2,PTP~O!1) chi_r3*kon_CSH2, koff_CSH2 + + # 9 Intra-complex binding: PTP bound, association of NSH2 with other receptor + R(Y1~P!1).R(Y2~P).S(NSH2~O,CSH2,PTP~O!1) <-> \ + R(Y1~P!1).R(Y2~P!2).S(NSH2~O!2,CSH2,PTP~O!1) chi_r4*kon_NSH2, koff_NSH2 + + # 10 Intra-complex binding: PTP bound, association of NSH2 with same receptor + R(Y1~P!1,Y2~P).S(NSH2~O,CSH2,PTP~O!1) <-> \ + R(Y1~P!1,Y2~P!2).S(NSH2~O!2,CSH2,PTP~O!1) chi_r5*kon_NSH2, koff_NSH2 + + # 11 Intra-complex binding: CSH2 & NSH2 bound, assoc. of PTP with same receptor as CSH2 + R(Y1~P,Y2~P!1).R(Y2~P!2).S(NSH2~O!2,CSH2!1,PTP~O) <-> \ + R(Y1~P!3,Y2~P!1).R(Y2~P!2).S(NSH2~O!2,CSH2!1,PTP~O!3) \ + chi_r6*kon_PTP,koff_PTP + + # 12 Intra-complex binding: CSH2 & NSH2 bound, assoc. of PTP with same receptor as NSH2 + R(Y1~P,Y2~P!1).R(Y2~P!2).S(NSH2~O!1,CSH2!2,PTP~O) <-> \ + R(Y1~P!3,Y2~P!1).R(Y2~P!2).S(NSH2~O!1,CSH2!2,PTP~O!3) \ + chi_r7*kon_PTP, koff_PTP + + # 13 Intra-complex binding: CSH2 & PTP bound to the same receptor, assoc. of NSH2 + R(Y1~P!1,Y2~P!2).R(Y2~P).S(NSH2~O,CSH2!2,PTP~O!1) <-> \ + R(Y1~P!1,Y2~P!2).R(Y2~P!3).S(NSH2~O!3,CSH2!2,PTP~O!1) \ + chi_r8*kon_NSH2, koff_NSH2 + + # 14 Intra-complex binding: CSH2 & PTP bound to different receptors, assoc. of NSH2 + R(Y2~P!1).R(Y1~P!2,Y2~P).S(NSH2~O,CSH2!1,PTP~O!2) <-> \ + R(Y2~P!1).R(Y1~P!2,Y2~P!3).S(NSH2~O!3,CSH2!1,PTP~O!2) \ + chi_r9*kon_NSH2, koff_NSH2 + + # 15 Intra-complex binding: PTP & NSH2 bound to different receptors, assoc. of CSH2 + R(Y2~P!1).R(Y1~P!2,Y2~P).S(NSH2~O!1,CSH2,PTP~O!2) <-> \ + R(Y2~P!1).R(Y1~P!2,Y2~P!3).S(NSH2~O!1,CSH2!3,PTP~O!2) \ + chi_r10*kon_CSH2, koff_CSH2 + + # 16 Intra-complex binding: PTP & NSH2 bound to same receptor, assoc. of CSH2 + R(Y1~P!1,Y2~P!2).R(Y2~P).S(NSH2~O!2,CSH2,PTP~O!1) <-> \ + R(Y1~P!1,Y2~P!2).R(Y2~P!3).S(NSH2~O!2,CSH2!3,PTP~O!1) \ + chi_r11*kon_CSH2, koff_CSH2 +end reaction rules + +begin observables + Molecules pYR R(Y1~P!?) +end observables +end model + +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>1000,n_steps=>100,steady_state=>1,atol=>1e-10,rtol=>1e-8,sparse=>0}) + + + + + diff --git a/Contributed/BNGPlayground_Validation/SHP2basemodel/metadata.yaml b/Contributed/BNGPlayground_Validation/SHP2basemodel/metadata.yaml new file mode 100644 index 00000000..2007ff75 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/SHP2basemodel/metadata.yaml @@ -0,0 +1,22 @@ +id: "SHP2_base_model" +name: "SHP2_base_model" +description: "Base model of Shp2 regulation" +tags: ["validation", "shp2", "base", "model", "r", "s", "exclude_reactants"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/SHP2_base_model.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/catalysis/README.md b/Contributed/BNGPlayground_Validation/catalysis/README.md new file mode 100644 index 00000000..7ccd6b7c --- /dev/null +++ b/Contributed/BNGPlayground_Validation/catalysis/README.md @@ -0,0 +1,21 @@ +# catalysis + +Catalysis in energy BNG + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- catalysis.bngl + +## Tags + +validation, catalysis, version, setoption, s, kinase, pptase, atp, adp diff --git a/Contributed/BNGPlayground_Validation/catalysis/catalysis.bngl b/Contributed/BNGPlayground_Validation/catalysis/catalysis.bngl new file mode 100644 index 00000000..e07d5598 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/catalysis/catalysis.bngl @@ -0,0 +1,82 @@ +# Catalysis in energy BNG +# justin.s.hogg@gmail.com, 9 Apr 2013 + +# requires BioNetGen version >= 2.2.4 +version("2.2.4") +# Quantities have units in moles, so set this to Avogadro's Number +setOption("NumberPerQuantityUnit",6.0221e23) + +begin model +begin parameters + # fundamental constants + RT 2.577 # kJ/mol + NA 6.022e23 # /mol + # simulation volume, L + volC 1e-12 + # initial concentrations, mol/L + conc_S_0 1e-6 + conc_kinase_0 10e-9 + conc_pptase_0 10e-9 + conc_ATP_0 1.0e-3 + conc_ADP_0 0.1e-3 + # standard free energy of formation, kJ/mol + Gf_Sp 51.1 + Gf_S_kinase -41.5 + Gf_S_pptase -41.5 + Gf_ATP 51.1 + # baseline activation energy, kJ/mol + Ea0_S_kinase -7.7 + Ea0_S_pptase -7.7 + Ea0_cat_kinase -11.9 + Ea0_cat_pptase 11.9 + # rate distribution parameter, no units + phi 0.5 +end parameters +begin compartments + # generic compartment + C 3 volC +end compartments +begin molecule types + S(e,y~0~P) # substrate with enzyme binding domain and site of phosphorylation + kinase(s) # kinase enzyme + pptase(s) # phosphotase enzyme + ATP() + ADP() +end molecule types +begin species + S(e,y~0)@C conc_S_0*NA*volC + kinase(s)@C conc_kinase_0*NA*volC + pptase(s)@C conc_pptase_0*NA*volC + $ATP()@C conc_ATP_0*NA*volC # ATP concentration held constant + $ADP()@C conc_ADP_0*NA*volC # ADP concentration held constant +end species +begin reaction rules + # binding rules + S(e) + kinase(s) <-> S(e!1).kinase(s!1) Arrhenius(phi,Ea0_S_kinase) + S(e) + pptase(s) <-> S(e!1).pptase(s!1) Arrhenius(phi,Ea0_S_pptase) + # catalysis + S(e!1,y~0).kinase(s!1) + ATP <-> S(e!1,y~P).kinase(s!1) + ADP Arrhenius(phi,Ea0_cat_kinase) + S(e!1,y~P).pptase(s!1) <-> S(e!1,y~0).pptase(s!1) Arrhenius(phi,Ea0_cat_pptase) +end reaction rules +begin energy patterns + S(y~P) Gf_Sp/RT # phosphorylated subtrate + S(e!0).kinase(s!0) Gf_S_kinase/RT # substrate-kinase binding + S(e!0).pptase(s!0) Gf_S_pptase/RT # substrate-pptase binding + ATP() Gf_ATP/RT # ATP energy (relative to ADP) +end energy patterns +begin observables + Molecules Sp S(y~P) + Molecules S_kinase S(e!1).kinase(s!1) + Molecules S_pptase S(e!1).pptase(s!1) + Molecules Stot S() + Molecules kinaseTot kinase() + Molecules pptaseTot pptase() +end observables +end model + +# generate reaction network.. +generate_network({overwrite=>1}) + +# simulate ODE system to steady state.. +simulate({method=>"ode",t_start=>0,t_end=>3600,n_steps=>120,atol=>1e-3,rtol=>1e-7}) + diff --git a/Contributed/BNGPlayground_Validation/catalysis/metadata.yaml b/Contributed/BNGPlayground_Validation/catalysis/metadata.yaml new file mode 100644 index 00000000..3847ec03 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/catalysis/metadata.yaml @@ -0,0 +1,22 @@ +id: "catalysis" +name: "catalysis" +description: "Catalysis in energy BNG" +tags: ["validation", "catalysis", "version", "setoption", "s", "kinase", "pptase", "atp", "adp"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: true + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/catalysis.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/continue/README.md b/Contributed/BNGPlayground_Validation/continue/README.md new file mode 100644 index 00000000..a5eb7b73 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/continue/README.md @@ -0,0 +1,21 @@ +# continue + +Test trajectory continuation + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: test-case + +## Files + +- continue.bngl + +## Tags + +validation, continue, a, b, c, trash diff --git a/Contributed/BNGPlayground_Validation/continue/continue.bngl b/Contributed/BNGPlayground_Validation/continue/continue.bngl new file mode 100644 index 00000000..38e72a35 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/continue/continue.bngl @@ -0,0 +1,46 @@ +# Test trajectory continuation +begin model +begin parameters + k_synth 1.0 + k_degr 0.5 + kp 1.0 + km 0.1 +end parameters +begin molecule types + A() + B(c) + C(b) + Trash() +end molecule types +begin seed species + A() 0 + B(c) 0 + C(b) 1 + $Trash 0 +end seed species +begin observables + Molecules Atot A() + Molecules Btot B() + Molecules Ctot C() + Molecules Bfree B(c) + Molecules Cfree C(b) + Molecules BC B(c!0).C(b!0) +end observables +begin reaction rules + # A synthesizes B + A() -> A() + B(c) k_synth + # degradation of free B + B(c) -> Trash() k_degr + # B-C binding + B(c) + C(b) <-> B(c!0).C(b!0) kp, km +end reaction rules +end model + + +## actions ## +generate_network({overwrite=>1}) +setConcentration("A()",1.0) +simulate_ode({t_start=>0,t_end=>10,n_steps=>20}) +setConcentration("A()",0.0) +simulate_ode({t_start=>10,t_end=>40,n_steps=>60,continue=>1}) + diff --git a/Contributed/BNGPlayground_Validation/continue/metadata.yaml b/Contributed/BNGPlayground_Validation/continue/metadata.yaml new file mode 100644 index 00000000..23badc1e --- /dev/null +++ b/Contributed/BNGPlayground_Validation/continue/metadata.yaml @@ -0,0 +1,22 @@ +id: "continue" +name: "continue" +description: "Test trajectory continuation" +tags: ["validation", "continue", "a", "b", "c", "trash"] +category: "validation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/continue.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/egfrnet/README.md b/Contributed/BNGPlayground_Validation/egfrnet/README.md new file mode 100644 index 00000000..4a7076dd --- /dev/null +++ b/Contributed/BNGPlayground_Validation/egfrnet/README.md @@ -0,0 +1,21 @@ +# egfr_net + +check detailed balanced + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: test-case + +## Files + +- egfr_net.bngl + +## Tags + +validation, egfr, net, egf, shc, grb2, sos diff --git a/Contributed/BNGPlayground_Validation/egfrnet/egfr_net.bngl b/Contributed/BNGPlayground_Validation/egfrnet/egfr_net.bngl new file mode 100644 index 00000000..c57ca1b2 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/egfrnet/egfr_net.bngl @@ -0,0 +1,174 @@ +begin model +begin parameters + egf_tot 1.2e6 # molecule counts + egfr_tot 1.8e5 # molecule counts + Grb2_tot 1.0e5 # molecule counts + Shc_tot 2.7e5 # molecule counts + Sos_tot 1.3e4 # molecule counts + Grb2_Sos_tot 4.9e4 # molecule counts + + kp1 1.667e-06 # ligand-monomer binding (scaled), units: /molecule/s + km1 0.06 # ligand-monomer dissociation, units: /s + + kp2 5.556e-06 # aggregation of bound monomers (scaled), units: /molecule/s + km2 0.1 # dissociation of bound monomers, units: /s + + kp3 0.5 # dimer transphosphorylation, units: /s + km3 4.505 # dimer dephosphorylation, units: /s + + kp14 3 # Shc transphosphorylation, units: /s + km14 0.03 # Shc dephosphorylation, units: /s + + km16 0.005 # Shc cytosolic dephosphorylation, units: /s + + kp9 8.333e-07 # binding of Grb2 to receptor (scaled), units: /molecule/s + km9 0.05 # dissociation of Grb2 from receptor, units: /s + + kp10 5.556e-06 # binding of Sos to receptor (scaled), units: /molecule/s + km10 0.06 # dissociation of Sos from receptor, units: /s + + kp11 1.25e-06 # binding of Grb2-Sos to receptor (scaled), units: /molecule/s + km11 0.03 # diss. of Grb2-Sos from receptor, units: /s + + kp13 2.5e-05 # binding of Shc to receptor (scaled), units: /molecule/s + km13 0.6 # diss. of Shc from receptor, units: /s + + kp15 2.5e-07 # binding of ShcP to receptor (scaled), units: /molecule/s + km15 0.3 # diss. of ShcP from receptor, units: /s + + kp17 1.667e-06 # binding of Grb2 to RP-ShcP (scaled), units: /molecule/s + km17 0.1 # diss. of Grb2 from RP-ShcP, units: /s + + kp18 2.5e-07 # binding of ShcP-Grb2 to receptor (scaled), units: /molecule/s + km18 0.3 # diss. of ShcP-Grb2 from receptor, units: /s + + kp19 5.556e-06 # binding of Sos to RP-ShcP-Grb2 (scaled), units: /molecule/s + km19 0.0214 # diss. of Sos from RP-ShcP-Grb2, units: /s + + kp20 6.667e-08 # binding of ShcP-Grb2-Sos to receptor (scaled), units: /molecule/s + km20 0.12 # diss. of ShcP-Grb2-Sos from receptor, units: /s + + kp24 5e-06 # binding of Grb2-Sos to RP-ShcP (scaled), units: /molecule/s + km24 0.0429 # diss. of Grb2-Sos from RP-ShcP, units: /s + + kp21 1.667e-06 # binding of ShcP to Grb2 in cytosol (scaled), units: /molecule/s + km21 0.01 # diss. of Grb2 and SchP in cytosol, units: /s + + kp23 1.167e-05 # binding of ShcP to Grb2-Sos in cytosol (scaled), units: /molecule/s + km23 0.1 # diss. of Grb2-Sos and SchP in cytosol, units: /s + + kp12 5.556e-08 # binding of Grb2 to Sos in cytosol (scaled), units: /molecule/s + km12 0.0015 # diss. of Grb2 and Sos in cytosol, units: /s + + kp22 1.667e-05 # binding of ShcP-Grb2 to Sos in cytosol (scaled), units: /molecule/s + km22 0.064 # diss. of ShcP-Grb2 and Sos in cytosol, units: /s + + # check detailed balanced + loop1 = (kp9/km9)*(kp10/km10)/((kp11/km11)*(kp12/km12)) + loop2 = (kp15/km15)*(kp17/km17)/((kp21/km21)*(kp18/km18)) + loop3 = (kp18/km18)*(kp19/km19)/((kp22/km22)*(kp20/km20)) + loop4 = (kp12/km12)*(kp23/km23)/((kp22/km22)*(kp21/km21)) + loop5 = (kp15/km15)*(kp24/km24)/((kp20/km20)*(kp23/km23)) +end parameters + +begin molecule types + egf(r) + egfr(l,r,Y1068~Y~pY,Y1148~Y~pY) + Shc(PTB,Y317~Y~pY) + Grb2(SH2,SH3) + Sos(dom) +end molecule types + +begin seed species + egf(r) egf_tot + Grb2(SH2,SH3) Grb2_tot + Shc(PTB,Y317~Y) Shc_tot + Sos(dom) Sos_tot + egfr(l,r,Y1068~Y,Y1148~Y) egfr_tot + Grb2(SH2,SH3!1).Sos(dom!1) Grb2_Sos_tot +end seed species + +begin reaction rules + # Ligand-receptor binding (ligand-monomer) + egfr(l,r) + egf(r) <-> egfr(l!1,r).egf(r!1) kp1, km1 + + # Note changed multiplicity + # Receptor-aggregation + egfr(l!+,r) + egfr(l!+,r) <-> egfr(l!+,r!3).egfr(l!+,r!3) kp2, km2 + + # Transphosphorylation of egfr by RTK + egfr(r!+,Y1068~Y) -> egfr(r!+,Y1068~pY) kp3 + egfr(r!+,Y1148~Y) -> egfr(r!+,Y1148~pY) kp3 + + #Dephosphorylayion + egfr(Y1068~pY) -> egfr(Y1068~Y) km3 + egfr(Y1148~pY) -> egfr(Y1148~Y) km3 + + # Shc transphosph + egfr(r!+,Y1148~pY!1).Shc(PTB!1,Y317~Y) -> egfr(r!+,Y1148~pY!1).Shc(PTB!1,Y317~pY) kp14 + Shc(PTB!+,Y317~pY) -> Shc(PTB!+,Y317~Y) km14 + + # Y1068 activity + egfr(Y1068~pY) + Grb2(SH2,SH3) <-> egfr(Y1068~pY!1).Grb2(SH2!1,SH3) kp9, km9 + egfr(Y1068~pY) + Grb2(SH2,SH3!+) <-> egfr(Y1068~pY!1).Grb2(SH2!1,SH3!+) kp11, km11 + egfr(Y1068~pY!1).Grb2(SH2!1,SH3) + Sos(dom) <-> egfr(Y1068~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) kp10, km10 + + # Y1148 activity + egfr(Y1148~pY) + Shc(PTB,Y317~Y) <-> egfr(Y1148~pY!1).Shc(PTB!1,Y317~Y) kp13, km13 + egfr(Y1148~pY) + Shc(PTB,Y317~pY) <-> egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY) kp15, km15 + egfr(Y1148~pY) + Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3) <-> \ + egfr(Y1148~pY!2).Shc(PTB!2,Y317~pY!1).Grb2(SH2!1,SH3) kp18, km18 + egfr(Y1148~pY) + Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3!3).Sos(dom!3) <-> \ + egfr(Y1148~pY!2).Shc(PTB!2,Y317~pY!1).Grb2(SH2!1,SH3!3).Sos(dom!3) kp20, km20 + + egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY) + Grb2(SH2,SH3) <-> \ + egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY!2).Grb2(SH2!2,SH3) kp17, km17 + + egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY) + Grb2(SH2,SH3!3).Sos(dom!3) <-> \ + egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) kp24, km24 + + Shc(PTB!+,Y317~pY!2).Grb2(SH2!2,SH3) + Sos(dom) <-> \ + Shc(PTB!+,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) kp19, km19 + + # Cytosolic + Shc(PTB,Y317~pY) + Grb2(SH2,SH3) <-> Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3) kp21, km21 + Shc(PTB,Y317~pY) + Grb2(SH2,SH3!+) <-> Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3!+) kp23, km23 + Shc(PTB,Y317~pY) -> Shc(PTB,Y317~Y) km16 + Grb2(SH2,SH3) + Sos(dom) <-> Grb2(SH2,SH3!1).Sos(dom!1) kp12, km12 + Shc(PTB,Y317~pY!2).Grb2(SH2!2,SH3) + Sos(dom) <-> \ + Shc(PTB,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) kp22, km22 +end reaction rules + +begin observables + Molecules Dimers egfr(r!1).egfr(r!1) + Molecules Sos_act Shc(PTB!+,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3), egfr(Y1068~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) + Molecules RP egfr(Y1068~pY!?), egfr(Y1148~pY!?) + Molecules Shc_Grb Shc(Y317~pY!1).Grb2(SH2!1) + Molecules Shc_Grb_Sos Shc(Y317~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) + Molecules R_Grb2 egfr(Y1068~pY!1).Grb2(SH2!1) + Molecules R_Shc egfr(Y1148~pY!1).Shc(PTB!1,Y317~Y) + Molecules R_ShcP egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY!?) + Molecules ShcP Shc(Y317~pY!?) + Molecules R_G_S egfr(Y1068~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) + # Strong differences are seen for R_G_S in comparison with path model + Molecules R_S_G_S egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) + + Molecules Efgr_total egfr + Molecules Shc_total Shc + Molecules Sos_total Sos + Molecules Grb2_total Grb2 +end observables +end model + +## actions ## +# construct reaction network +generate_network({overwrite=>1}) + +# Equilibration.. +#setConcentration("egf(r)",0) +#simulate({method=>"ode",t_end=>100000,n_steps=>10,sparse=>1,steady_state=>1}) + +# Kinetics.. +#setConcentration("egf(r)","egf_tot") +simulate({method=>"ode",t_end=>40,n_steps=>50,atol=>1e-8,rtol=>1e-8,sparse=>1}) + diff --git a/Contributed/BNGPlayground_Validation/egfrnet/metadata.yaml b/Contributed/BNGPlayground_Validation/egfrnet/metadata.yaml new file mode 100644 index 00000000..d9756d78 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/egfrnet/metadata.yaml @@ -0,0 +1,22 @@ +id: "egfr_net" +name: "egfr_net" +description: "check detailed balanced" +tags: ["validation", "egfr", "net", "egf", "shc", "grb2", "sos"] +category: "validation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/egfr_net.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/egfrnetred/README.md b/Contributed/BNGPlayground_Validation/egfrnetred/README.md new file mode 100644 index 00000000..834a89a2 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/egfrnetred/README.md @@ -0,0 +1,21 @@ +# egfr_net_red + +Reduced state-space version of EGFR_NET.BNGL with equivalent ODE dynamics + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- egfr_net_red.bngl + +## Tags + +validation, egfr, net, red, egf, egfr_1, egfr_2, egfr_3, grb2, shc, sos diff --git a/Contributed/BNGPlayground_Validation/egfrnetred/egfr_net_red.bngl b/Contributed/BNGPlayground_Validation/egfrnetred/egfr_net_red.bngl new file mode 100644 index 00000000..d313ce9f --- /dev/null +++ b/Contributed/BNGPlayground_Validation/egfrnetred/egfr_net_red.bngl @@ -0,0 +1,180 @@ +# Reduced state-space version of EGFR_NET.BNGL with equivalent ODE dynamics +begin model +begin parameters + egf_tot 1.2e6 # molecule counts + egfr_tot 1.8e5 # molecule counts + Grb2_tot 1.0e5 # molecule counts + Shc_tot 2.7e5 # molecule counts + Sos_tot 1.3e4 # molecule counts + Grb2_Sos_tot 4.9e4 # molecule counts + + kp1 1.667e-06 # ligand-monomer binding (scaled), units: /molecule/s + km1 0.06 # ligand-monomer dissociation, units: /s + + kp2 5.556e-06 # aggregation of bound monomers (scaled), units: /molecule/s + km2 0.1 # dissociation of bound monomers, units: /s + + kp3 0.5 # dimer transphosphorylation, units: /s + km3 4.505 # dimer dephosphorylation, units: /s + + kp14 3 # Shc transphosphorylation, units: /s + km14 0.03 # Shc dephosphorylation, units: /s + + km16 0.005 # Shc cytosolic dephosphorylation, units: /s + + kp9 8.333e-07 # binding of Grb2 to receptor (scaled), units: /molecule/s + km9 0.05 # dissociation of Grb2 from receptor, units: /s + + kp10 5.556e-06 # binding of Sos to receptor (scaled), units: /molecule/s + km10 0.06 # dissociation of Sos from receptor, units: /s + + kp11 1.25e-06 # binding of Grb2-Sos to receptor (scaled), units: /molecule/s + km11 0.03 # diss. of Grb2-Sos from receptor, units: /s + + kp13 2.5e-05 # binding of Shc to receptor (scaled), units: /molecule/s + km13 0.6 # diss. of Shc from receptor, units: /s + + kp15 2.5e-07 # binding of ShcP to receptor (scaled), units: /molecule/s + km15 0.3 # diss. of ShcP from receptor, units: /s + + kp17 1.667e-06 # binding of Grb2 to RP-ShcP (scaled), units: /molecule/s + km17 0.1 # diss. of Grb2 from RP-ShcP, units: /s + + kp18 2.5e-07 # binding of ShcP-Grb2 to receptor (scaled), units: /molecule/s + km18 0.3 # diss. of ShcP-Grb2 from receptor, units: /s + + kp19 5.556e-06 # binding of Sos to RP-ShcP-Grb2 (scaled), units: /molecule/s + km19 0.0214 # diss. of Sos from RP-ShcP-Grb2, units: /s + + kp20 6.667e-08 # binding of ShcP-Grb2-Sos to receptor (scaled), units: /molecule/s + km20 0.12 # diss. of ShcP-Grb2-Sos from receptor, units: /s + + kp24 5e-06 # binding of Grb2-Sos to RP-ShcP (scaled), units: /molecule/s + km24 0.0429 # diss. of Grb2-Sos from RP-ShcP, units: /s + + kp21 1.667e-06 # binding of ShcP to Grb2 in cytosol (scaled), units: /molecule/s + km21 0.01 # diss. of Grb2 and SchP in cytosol, units: /s + + kp23 1.167e-05 # binding of ShcP to Grb2-Sos in cytosol (scaled), units: /molecule/s + km23 0.1 # diss. of Grb2-Sos and SchP in cytosol, units: /s + + kp12 5.556e-08 # binding of Grb2 to Sos in cytosol (scaled), units: /molecule/s + km12 0.0015 # diss. of Grb2 and Sos in cytosol, units: /s + + kp22 1.667e-05 # binding of ShcP-Grb2 to Sos in cytosol (scaled), units: /molecule/s + km22 0.064 # diss. of ShcP-Grb2 and Sos in cytosol, units: /s + + # check detailed balanced + loop1 = (kp9/km9)*(kp10/km10)/((kp11/km11)*(kp12/km12)) + loop2 = (kp15/km15)*(kp17/km17)/((kp21/km21)*(kp18/km18)) + loop3 = (kp18/km18)*(kp19/km19)/((kp22/km22)*(kp20/km20)) + loop4 = (kp12/km12)*(kp23/km23)/((kp22/km22)*(kp21/km21)) + loop5 = (kp15/km15)*(kp24/km24)/((kp20/km20)*(kp23/km23)) +end parameters + +begin molecule types + egf(r) + egfr_1(l,r) + egfr_2(l,r,Y1068~Y~pY) + egfr_3(l,r,Y1148~Y~pY) + Grb2(SH2,SH3) + Shc(PTB,Y317~Y~pY) + Sos(dom) +end molecule types + +begin species + egf(r) egf_tot + egfr_1(l,r) egfr_tot + egfr_2(l,r,Y1068~Y) egfr_tot + egfr_3(l,r,Y1148~Y) egfr_tot + Grb2(SH2,SH3) Grb2_tot + Shc(PTB,Y317~Y) Shc_tot + Sos(dom) Sos_tot +end species + +begin observables + Molecules Dimers egfr_1(r!1).egfr_2(r!1) + Molecules Sos_act Shc(PTB!+,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3), egfr_2(Y1068~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) + Molecules RP egfr_2(Y1068~pY!?), egfr_3(Y1148~pY!?) + Molecules Shc_Grb Shc(Y317~pY!1).Grb2(SH2!1) + Molecules Shc_Grb_Sos Shc(Y317~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) + Molecules R_Grb2 egfr_2(Y1068~pY!1).Grb2(SH2!1) + Molecules R_Shc egfr_3(Y1148~pY!1).Shc(PTB!1,Y317~Y) + Molecules R_ShcP egfr_3(Y1148~pY!1).Shc(PTB!1,Y317~pY!?) + Molecules ShcP Shc(Y317~pY!?) + Molecules R_G_S egfr_2(Y1068~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) + # Strong differences are seen for R_G_S in comparison with path model + Molecules R_S_G_S egfr_3(Y1148~pY!1).Shc(PTB!1,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) + Molecules EGF_tot egf(r), egf(r!1).egfr_1(l!1) + # + Molecules EGF_free egf(r) + Molecules EGF_EGFR_1 egfr_1(l!+,r) +end observables + +begin reaction rules + # Ligand-receptor binding + egfr_1(l,r) + egf(r) <-> egfr_1(l!1,r).egf(r!1) kp1, km1 #ligand-monomer + egfr_2(l,r) <-> egfr_2(l!1,r).egf(r!1) kp1*EGF_free, km1 #ligand-monomer + egfr_3(l,r) <-> egfr_3(l!1,r).egf(r!1) kp1*EGF_free, km1 #ligand-monomer + + # Receptor-aggregation + egfr_2(l!+,r) + egfr_1(l!+,r) <-> egfr_2(l!+,r!3).egfr_1(l!+,r!3) kp2, km2 + egfr_3(l!+,r) <-> egfr_3(l!+,r!3).egfr_1(l!1,r!3).egf(r!1) kp2*EGF_EGFR_1, km2 + + # Transphosphorylation of egfr by RTK + egfr_2(r!+,Y1068~Y) -> egfr_2(r!+,Y1068~pY) kp3 + egfr_3(r!+,Y1148~Y) -> egfr_3(r!+,Y1148~pY) kp3 + + # Dephosphorylation + egfr_2(Y1068~pY) -> egfr_2(Y1068~Y) km3 + egfr_3(Y1148~pY) -> egfr_3(Y1148~Y) km3 + + # Shc transphosph + egfr_3(r!+,Y1148~pY!1).Shc(PTB!1,Y317~Y) -> egfr_3(r!+,Y1148~pY!1).Shc(PTB!1,Y317~pY) kp14 + Shc(PTB!+,Y317~pY) -> Shc(PTB!+,Y317~Y) km14 + + # Y1068 activity + egfr_2(Y1068~pY) + Grb2(SH2,SH3) <-> egfr_2(Y1068~pY!1).Grb2(SH2!1,SH3) kp9, km9 + egfr_2(Y1068~pY) + Grb2(SH2,SH3!+) <-> egfr_2(Y1068~pY!1).Grb2(SH2!1,SH3!+) kp11, km11 + egfr_2(Y1068~pY!1).Grb2(SH2!1,SH3) + Sos(dom) <-> egfr_2(Y1068~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) kp10, km10 + + # Y1148 activity + egfr_3(Y1148~pY) + Shc(PTB,Y317~Y) <-> egfr_3(Y1148~pY!1).Shc(PTB!1,Y317~Y) kp13, km13 + egfr_3(Y1148~pY) + Shc(PTB,Y317~pY) <-> egfr_3(Y1148~pY!1).Shc(PTB!1,Y317~pY) kp15, km15 + egfr_3(Y1148~pY) + Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3) <-> \ + egfr_3(Y1148~pY!2).Shc(PTB!2,Y317~pY!1).Grb2(SH2!1,SH3) kp18, km18 + egfr_3(Y1148~pY) + Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3!3).Sos(dom!3) <-> \ + egfr_3(Y1148~pY!2).Shc(PTB!2,Y317~pY!1).Grb2(SH2!1,SH3!3).Sos(dom!3) kp20, km20 + + egfr_3(Y1148~pY!1).Shc(PTB!1,Y317~pY) + Grb2(SH2,SH3) <-> \ + egfr_3(Y1148~pY!1).Shc(PTB!1,Y317~pY!2).Grb2(SH2!2,SH3) kp17, km17 + + egfr_3(Y1148~pY!1).Shc(PTB!1,Y317~pY) + Grb2(SH2,SH3!3).Sos(dom!3) <-> \ + egfr_3(Y1148~pY!1).Shc(PTB!1,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) kp24, km24 + + Shc(PTB!+,Y317~pY!2).Grb2(SH2!2,SH3) + Sos(dom) <-> \ + Shc(PTB!+,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) kp19, km19 + + # Cytosolic + Shc(PTB,Y317~pY) + Grb2(SH2,SH3) <-> Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3) kp21, km21 + Shc(PTB,Y317~pY) + Grb2(SH2,SH3!+) <-> Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3!+) kp23, km23 + Shc(PTB,Y317~pY) -> Shc(PTB,Y317~Y) km16 + Grb2(SH2,SH3) + Sos(dom) <-> Grb2(SH2,SH3!1).Sos(dom!1) kp12, km12 + Shc(PTB,Y317~pY!2).Grb2(SH2!2,SH3) + Sos(dom) <-> \ + Shc(PTB,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) kp22, km22 +end reaction rules + +end model + +## actions ## +# construct reaction network +generate_network({overwrite=>1}) + +# Equilibration +setConcentration("egf(r)",0); +simulate({method=>"ode",t_end=>100000,n_steps=>10,sparse=>1,steady_state=>1}) + +# Kinetics +setConcentration("egf(r)","egf_tot") +simulate({method=>"ode",t_end=>120,n_steps=>120,atol=>1e-8,rtol=>1e-8,sparse=>1}) + diff --git a/Contributed/BNGPlayground_Validation/egfrnetred/metadata.yaml b/Contributed/BNGPlayground_Validation/egfrnetred/metadata.yaml new file mode 100644 index 00000000..e203993f --- /dev/null +++ b/Contributed/BNGPlayground_Validation/egfrnetred/metadata.yaml @@ -0,0 +1,22 @@ +id: "egfr_net_red" +name: "egfr_net_red" +description: "Reduced state-space version of EGFR_NET.BNGL with equivalent ODE dynamics" +tags: ["validation", "egfr", "net", "red", "egf", "egfr_1", "egfr_2", "egfr_3", "grb2", "shc", "sos"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/egfr_net_red.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/egfrpath/README.md b/Contributed/BNGPlayground_Validation/egfrpath/README.md new file mode 100644 index 00000000..5a21eb95 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/egfrpath/README.md @@ -0,0 +1,21 @@ +# egfr_path + +The primary focus of the model developed by Kholodenko + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- egfr_path.bngl + +## Tags + +validation, egfr, path, generate_network, setconcentration, simulate diff --git a/Contributed/BNGPlayground_Validation/egfrpath/egfr_path.bngl b/Contributed/BNGPlayground_Validation/egfrpath/egfr_path.bngl new file mode 100644 index 00000000..b4010d26 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/egfrpath/egfr_path.bngl @@ -0,0 +1,152 @@ +# The primary focus of the model developed by Kholodenko +# is the cascade of signaling events that lead to +# recruitment of cytosolic Sos to the inner cell membrane. +# EGF binds to EGFR, which leads to the formation of signaling-competent +# receptor dimers. A dimer then can be transphoshorylated. +# The cytosolic adapter proteins Grb2 and Shc are recruited to +# phosphorylated dimer. +# When Shc is bound to a dimer, it can be phosphorylated by EGFR. +# The phosphorylated form of Shc interacts with Grb2, which +# interacts constitutively with Sos. + +begin model +begin parameters + EGF_tot 1.2e6 # molecule counts + Rec_tot 1.8e5 + Grb2_tot 1.0e5 + Shc_tot 2.7e5 + SOS_tot 1.3e4 + Grb2_SOS_tot 4.9e4 + + kp1 1.667e-06 # ligand-monomer binding (scaled), units: /molecule/s + km1 0.06 # ligand-monomer dissociation, units: /s + + kp2 5.556e-06 # aggregation of bound monomers (scaled) + km2 0.1 # dissociation of bound monomers + + kp3 1 # dimer transphosphorylation + km3 9 # dimer dephosphorylation + + kp14 6 # Shc transphosphorylation + km14 0.06 # Shc dephosphorylation + + km16 0.005 # Shc cytosolic dephosphorylation + + kp9 1.666e-6 # binding of Grb2 to receptor (scaled) + km9 0.05 # dissociation of Grb2 from receptor + + kp10 5.556e-06 # binding of Sos to receptor (scaled) + km10 0.06 # dissociation of Sos from receptor + + kp11 2.5e-06 # binding of Grb2-Sos to receptor (scaled) + km11 0.03 # diss. of Grb2-Sos from receptor + + kp13 5e-05 # binding of Shc to receptor (scaled) + km13 0.6 # diss. of Shc from receptor + + kp15 5e-07 # binding of ShcP to receptor (scaled) + km15 0.3 # diss. of ShcP from receptor + + kp17 1.667e-06 # binding of Grb2 to RP-ShcP (scaled) + km17 0.1 # diss. of Grb2 from RP-ShcP + + kp18 5e-07 # binding of ShcP-Grb2 to receptor (scaled) + km18 0.3 # diss. of ShcP-Grb2 from receptor + + kp19 5.556e-06 # binding of Sos to RP-ShcP-Grb2 (scaled) + km19 0.0214 # diss. of Sos from RP-ShcP-Grb2 + + kp20 1.333e-07 # binding of ShcP-Grb2-Sos to receptor (scaled) + km20 0.12 # diss. of ShcP-Grb2-Sos from receptor + + kp24 5e-06 # binding of Grb2-Sos to RP-ShcP (scaled) + km24 0.0429 # diss. of Grb2-Sos from RP-ShcP + + kp21 1.667e-06 # binding of ShcP to Grb2 in cytosol (scaled) + km21 0.01 # diss. of Grb2 and SchP in cytosol + + kp23 1.167e-05 # binding of ShcP to Grb2-Sos in cytosol (scaled) + km23 0.1 # diss. of Grb2-Sos and SchP in cytosol + + kp12 5.556e-08 # binding of Grb2 to Sos in cytosol (scaled) + km12 0.0015 # diss. of Grb2 and Sos in cytosol + + kp22 1.667e-05 # binding of ShcP-Grb2 to Sos in cytosol (scaled) + km22 0.064 # diss. of ShcP-Grb2 and Sos in cytosol + + # check detailed balance + loop1 = (kp9/km9)*(kp10/km10)/((kp11/km11)*(kp12/km12)) + loop2 = (kp15/km15)*(kp17/km17)/((kp21/km21)*(kp18/km18)) + loop3 = (kp18/km18)*(kp19/km19)/((kp22/km22)*(kp20/km20)) + loop4 = (kp12/km12)*(kp23/km23)/((kp22/km22)*(kp21/km21)) + loop5 = (kp15/km15)*(kp24/km24)/((kp20/km20)*(kp23/km23)) +end parameters + +begin seed species + EGF 0 + Grb2 Grb2_tot + Grb2_Sos Grb2_SOS_tot + Shc Shc_tot + ShcP 0 + ShcP_Grb2 0 + ShcP_Grb2_Sos 0 + Sos SOS_tot + R Rec_tot + RA 0 + R2 0 + RP 0 + R_Sh 0 + R_ShP 0 + R_Sh_G 0 + R_Sh_G_S 0 + R_G 0 + R_G_S 0 +end seed species + +begin reaction rules + R + EGF <-> RA kp1, km1 + RA + RA <-> R2 kp2, km2 + R2 <-> RP kp3, km3 + RP + Grb2 <-> R_G kp9, km9 + R_G + Sos <-> R_G_S kp10, km10 + RP + Grb2_Sos <-> R_G_S kp11, km11 + RP + Shc <-> R_Sh kp13, km13 + R_Sh <-> R_ShP kp14, km14 + RP + ShcP <-> R_ShP kp15, km15 + R_ShP + Grb2 <-> R_Sh_G kp17, km17 + RP + ShcP_Grb2 <-> R_Sh_G kp18, km18 + R_Sh_G + Sos <-> R_Sh_G_S kp19, km19 + RP + ShcP_Grb2_Sos <-> R_Sh_G_S kp20, km20 + R_ShP + Grb2_Sos <-> R_Sh_G_S kp24, km24 + ShcP + Grb2 <-> ShcP_Grb2 kp21, km21 + ShcP + Grb2_Sos <-> ShcP_Grb2_Sos kp23, km23 + ShcP -> Shc km16 + Grb2 + Sos <-> Grb2_Sos kp12, km12 + ShcP_Grb2 + Sos <-> ShcP_Grb2_Sos kp22, km22 +end reaction rules + +begin observables + Species Dimers R2, RP, R_G, R_G_S, R_Sh, R_ShP, R_Sh_G, R_Sh_G_S, R2, RP, R_G, R_G_S, R_Sh, R_ShP, R_Sh_G, R_Sh_G_S + Species Sos_act R_G_S, R_Sh_G_S + Species RP RP, R_G, R_G_S, R_Sh, R_ShP, R_Sh_G, R_Sh_G_S + Species Shc_Grb R_Sh_G, R_Sh_G_S, ShcP_Grb2, ShcP_Grb2_Sos + Species Shc_Grb_Sos R_Sh_G_S, ShcP_Grb2_Sos + Species R_Grb2 R_G, R_G_S, R_Sh_G, R_Sh_G_S + Species R_Shc R_Sh + Species R_ShcP R_ShP, R_Sh_G, R_Sh_G_S + Species Shc_P R_ShP, R_Sh_G, R_Sh_G_S, ShcP, ShcP_Grb2, ShcP_Grb2_Sos + Species R_G_S R_G_S + Species R_S_G_S R_Sh_G_S +end observables +end model + +## actions ## +generate_network({overwrite=>1}) + +# Equilibration +setConcentration("EGF",0) +simulate({method=>"ode",t_end=>100000,n_steps=>10,steady_state=>1}) + +# Kinetics +setConcentration("EGF","EGF_tot") +simulate({method=>"ode",t_end=>120,n_steps=>120}) diff --git a/Contributed/BNGPlayground_Validation/egfrpath/metadata.yaml b/Contributed/BNGPlayground_Validation/egfrpath/metadata.yaml new file mode 100644 index 00000000..a7125010 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/egfrpath/metadata.yaml @@ -0,0 +1,22 @@ +id: "egfr_path" +name: "egfr_path" +description: "The primary focus of the model developed by Kholodenko" +tags: ["validation", "egfr", "path", "generate_network", "setconcentration", "simulate"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/egfr_path.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/energyexample1/README.md b/Contributed/BNGPlayground_Validation/energyexample1/README.md new file mode 100644 index 00000000..52d46551 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/energyexample1/README.md @@ -0,0 +1,21 @@ +# energy_example1 + +Illustration of energy modeling approach w/ a simple protein scaffold model + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- energy_example1.bngl + +## Tags + +validation, energy, example1, version, setoption, s, a, b, c diff --git a/Contributed/BNGPlayground_Validation/energyexample1/energy_example1.bngl b/Contributed/BNGPlayground_Validation/energyexample1/energy_example1.bngl new file mode 100644 index 00000000..21d18f00 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/energyexample1/energy_example1.bngl @@ -0,0 +1,168 @@ +# Illustration of energy modeling approach w/ a simple protein scaffold model +# AUTHOR: justin.s.hogg@gmail.com +# UPDATE: 31 March 2013 +# +# A free-energy approach to rule-based modeling was introduced by +# J. Ollivier, et al. (PLoS Comp. Bio. 2011); with key generalizations by +# Vincent Danos. Keep an eye out for a paper describing our implementation +# of energy modeling in the BioNetGen platform. We think there are lots of +# exciting applications on the horizon. + +# Requires BioNetGen >= 2.2.4 +version("2.2.4") + +# BNG uses the following value, along with compartment volumes, to convert +# intensive units (concentration) to extensive units (numbers). If you are +# measuring quantity in moles, set this to Avogadro's number. If quantity is +# measured by pure numbers, then set to 1, etc. +setOption("NumberPerQuantityUnit",6.0221e23) + +begin model +begin parameters + # Fundamental constants + RT 2.5774863 # product of Universal gas constant and Temperature, kJ/mol + NA 6.0221418e23 # Avogadro's Number, /mol + PI 3.1415927 # Pi, no units + # Geometry parameters + rad_cell 1e-4 # radius of cell, dm + vol_CP 4/3*PI*rad_cell^3 # volume of cytoplasm, L + # Initial species concentrations, M + conc_S_0 1e-9 + conc_A_0 10e-9 + conc_B_0 10e-9 + conc_C_0 10e-9 + # Free energy parameters. See "energy patterns" block for more info. + # Bond energy terms, kJ/mol. (NOTE: -47.5 kJ/mol ~= Kd=10nM) + Gf_SA -47.5 + Gf_SB -47.5 + Gf_SC -47.5 + # Bond-bond cooperativity, kJ/mol. (NOTE: 0 kJ/mol = no cooperativity) + Gf_SAB 1.8 + Gf_SBC -5.9 + Gf_SABC -1.8 + # Rate distribution parameter, no units. Phi=1/2 is a good choice. + phi 0.5 + # Baseline activation energy terms, kJ/mol. See reaction rules block for + # an explanation of how kinetic rates are computed from phi and Ea0. + Ea0_SA -17.8 + Ea0_SB -17.8 + Ea0_SC -17.8 + # NOTE: negative Ea0 values are ok! For our calculations, we assume the + # transition state energy absorbs the pre-exponential factor "C" of the + # Arrhenius ratelaw. Consequently, the energy may be negative. (Future + # releases may allow the user to specify a value for "C" directly. + # For unimolecular reactions, a typical Ea0 is positive, + # e.g. (5.9 -> 17.8 kJ/mol). For bimolecular reactions, a typical Ea0 is + # negative (-23.7 -> -11.9 kJ/mol). Typical values do depend on "phi", so + # be sure to reconsider your estimates if "phi" is changed from 1/2. +end parameters +begin compartments + # Compartments are not required for use of energy modeling, + # but BNG will convert intensive units to extensive units + # automatically if you specify compartments. Recall that BNG requires + # extensive units (e.g. counts/s) for discrete stochastic simulations. + # If compartments are disabled, you must do the conversions directly + # (which some users may prefer). + CP 3 vol_CP # "CP" = cytoplasm, 3-dim space, volume = "vol_CP" +end compartments +begin molecule types + S(a,b,c) # Scaffold protein with three binding domains + A(s) # Protein A interacts with scaffold at site S(a) + B(s) # Protein B interacts with scaffold at site S(b) + C(s) # Protein C interacts with scaffold at site S(c) +end molecule types +begin seed species + # seed species units should counts, not concentration + S(a,b,c)@CP conc_S_0*NA*vol_CP + A(s)@CP conc_A_0*NA*vol_CP + B(s)@CP conc_B_0*NA*vol_CP + C(s)@CP conc_B_0*NA*vol_CP +end seed species +begin energy patterns + # this new block is required for energy BNGL models! + # + # Energy patterns describe motifs within complexes where free-energy is + # "stored", e.g. bonds, high-energy states, etc. The standard free-energy + # of formation for a complex is computed by finding all energy pattern + # motifs and summing over the free-energy parameters weighted by the number + # of matches. + # + # Let "x" be a complex, "p" be an index over energy patterns, and "n(p,x)" + # be the number of times pattern p is found in complex x, then the + # standard free energy of formation for x is: + # + # DeltaG_f(x) = Sum_p Gf_p * n(p,x) + # + # free-energy parameters should be unitless, e.g., if energy has units + # kJ/mol, then divide by RT (product of univ. gas constant and temperature). + + # bond energy motifs + S(a!0).A(s!0) Gf_SA/RT + S(b!0).B(s!0) Gf_SB/RT + S(c!0).C(s!0) Gf_SC/RT + # bond-bond cooperativity motifs + S(a!0,b!1).A(s!0).B(s!1) Gf_SAB/RT + S(b!0,c!1).B(s!0).C(s!1) Gf_SBC/RT + S(a!0,b!1,c!2).A(s!0).B(s!1).C(s!2) Gf_SABC/RT +end energy patterns +begin observables + # S observables + Molecules SAB_only S(a!0,b!1,c).A(s!0).B(s!1) # least favorable trimer configuration + Molecules SAC_only S(a!0,c!1).A(s!0).C(s!1) # intermediate favorability + Molecules SBC_only S(b!0,c!1).B(s!0).C(s!1) # most favorable trimer configuration + Molecules SABC S(a!0,b!1,c!2).A(s!0).B(s!1).C(s!2) + Molecules S_total S() + # A observables + Molecules A_bound S(a!0).A(s!0) + Molecules A_total A() + # B observables + Molecules B_bound S(b!0).B(s!0) + Molecules B_total B() + # C observables + Molecules C_bound S(c!0).C(s!0) + Molecules C_total C() +end observables +begin reaction rules + # Rules in an energy model are written with minimal context. For example, + # a binding rule would not usually include components or molecules that + # are not directly participating in the new bond. (Note that context may + # be useful for limiting the size of reaction networks). Kinetics + # are derived for each reaction generated by a rule from the free-energy + # change and activation energy. Energy rules have an Arrhenius rate law, + # which has the following syntax: + # + # Arrhenius(phi, Ea0/RT) + # + # where "phi" is the rate distribution parameter (no units), "Ea0" the + # baseline activation energy (kJ/mol) for a reaction with DeltaG=0, and + # "RT" is the product of univ. gas constant and temperature (kJ/mol). + # + # Kinetic rates are computed as follows: + # + # k+ = C*exp(-(Ea0 + phi*DeltaG)/RT) + # k- = C*exp(-(Ea0 + (phi-1)*DeltaG)/RT) + # + # This deviates slightly from Ollivier et al., but has the same spirit. + # Note that we assume C=1 (no loss of generality if temperature is fixed). + # + # In most cases, phi=1/2 is a good choice. Bidirectional energy rules + # only have ONE Arrhenius type ratelaw, not two (in contrast to other + # ratelaw types). Note that a model may include both elementary ratelaw + # rules and Arrhenius ratelaw rules. However, there is no guarantee that + # detailed balance will be satisfied. + + # ..And here are the reaction rules. Relish the simplicity. + R0: S(a) + A(s) <-> S(a!0).A(s!0) Arrhenius(phi,Ea0_SA/RT) + R1: S(b) + B(s) <-> S(b!0).B(s!0) Arrhenius(phi,Ea0_SB/RT) + R2: S(c) + C(s) <-> S(c!0).C(s!0) Arrhenius(phi,Ea0_SC/RT) +end reaction rules +end model + +# Generate the network. Kinetics are computed as the reactions are constructed. +generate_network({overwrite=>1}) +# Simulate with ODE or SSA only. NFsim does not yet support energy models =(. +writeSBML() +simulate({method=>"ode",t_start=>0,t_end=>200,n_steps=>1000,atol=>1e-4,rtol=>1e-6}) + +# ..and we're done! + diff --git a/Contributed/BNGPlayground_Validation/energyexample1/metadata.yaml b/Contributed/BNGPlayground_Validation/energyexample1/metadata.yaml new file mode 100644 index 00000000..fc9a555d --- /dev/null +++ b/Contributed/BNGPlayground_Validation/energyexample1/metadata.yaml @@ -0,0 +1,22 @@ +id: "energy_example1" +name: "energy_example1" +description: "Illustration of energy modeling approach w/ a simple protein scaffold model" +tags: ["validation", "energy", "example1", "version", "setoption", "s", "a", "b", "c"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: true + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/energy_example1.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/example1/README.md b/Contributed/BNGPlayground_Validation/example1/README.md new file mode 100644 index 00000000..fa9a526a --- /dev/null +++ b/Contributed/BNGPlayground_Validation/example1/README.md @@ -0,0 +1,21 @@ +# example1 + +Example file for BNG2 tutorial. + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: test-case + +## Files + +- example1.bngl + +## Tags + +validation, example1, version, generate_network, simulate_ode diff --git a/Contributed/BNGPlayground_Validation/example1/example1.bngl b/Contributed/BNGPlayground_Validation/example1/example1.bngl new file mode 100644 index 00000000..ac8a1c7c --- /dev/null +++ b/Contributed/BNGPlayground_Validation/example1/example1.bngl @@ -0,0 +1,58 @@ +# Example file for BNG2 tutorial. +# All text following the occurence off '#' character in a line is ignored. +# Written by James R. Faeder +# Theoretical Biology and Biophysics Group +# Los Alamos National Laboratory +# faeder@lanl.gov +# 10/28/2005 +# revised 6/9/2006 + +version("2.0.23"); + +begin parameters + 1 L0 1 + 2 R0 1 + 3 A0 5 + 4 kp1 0.5 + 5 km1 0.1 + 6 kp2 1.1 + 7 km2 0.1 + 8 p1 10 + 9 d1 5 + 10 kpA 1e1 + 11 kmA 0.02 +end parameters + +begin species + 1 L(r) L0 + 2 R(l,d,Y~U) R0 + 3 A(SH2) A0 +end species + +begin observables + Molecules R_dim R(d!+) + Molecules R_phos R(Y~P!?) + Molecules A_R A(SH2!1).R(Y~P!1) +end observables + +begin reaction rules + 1 L(r) + R(l,d) <-> L(r!1).R(l!1,d) kp1, km1 + 2 R(l!+,d) + R(l!+,d) <-> R(l!+,d!2).R(l!+,d!2) kp2, km2 + 3 R(d!+,Y~U) -> R(d!+,Y~P) p1 + 4 R(Y~P) -> R(Y~U) d1 + 5 R(Y~P) + A(SH2) <-> R(Y~P!1).A(SH2!1) kpA, kmA +end reaction rules + +# Call with no arguments +generate_network(); + +# Call with a single parameter +#generate_network({max_iter=>2}); + +# Call with a hash valued parameter +#generate_network({max_stoich=>{A=>1}}); + +simulate_ode({t_end=>50,n_steps=>20}); + +# Print concentratons at unevenly spaced times (array-valued parameter) +#simulate_ode({sample_times=>[1,10,100]}); diff --git a/Contributed/BNGPlayground_Validation/example1/metadata.yaml b/Contributed/BNGPlayground_Validation/example1/metadata.yaml new file mode 100644 index 00000000..71bb8b5c --- /dev/null +++ b/Contributed/BNGPlayground_Validation/example1/metadata.yaml @@ -0,0 +1,22 @@ +id: "example1" +name: "example1" +description: "Example file for BNG2 tutorial." +tags: ["validation", "example1", "version", "generate_network", "simulate_ode"] +category: "validation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/example1.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/fcerijicomp/README.md b/Contributed/BNGPlayground_Validation/fcerijicomp/README.md new file mode 100644 index 00000000..a4f5be98 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/fcerijicomp/README.md @@ -0,0 +1,21 @@ +# fceri_ji_comp + +Ligand-receptor binding + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: test-case + +## Files + +- fceri_ji_comp.bngl + +## Tags + +validation, fceri, ji, comp, lig, lyn, syk, rec diff --git a/Contributed/BNGPlayground_Validation/fcerijicomp/fceri_ji_comp.bngl b/Contributed/BNGPlayground_Validation/fcerijicomp/fceri_ji_comp.bngl new file mode 100644 index 00000000..0af9f84e --- /dev/null +++ b/Contributed/BNGPlayground_Validation/fcerijicomp/fceri_ji_comp.bngl @@ -0,0 +1,135 @@ +begin model +begin parameters + Nav 6.022e8 + Lig_tot 6.0e3 # units: molecules + Rec_tot 4.0e2 # units: molecules + Lyn_tot 2.8e2 # units: molecules + Syk_tot 4e2 # units: molecules + kp1 1e5/Nav # units: M + km1 0.00 # units: /s + kp2 1e3/Nav # units: M + km2 0.00 # units: /s + kpL 1e7/Nav # units: M + kmL 20 # units: /s + kpLs 1e7/Nav # units: M + kmLs 0.12 # units: /s + kpS 1e7/Nav # units: M + kmS 0.13 # units: /s + pLb 30 # units: /s + pLbs 100 # units: /s + pLg 1 # units: /s + pLgs 3 # units: /s + pLS 30 # units: /s + pLSs 100 # units: /s + pSS 100 # units: /s + pSSs 200 # units: /s + dm 0.1 # units: /s + dc 0.1 # units: /s + vol_wall 0.88 + vol_EC 39 + vol_PM 0.01 + vol_CP 1 +end parameters + +begin compartments + wall 2 vol_wall + EC 3 vol_EC wall + PM 2 vol_PM EC + CP 3 vol_CP PM +end compartments + +begin molecule types +Lig(l,l) +Lyn(U,SH2) +Syk(tSH2,l~Y~pY,a~Y~pY) +Rec(a,b~Y~pY,g~Y~pY) +end molecule types + +begin species + @EC:Lig(l,l) Lig_tot + @PM:Lyn(U,SH2) Lyn_tot + @CP:Syk(tSH2,l~Y,a~Y) Syk_tot + @PM:Rec(a,b~Y,g~Y) Rec_tot +end species + +begin reaction rules + # Ligand-receptor binding + R1: Rec(a) + Lig(l,l) <-> Rec(a!1).Lig(l!1,l) kp1, km1 + + # Receptor-aggregation + R2: Rec(a) + Lig(l,l!+) <-> Rec(a!2).Lig(l!2,l!+) kp2, km2 + + # Constitutive Lyn-receptor binding + R3: Rec(b~Y) + Lyn(U,SH2) <-> Rec(b~Y!1).Lyn(U!1,SH2) kpL, kmL + + # Transphosphorylation of beta by constitutive Lyn + R4: Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~Y) -> Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~pY) pLb + + # Transphosphorylation of gamma by constitutive Lyn + R5: Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~Y) -> Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY) pLg + + # Lyn-receptor binding through SH2 domain + R6: Rec(b~pY) + Lyn(U,SH2) <-> Rec(b~pY!1).Lyn(U,SH2!1) kpLs, kmLs + + # Transphosphorylation of beta by SH2-bound Lyn + R7: Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,b~Y) -> Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,b~pY) pLbs + + # Transphosphorylation of gamma by SH2-bound Lyn + R8: Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~Y) -> Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY) pLgs + + # Syk-receptor binding through tSH2 domain + R9: Rec(g~pY) + Syk(tSH2) <-> Rec(g~pY!1).Syk(tSH2!1) kpS, kmS + + # Transphosphorylation of Syk by constitutive Lyn + R10: Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~Y) -> \ + Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~pY) pLS + + # Transphosphorylation of Syk by SH2-bound Lyn + R11: Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~Y) -> \ + Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~pY) pLSs + + # Transphosphorylation of Syk by Syk not phosphorylated on aloop + R12: Lig(l!1,l!2).Syk(tSH2!3,a~Y).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~Y) -> \ + Lig(l!1,l!2).Syk(tSH2!3,a~Y).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~pY) pSS + + # Transphosphorylation of Syk by Syk phosphorylated on aloop + R13: Lig(l!1,l!2).Syk(tSH2!3,a~pY).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~Y) -> \ + Lig(l!1,l!2).Syk(tSH2!3,a~pY).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~pY) pSSs + + # Dephosphorylation of Rec beta + R14: Rec(b~pY) -> Rec(b~Y) dm + + # Dephosphorylation of Rec gamma + R15: Rec(g~pY) -> Rec(g~Y) dm + + # Dephosphorylation of Syk at membrane + R16: Syk(tSH2!+,l~pY) -> Syk(tSH2!+,l~Y) dm + R17: Syk(tSH2!+,a~pY) -> Syk(tSH2!+,a~Y) dm + + # Dephosphorylation of Syk in cytosol + R18: Syk(tSH2,l~pY) -> Syk(tSH2,l~Y) dc + R19: Syk(tSH2,a~pY) -> Syk(tSH2,a~Y) dc +end reaction rules + +begin observables + Molecules LynFree Lyn(U,SH2) + Molecules RecMon Rec(a), Rec(a!1).Lig(l!1,l) + Molecules RecDim Rec.Rec + + Molecules RecPbeta Rec(b~pY!?) + Molecules RecPgamma Rec(g~pY), Rec(g~pY!+) + Molecules RecSyk Rec(g~pY!1).Syk(tSH2!1) + Molecules RecSykPS Rec(g~pY!1).Syk(tSH2!1,a~pY) + + Molecules SykTest Syk + Molecules LynTest Lyn + Molecules RecTest Rec +end observables +end model + +## actions ## +#generate_network({overwrite=>1}) +#writeXML() +writeMDL() +#generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>5,n_steps=>1000,atol=>1e-8,rtol=>1e-8}) diff --git a/Contributed/BNGPlayground_Validation/fcerijicomp/metadata.yaml b/Contributed/BNGPlayground_Validation/fcerijicomp/metadata.yaml new file mode 100644 index 00000000..63d628b7 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/fcerijicomp/metadata.yaml @@ -0,0 +1,22 @@ +id: "fceri_ji_comp" +name: "fceri_ji_comp" +description: "Ligand-receptor binding" +tags: ["validation", "fceri", "ji", "comp", "lig", "lyn", "syk", "rec"] +category: "validation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/fceri_ji_comp.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Validation/heise/README.md b/Contributed/BNGPlayground_Validation/heise/README.md new file mode 100644 index 00000000..1154dfde --- /dev/null +++ b/Contributed/BNGPlayground_Validation/heise/README.md @@ -0,0 +1,21 @@ +# heise + +Validate state inheritance in a symmetric context + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- heise.bngl + +## Tags + +validation, heise, a, b, generate_network, simulate_ode, setparameter diff --git a/Contributed/BNGPlayground_Validation/heise/heise.bngl b/Contributed/BNGPlayground_Validation/heise/heise.bngl new file mode 100644 index 00000000..7934f175 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/heise/heise.bngl @@ -0,0 +1,46 @@ +# Validate state inheritance in a symmetric context +# At equilibrium: A = sqrt(v/kab) = 1, B = v/(2*kb0) = 1/2 +begin model +begin parameters + #pool sizes + PA 1 + PB 1 + #influx to the system + vu 1 + vl 0 + #kinetic constants + kab 1 + kac 0 + kb0 1 +end parameters +begin molecule types + A(c1~0~1) + B(c1~0~1,c1~0~1) +end molecule types +begin seed species + A(c1~0) 0 +end seed species +begin reaction rules + # synthesis of A + 0 -> A(c1~0) vu + 0 -> A(c1~1) vl + # production of B + A(c1%1) + A(c1%2) -> B(c1%1,c1%2) kab + # degradation of B + B() -> 0 kb0 +end reaction rules +begin observables + Molecules A A() + Molecules B B() +end observables +end model + +## actions ## +generate_network({overwrite=>1}) +# equilibrate wiht unlabeled models +simulate_ode({t_start=>0,t_end=>20,n_steps=>20}) +# add labels +setParameter("vu",0) +setParameter("vl",1) +simulate_ode({t_end=>40,n_steps=>20,continue=>1}) + diff --git a/Contributed/BNGPlayground_Validation/heise/metadata.yaml b/Contributed/BNGPlayground_Validation/heise/metadata.yaml new file mode 100644 index 00000000..a7c85bea --- /dev/null +++ b/Contributed/BNGPlayground_Validation/heise/metadata.yaml @@ -0,0 +1,22 @@ +id: "heise" +name: "heise" +description: "Validate state inheritance in a symmetric context" +tags: ["validation", "heise", "a", "b", "generate_network", "simulate_ode", "setparameter"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/heise.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/issue198short/README.md b/Contributed/BNGPlayground_Validation/issue198short/README.md new file mode 100644 index 00000000..63221319 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/issue198short/README.md @@ -0,0 +1,21 @@ +# issue_198_short + +No description available + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- issue_198_short.bngl + +## Tags + +validation, issue, 198, short, a, b, c, generate_network, simulate diff --git a/Contributed/BNGPlayground_Validation/issue198short/issue_198_short.bngl b/Contributed/BNGPlayground_Validation/issue198short/issue_198_short.bngl new file mode 100644 index 00000000..7e334905 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/issue198short/issue_198_short.bngl @@ -0,0 +1,21 @@ +begin parameters + kd 2*asin(1) +end parameters +begin molecule types + A(b) + B(a,c) + C(b) +end molecule types +begin seed species + A(b!1).B(a!1,c!2).C(b!2) 1 +end seed species +begin observables + Molecules Afree A(b) +end observables +begin reaction rules + A(b!1).B(a!1,c!2).C(b!2) -> \ + A(b) + B(a,c) + C(b) kd +end reaction rules + +generate_network({overwrite=>1}); +simulate({method=>"ode",t_end=>10,n_steps=>10}) \ No newline at end of file diff --git a/Contributed/BNGPlayground_Validation/issue198short/metadata.yaml b/Contributed/BNGPlayground_Validation/issue198short/metadata.yaml new file mode 100644 index 00000000..11f43c89 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/issue198short/metadata.yaml @@ -0,0 +1,22 @@ +id: "issue_198_short" +name: "issue_198_short" +description: "No description available" +tags: ["validation", "issue", "198", "short", "a", "b", "c", "generate_network", "simulate"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/issue_198_short.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/localfunc/README.md b/Contributed/BNGPlayground_Validation/localfunc/README.md new file mode 100644 index 00000000..13c8b541 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/localfunc/README.md @@ -0,0 +1,21 @@ +# localfunc + +Test local function expansion + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- localfunc.bngl + +## Tags + +validation, localfunc, a, b, c, trash, f_synth diff --git a/Contributed/BNGPlayground_Validation/localfunc/localfunc.bngl b/Contributed/BNGPlayground_Validation/localfunc/localfunc.bngl new file mode 100644 index 00000000..be605e51 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/localfunc/localfunc.bngl @@ -0,0 +1,65 @@ +# Test local function expansion +begin model +begin parameters + + kp 0.5 + km 0.1 + k_synthC 0.5 + k_degrC 0.5 + +end parameters +begin molecule types + + A(b,b,b) + B(a) + C() + Trash() + +end molecule types +begin seed species + + A(b,b,b) 1 + B(a) 3 + C() 0 + $Trash() 0 + +end seed species +begin observables + + Molecules Atot A() + Molecules Btot B() + Molecules Ctot C() + Species AB0 A(b,b,b) + Species AB1 A(b!0,b,b).B(a!0) + Species AB2 A(b!0,b!1,b).B(a!0).B(a!1) + Species AB3 A(b!0,b!1,b!2).B(a!0).B(a!1).B(a!2) + Molecules AB_motif A(b!0).B(a!0) + +end observables +begin functions + + f_synth(x) = k_synthC*(AB_motif(x))^2 + +end functions +begin reaction rules + + # A synthesizes C with rate dependent on bound B + %x::A() -> %x::A() + C() f_synth(x) + + # A binds B + A(b) + B(a) <-> A(b!0).B(a!0) kp, km + + # degradation of C + C() -> Trash() k_degrC + +end reaction rules +end model + + +## actions ## + +generate_network({overwrite=>1}) +writeMfile({t_start=>0,t_end=>10,n_steps=>40,bdf=>1,atol=>1e-6,rtol=>1e-6}) +writeMexfile({suffix=>"mex",t_start=>0,t_end=>10,n_steps=>40,sparse=>0,atol=>1e-6,rtol=>1e-6}) +simulate_ode({t_start=>0,t_end=>10,n_steps=>40}) + diff --git a/Contributed/BNGPlayground_Validation/localfunc/metadata.yaml b/Contributed/BNGPlayground_Validation/localfunc/metadata.yaml new file mode 100644 index 00000000..a7398643 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/localfunc/metadata.yaml @@ -0,0 +1,22 @@ +id: "localfunc" +name: "localfunc" +description: "Test local function expansion" +tags: ["validation", "localfunc", "a", "b", "c", "trash", "f_synth"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/localfunc.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/michment/README.md b/Contributed/BNGPlayground_Validation/michment/README.md new file mode 100644 index 00000000..af35528b --- /dev/null +++ b/Contributed/BNGPlayground_Validation/michment/README.md @@ -0,0 +1,21 @@ +# michment + +Michaelis Menten + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- michment.bngl + +## Tags + +validation, michment, e, s, generate_network diff --git a/Contributed/BNGPlayground_Validation/michment/metadata.yaml b/Contributed/BNGPlayground_Validation/michment/metadata.yaml new file mode 100644 index 00000000..f559cda8 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/michment/metadata.yaml @@ -0,0 +1,22 @@ +id: "michment" +name: "michment" +description: "Michaelis Menten" +tags: ["validation", "michment", "e", "s", "generate_network"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/michment.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/michment/michment.bngl b/Contributed/BNGPlayground_Validation/michment/michment.bngl new file mode 100644 index 00000000..04e61267 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/michment/michment.bngl @@ -0,0 +1,64 @@ +# "michment.bngl" is designed to test the read/write network feature of BNG. +# This model works in conjunction with "michment_cont.bngl". This model +# file defines the rule model, generates the network, runs simulations, and +# then saves the network to "michment_cont.net". "michment_cont.bngl" then +# reaads the saved network file and repeats the simulations. This model should +# be processed PRIOR to "michment_cont.bngl". This can be accomplished by +# calling BNG with both model files in order: +# +# > BNG2.pl michment.bngl michment_cont.bngl +# +# If this model pair is part of an automated validation script, be sure of the +# execution order and take care that "michment_cont.net" is not deleted before +#"michment_cont.bngl" has a chance to read it. +# --J.Hogg, 19 Apr 2012 + +begin model +begin parameters + S0 100 + E0 10 + # Kinetic constants + kcat 2.0 + Km 40.0 + kRT 2.0 + kTR 1.0 +end parameters +begin molecule types + E() + S(a~0~P,c~R~T) +end molecule types +begin seed species + S(a~0,c~R) S0 + E() E0 +end seed species +begin observables + Molecules Sa0 S(a~0) + Molecules SaP S(a~P) + Molecules ScR S(c~R) + Molecules ScT S(c~T) + Molecules S_tot S() + Molecules E_tot E() +end observables +begin functions + michment() = kcat/(Km + Sa0) +end functions +begin reaction rules + # michaelis-menten enzymatic reaction + S(a~0) + E() -> S(a~P) + E() michment() + # conformation switch + S(c~R) <-> S(c~T) kRT, kTR +end reaction rules +end model + +# construct reaction network +generate_network({overwrite=>1}) + +setConcentration("S(a~0,c~R)","S0") +simulate_ode({t_start=>0,t_end=>10,n_steps=>50,sparse=>1}) + +addConcentration("S(a~0,c~R)","S0") +simulate_ode({t_start=>10,t_end=>20,n_steps=>50,continue=>1,sparse=>1}) + +resetConcentrations() +writeNetwork({suffix=>"cont",evaluate_expressions=>0,overwrite=>1}) + diff --git a/Contributed/BNGPlayground_Validation/michmentcont/README.md b/Contributed/BNGPlayground_Validation/michmentcont/README.md new file mode 100644 index 00000000..0b5e21f8 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/michmentcont/README.md @@ -0,0 +1,21 @@ +# michment_cont + +Michaelis Menten Continue + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: test-case + +## Files + +- michment_cont.bngl + +## Tags + +validation, michment, cont, readfile, setconcentration, simulate_ode, addconcentration diff --git a/Contributed/BNGPlayground_Validation/michmentcont/metadata.yaml b/Contributed/BNGPlayground_Validation/michmentcont/metadata.yaml new file mode 100644 index 00000000..a5a96387 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/michmentcont/metadata.yaml @@ -0,0 +1,22 @@ +id: "michment_cont" +name: "michment_cont" +description: "Michaelis Menten Continue" +tags: ["validation", "michment", "cont", "readfile", "setconcentration", "simulate_ode", "addconcentration"] +category: "validation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/michment_cont.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Validation/michmentcont/michment_cont.bngl b/Contributed/BNGPlayground_Validation/michmentcont/michment_cont.bngl new file mode 100644 index 00000000..c10fc03c --- /dev/null +++ b/Contributed/BNGPlayground_Validation/michmentcont/michment_cont.bngl @@ -0,0 +1,12 @@ +# "michment_cont.bngl" is part of a pair of models that tests the +# read/write features of BNG. See "michment.bngl" for more details. +# --J.Hogg, 19 Apr 2012 + +readFile({file=>"michment_cont.net"}) + +setConcentration("S(a~0,c~R)","S0") +simulate_ode({t_start=>0,t_end=>10,n_steps=>50,sparse=>1}) + +addConcentration("S(a~0,c~R)","S0") +simulate_ode({t_start=>10,t_end=>20,n_steps=>50,continue=>1,sparse=>1}) + diff --git a/Contributed/BNGPlayground_Validation/motor/README.md b/Contributed/BNGPlayground_Validation/motor/README.md new file mode 100644 index 00000000..e723205d --- /dev/null +++ b/Contributed/BNGPlayground_Validation/motor/README.md @@ -0,0 +1,21 @@ +# motor + +Motor protein + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- motor.bngl + +## Tags + +validation, motor, chey, kplus, kminus diff --git a/Contributed/BNGPlayground_Validation/motor/metadata.yaml b/Contributed/BNGPlayground_Validation/motor/metadata.yaml new file mode 100644 index 00000000..5be78627 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/motor/metadata.yaml @@ -0,0 +1,22 @@ +id: "motor" +name: "motor" +description: "Motor protein" +tags: ["validation", "motor", "chey", "kplus", "kminus"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/motor.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/motor/motor.bngl b/Contributed/BNGPlayground_Validation/motor/motor.bngl new file mode 100644 index 00000000..a849d9cb --- /dev/null +++ b/Contributed/BNGPlayground_Validation/motor/motor.bngl @@ -0,0 +1,91 @@ +# motor.bngl +# Example of global functions by simulating the flagellar motor +# and CheYp levels. The rate of switching rotational states +# of the flagellar motor depends functionally on the concentration +# of CheYp in the total system. Therefore, we need to define +# global functions to correctly evaluate the rates according to +# this model. --Michael Sneddon +# + +begin parameters + + #Made up rates (per second) of CheY <-> CheYp + #to keep CheYp in motor range + kpy 3.5 + kmy 10 + + #Motor switching parameters + Kd 3.06 + g1 35 + w 1.02 + + #Volume and avogadro's number for converting num of + #CheYp to [CheYp] in functions + cellVolume 1.41e-15 + _Na 6.02e23 + + #initial number of motors and molecules + motorCount 10000 + CheYCount 2200 + +end parameters + + + +begin molecule types + #Declare the molecules and their possible states + CheY(p~unphos~PHOS) + Motor(state~CW~CCW) +end molecule types + + +begin seed species + #Create instances of the molecules + CheY(p~PHOS) CheYCount + Motor(state~CW) motorCount +end seed species + + +begin observables + #We have to declare observables first, because they are referenced by + #the global functions + Molecules CheYp CheY(p~PHOS) + Molecules MotCW Motor(state~CW) + Molecules MotCCW Motor(state~CCW) +end observables + + +begin functions + + #Here are the functional definitions of the switching rate as a function of the observable + #CheYp. Note that the functional expression gives the rate of a SINGLE motor switching. + #For maximum generality, global functions as evaluated in NFsim add no other terms to the propensity, + #so in this case, the function must also consider the number of motors in one state or the + #other. So to make the propensity proportional to the number of Motors in one state or the + #other, we have to add the multiplication factor of the observables MotCW and MotCCW to the + #beginning of the functional expressions as you see below. Note that because g0 = g1, we only + # need to include the single parameter g1 to get this all to work. + kPlus() = w*exp( (g1/2.0)*((1.0/2.0)-( (CheYp/(cellVolume*_Na*10^-6))/(Kd+(CheYp/(cellVolume*_Na*10^-6)))) )) + kMinus() = w*exp( -(g1/2.0)*((1.0/2.0)-( (CheYp/(cellVolume*_Na*10^-6))/(Kd+(CheYp/(cellVolume*_Na*10^-6)))) )) + +end functions + +begin reaction rules + + #Standard unimolecular state change reactions of CheY - you can turn these on if you + # don't believe that the functions are actually being updated every time CheYp changes. In + # general, you could put the entire signaling network upstream and simulate an entire cell's + # response. + CheY(p~unphos) <-> CheY(p~PHOS) kpy,kmy + + #Here are the functionally defined rate laws, which call the functions + #defined to determine the rate of the reactions. + Motor(state~CW) -> Motor(state~CCW) kPlus() + Motor(state~CCW) -> Motor(state~CW) kMinus() + +end reaction rules + + +generate_network({overwrite=>1}) +simulate_ode({t_start=>0,t_end=>0.2,n_steps=>20}) + diff --git a/Contributed/BNGPlayground_Validation/mwc/README.md b/Contributed/BNGPlayground_Validation/mwc/README.md new file mode 100644 index 00000000..3708c24d --- /dev/null +++ b/Contributed/BNGPlayground_Validation/mwc/README.md @@ -0,0 +1,21 @@ +# mwc + +Monod-Wyman-Changeux model + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- mwc.bngl + +## Tags + +validation, mwc, setoption, h, ox, b diff --git a/Contributed/BNGPlayground_Validation/mwc/metadata.yaml b/Contributed/BNGPlayground_Validation/mwc/metadata.yaml new file mode 100644 index 00000000..63a2624e --- /dev/null +++ b/Contributed/BNGPlayground_Validation/mwc/metadata.yaml @@ -0,0 +1,22 @@ +id: "mwc" +name: "mwc" +description: "Monod-Wyman-Changeux model" +tags: ["validation", "mwc", "setoption", "h", "ox", "b"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: true + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/mwc.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/mwc/mwc.bngl b/Contributed/BNGPlayground_Validation/mwc/mwc.bngl new file mode 100644 index 00000000..4ce98c57 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/mwc/mwc.bngl @@ -0,0 +1,120 @@ +begin model +setOption("NumberPerQuantityUnit",6.0221e23) +begin parameters + # fundamental constants + RT 2.5774863 # product of Universal gas constant and Temperature, kJ/mol + NA 6.0221418e23 # Avogadro's Number, /mol + PI 3.1415927 # Pi, no units + + reacvol 1e-3 # L + log_P_ox 0 + P_ox 10^log_P_ox #torr + conv 7.5*1e3*RT #torr-L/J * J/kJ * kJ/mol = torr/M + + C_ox P_ox/conv # mol/L, M + C_B 2e-3 # M + C_H 60e-6 # M + + L0 1.4e3 # no unit, T0/R0 + K_RT 1.4e3 + + + # values in /torr + #K_50 0.68 + #K_R 5.7 + #K_T 0.14 + + K_Ox 0.68*conv # (/torr*torr/M) + alpha_R 8.4 # 8.38235 = K_R/K_50 + alpha_T 0.2 # 0.20588 = K_T/K_50 + + #K_B_R 1/4.75e-3 # /M + #K_B_T 1/1.03e-4 # /M + + K_B 1/1.03e-4 + beta_R 0.022 + beta_T 1 + + phi 0.5 + EA -10 + + coopRT 0 + coopB 0 + +end parameters +#### +begin compartments + V 3 reacvol +end compartments +#### +begin molecule types + H(m~R~T,g,g,g,g,b) + Ox(h) + B(h) +end molecule types +#### +begin seed species + Ox(h)@V C_ox*NA*reacvol + H(m~T,b,g,g,g,g)@V C_H*NA*reacvol + B(h)@V C_B*NA*reacvol +end seed species +#### +begin energy patterns + H(m~T) -ln(K_RT) + H(g!1).Ox(h!1) -ln(K_Ox) + H(m~T,g!1).Ox(h!1) -ln((1-coopRT)*1+coopRT*alpha_T) + H(m~R,g!1).Ox(h!1) -ln((1-coopRT)*1+coopRT*alpha_R) + H(b!1).B(h!1) -ln(K_B) + H(m~T,b!1).B(h!1) -ln((1-coopB)*1+coopB*beta_T) + H(m~R,b!1).B(h!1) -ln((1-coopB)*1+coopB*beta_R) +end energy patterns +#### +begin observables + #Molecules H_T H(m~T) + #Molecules H_R H(m~R) + Molecules H_ox H(g!1).Ox(h!1) + Molecules H_free H(g) + #Molecules Ox_free Ox(h) + + #Molecules H_free_R H(g,m~R) + #Molecules H_ox_R H(g!1,m~R).Ox(h!1) + #Molecules H_free_T H(g,m~T) + #Molecules H_ox_T H(g!1,m~T).Ox(h!1) + +end observables + +begin functions + #check_RT() = H_T/H_R + #check_Ox() = (H_ox/H_free)*(NA*reacvol/Ox_free)*(1/conv) + #check_OxR() = (H_ox_R/H_free_R)*(NA*reacvol/Ox_free)*(1/conv) + #check_OxT() = (H_ox_T/H_free_T)*(NA*reacvol/Ox_free)*(1/conv) + boundfrac() = H_ox/(H_ox + H_free) +end functions + +begin reaction rules + R_RT: H(m~R) <-> H(m~T) Arrhenius(phi,EA) + R_Ox: H(g) + Ox(h) <-> H(g!1).Ox(h!1) Arrhenius(phi,EA) + R_B: H(b) + B(h) <-> H(b!1).B(h!1) Arrhenius(phi,EA) +end reaction rules +end model + +## actions ## +generate_network({overwrite=>1}) +#writeFile({format=>"net",suffix=>"eval",evaluate_expressions=>1}) +simulate({method=>"ode",t_end=>10,n_steps=>10,print_functions=>1}) + + +# setParameter("coopRT",0) +# setParameter("coopB",0) +# parameter_scan({method=>"ode",t_end=>10,n_steps=>10,print_functions=>1,par_min=>0,par_max=>1,n_scan_pts=>20,reset_conc=>1,parameter=>"log_P_ox",suffix=>"00"}) +# resetConcentrations() + +# setParameter("coopRT",1) +# setParameter("coopB",0) +# parameter_scan({method=>"ode",t_end=>10,n_steps=>10,print_functions=>1,par_min=>0,par_max=>1,n_scan_pts=>20,reset_conc=>1,parameter=>"log_P_ox",suffix=>"10"}) +# resetConcentrations() + +# setParameter("coopRT",1) +# setParameter("coopB",1) +# parameter_scan({method=>"ode",t_end=>10,n_steps=>10,print_functions=>1,par_min=>0,par_max=>1,n_scan_pts=>20,reset_conc=>1,parameter=>"log_P_ox",suffix=>"11"}) +# resetConcentrations() diff --git a/Contributed/BNGPlayground_Validation/nfkb/README.md b/Contributed/BNGPlayground_Validation/nfkb/README.md new file mode 100644 index 00000000..8b6a9d95 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/nfkb/README.md @@ -0,0 +1,21 @@ +# nfkb + +NF-kB signaling pathway + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- nfkb.bngl + +## Tags + +validation, nfkb, tnfr, ikkk, tnf, ikk, ikba, a20, competitor diff --git a/Contributed/BNGPlayground_Validation/nfkb/metadata.yaml b/Contributed/BNGPlayground_Validation/nfkb/metadata.yaml new file mode 100644 index 00000000..a20ed85a --- /dev/null +++ b/Contributed/BNGPlayground_Validation/nfkb/metadata.yaml @@ -0,0 +1,22 @@ +id: "nfkb" +name: "nfkb" +description: "NF-kB signaling pathway" +tags: ["validation", "nfkb", "tnfr", "ikkk", "tnf", "ikk", "ikba", "a20", "competitor"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/nfkb.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/nfkb/nfkb.bngl b/Contributed/BNGPlayground_Validation/nfkb/nfkb.bngl new file mode 100644 index 00000000..570e2dc8 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/nfkb/nfkb.bngl @@ -0,0 +1,238 @@ +# 3 state IKK. A20 acts by inhibiting the activation of IKKK, and accelerating the converstion of active to inactive IKK +begin model +begin molecule types +TNFR(st~a~i) # active/inactive TNFR1 receptors +IKKK(st~n~a) # neutral/active form of IKKK +TNF() +ikk(s~N~I~A) +ikba(loc~c~n,s~o~p,nfkb) # ikba is found in the cytoplasm/nucleus, Phosphorylated/unphosphorylated, and has a binding site for nfkb +nfkb(loc~c~n,ikba) +A20() +competitor() +tA20() +tTarget() +tcompetitor() +tikba() +end molecule types + +begin parameters + +#Constants + TNF_wt 52 #kDa +TNF_conc 0.01923077 # micromolar + +NaV_cyt = 50000/0.04 +NaV_PM = 50000/(0.04*3.3) + +Tot_NFKB log10(50000) +IKK_N log10(50000) +R log10(3e+3) # median number of receptors +K_N log10(1e+5) # number of IKKK molecules +comp = 0 +#h = log10(2) +hn1 = log10(2) +hn2 = log10(2) +hn3 = log10(2) +hn4 = log10(2) +hc1 = log10(2) +hc2 = log10(2) +hc3 = log10(2) +kv = 3.3 +###################################### +#Lipniacki parameters +c_deg log10(2e-4) +k_b log10(1.2e-5)# * (1/conv) +k_f log10(1.2e-3) +k_a log10(1e-5) +k_A20 log10(1e+5) +k_i log10(1e-2) +k_1 log10(6e-10) +k_2 log10(1e+4) +k_3 log10(2e-3) +k_4 log10(1e-3) +k_5 log10(1e-3) +#Robin's parameters +ka1a = log10(0.5) #per micromolar-second +kd1a = log10(0.05) # per second +kc1a = log10(0.074) # per second +kc2a = log10(0.370) # per second +ki1 = log10(0.0026) # per se cond +ke1 = log10(0.00052) #per second +ki3a = log10(0.00067) # per second +ke3a = log10(0.000335) # per second +ke2a = log10(0.01) # per second +c1 = log10(2*10^-7) # per molecule second +c1_t = log10(2*10^-7) +K = log10(0.065*50000/(0.04*3.3)) +Kn1 = log10(0.065*50000/(0.04*3.3)) +Kn2 = log10(0.065*50000/(0.04*3.3)) +Kn3 = log10(0.065*50000/(0.04*3.3)) +Kn4 = log10(0.065*50000/(0.04*3.3)) +K2 = log10(0.065*50000/0.04) +K3 = log10((0.065/2)*50000/0.04) +K4 = log10(0.065*50000/0.04) +c2a_comp = log10(0.5) # per second +c2a_ikb = log10(0.5) # per second +c3_a20 = log10(0.0004) # per second +c3_t = log10(0.0004) # per second +c4a = log10(0.0005) # per second +c4a_comp = log10(0.0005) # per second +kt1a = log10(0.1) # per second +kt2a = log10(0.1) # per second +c3a = log10(0.0003) # per second +c1a = log10(1.4 * 10^-7) # per molecule second +c1a_comp = log10(1.4*10^-7) #per molecule second +c2 = log10(0.5) # per second +c4 = log10(0.0045) # per second +c5a = log10(0.000022) # per second +#c6a = c3a/7 # per second +c6a = log10(4.285e-5) # per second +end parameters + +begin observables + +Molecules nNFKB nfkb(loc~n,ikba) #nuclear nfkb +Molecules cNFKB nfkb(loc~c,ikba) #cytoplasmic nfkb +Molecules cikba ikba(loc~c,s~o,nfkb) #cytoplasmic ikba +Species Ccomplex nfkb(loc~c,ikba!1).ikba(loc~c,s~o,nfkb!1) #cytoplasmic ikba-nfkb complex +Molecules nikba ikba(loc~n,s~o,nfkb) #nuclear ikba +Species ncomplex nfkb(loc~n,ikba!1).ikba(loc~n,s~o,nfkb!1) #nuclear ikba-nfkb +Molecules tIKBA tikba() #ikba transcript +Molecules ikkN ikk(s~N) #neutral ikk +Molecules ikka ikk(s~A) #activated ikk +Molecules ikkai ikk(s~I) #inhibited IKK +Molecules transcriptA20 tA20() #A20 transcript +Molecules oA20 A20() #A20 protein +Molecules pIKBA ikba(loc~c,s~p,nfkb) #phosphorylated cytosolic ikba +Species pIKBANFKB nfkb(loc~c,ikba!1).ikba(loc~c,s~p,nfkb!1) #phosphorylated cytosolic nfkb-ikba complex +Molecules transcriptTarget tTarget() # induced target transcript +Molecules tComp tcompetitor() #competitor transcript +Molecules oComp competitor() #competitor protein +Molecules TNFR_a TNFR(st~a) +Molecules TNFR_i TNFR(st~i) +Molecules IKKK_a IKKK(st~a) +Molecules TNF TNF() +end observables + +begin functions +#Transcriptional rates +ra20() = NaV_cyt*10^c1*(nNFKB/(10^Kn1))^(10^hn1+1) /((nNFKB/(10^Kn1))^(10^hn1+1) + comp*(oComp/10^K2)^(10^hc1+1)+1) + +rComp() = 0#comp*NaV_cyt*10^c1a_comp*(nNFKB/10^Kn2)^(10^hn2+1) /((nNFKB/10^Kn2)^(10^hn2+1) + comp*(oComp/10^K4)^(10^hc2+1)+1) + +#rtT() = NaV_cyt*10^c1_t*(nNFKB/10^Kn3)^(10^hn3+1) /((nNFKB/10^Kn3)^(10^hn3+1) + comp*(oComp/10^K3)^(10^hc3+1)+1) + +rikba() = NaV_cyt*10^c1a*(nNFKB/10^Kn4)^(10^hn4)/(1+(nNFKB/10^Kn4)^(10^hn4)) + + +k_IKKKactivation() TNFR_a*(10^k_a)*(10^k_A20)/(10^k_A20+oA20) +k_IKKactivation() 10^k_1*IKKK_a*IKKK_a +k_IKKintermetiation() (10^k_3/10^k_2)*(10^k_2+oA20) +end functions + +begin seed species +nfkb(loc~c,ikba) 0 +ikba(loc~c,s~o,nfkb) 0 +nfkb(loc~c,ikba!1).ikba(loc~c,s~o,nfkb!1) 10^Tot_NFKB +nfkb(loc~n,ikba) 0 #nuclear nfkb +ikba(loc~n,s~o,nfkb) 0 #nuclear ikba +nfkb(loc~n,ikba!1).ikba(loc~n,s~o,nfkb!1) 0#nuclear ikba-nfkb +tikba() 0 #ikba transcript +ikk(s~N) 10^IKK_N #neutral ikk +ikk(s~A) 0 #activated ikk +ikk(s~I) 0 #inhibited IKK +tA20() 0 #A20 transcript +A20() 0 #A20 protein +ikba(loc~c,s~p,nfkb) 0 #phosphorylated cytosolic ikba +nfkb(loc~c,ikba!1).ikba(loc~c,s~p,nfkb!1) 0 #phosphorylated cytosolic nfkb-ikba complex +tTarget() 0 # induced target transcript +tcompetitor() 0 #competitor transcript +competitor() 0 +TNFR(st~a) 0 +TNFR(st~i) 10^R +IKKK(st~n) 10^K_N +IKKK(st~a) 0 +TNF() 0 +end seed species + + + +begin reaction rules + +#Cytosolic reactions + +TNF() -> 0 10^c_deg +TNFR(st~i) + TNF() -> TNFR(st~a) + TNF() (10^k_b)/((1/52)*50000/0.04) +TNFR(st~a) -> TNFR(st~i) (10^k_f) +IKKK(st~n) -> IKKK(st~a) k_IKKKactivation() +IKKK(st~a) -> IKKK(st~n) 10^(k_i) +ikk(s~N) -> ikk(s~A) k_IKKactivation() +ikk(s~A) -> ikk(s~I) k_IKKintermetiation() +ikk(s~I) -> ikk(s~N) 10^(k_4) + + +# 4. IKK mediated phosphorylation of IKBA +ikba(loc~c,s~o,nfkb) + ikk(s~A) -> ikba(loc~c,s~p,nfkb) + ikk(s~A) (10^kc1a)/NaV_cyt + +# 5. IKBA reversibly binds with NFKB to form a complex +ikba(loc~c,s~o,nfkb) + nfkb(loc~c,ikba) <-> ikba(loc~c,s~o,nfkb!1).nfkb(loc~c,ikba!1) 10^(ka1a)/NaV_cyt,10^kd1a + +# 6. Ikk mediated phosphorylation of the ikba-nfkb complex +ikba(loc~c,s~o,nfkb!1).nfkb(loc~c,ikba!1) + ikk(s~A) -> ikba(loc~c,s~p,nfkb!1).nfkb(loc~c,ikba!1) + ikk(s~A) (10^kc2a)/NaV_cyt + +# 8. shuttling of nfkb between the cytoplasm and the nucleus +nfkb(loc~c,ikba) <-> nfkb(loc~n,ikba) (10^ki1),(10^ke1) + +# 9. shuttling of ikba between the cytoplasm and the nucleus +ikba(loc~c,s~o,nfkb) <-> ikba(loc~n,s~o,nfkb) (10^ki3a),(10^ke3a) + + +# 10. degradation of cytosolic free ikba +ikba(loc~c,s~o,nfkb) -> 0 10^c4a +# 11. degradation of free cytosolic phosphorylated ikba +ikba(loc~c,s~p,nfkb) -> 0 10^kt1a +#12. degradation of phosphorylated ikba-nfkb complex +nfkb(loc~c,ikba!1).ikba(loc~c,s~p,nfkb!1) -> nfkb(loc~c,ikba) 10^kt2a +# degradation of ikba-nfkb complex +nfkb(loc~c,ikba!1).ikba(loc~c,s~o,nfkb!1) -> nfkb(loc~c,ikba) 10^c5a + +#Nuclear reactions + +# 1. Reversible formation of nfkb - ikba complex in the nucleus +nfkb(loc~n,ikba) + ikba(loc~n,s~o,nfkb) <-> nfkb(loc~n,ikba!1).ikba(loc~n,s~o,nfkb!1) (10^ka1a)/NaV_PM,10^kd1a +# 2. Transcription and degradation of tA20() +0 <-> tA20() ra20(),10^c3_a20 +# 3. Transcription and degradation of tTarget() +#0 <-> tTarget() rtT(),10^c3_t +# 4. Transcription and degradation of tCompetitor() +#0 <-> tcompetitor() rComp(),10^c6a +# 5. Production of competitor protein +#tcompetitor() -> tcompetitor() + competitor() 10^c2a_comp +# 6. Degradation of competitor protein +#competitor() -> 0 10^c4a_comp +# 7. Transcription and degradation of tikba +0 <-> tikba() rikba(),10^c3a +# 8. Production of A20 protein +tA20() -> A20() + tA20() 10^c2 +# 9. Degradation of A20 protein +A20() -> 0 10^c4 +# 10. Production of ikba protein, translation occurs in the cytoplasm +tikba() -> tikba() + ikba(loc~c,s~o,nfkb) 10^c2a_ikb +# 11. Degradation of ikba in the nucleus +ikba(loc~n,s~o,nfkb) -> 0 10^c4a +# 12. Export of nfkb.ikba complex +ikba(loc~n,s~o,nfkb!1).nfkb(loc~n,ikba!1) -> ikba(loc~c,s~o,nfkb!1).nfkb(loc~c,ikba!1) 10^ke2a + + +end reaction rules + +end model +generate_network({overwrite=>1}) + +#Equilibration +simulate({method=>"ode",t_start=>0,t_end=>50000,n_steps=>1,atol=>1.0E-10,rtol=>1.0E-12}) +#Simulate +setConcentration("TNF()",((1/52)*50000/0.04)) +simulate({method=>"ode",t_start=>0,t_end=>1200,n_steps=>100,atol=>1.0E-10,rtol=>1.0E-12}) +setConcentration("TNF()",0) +simulate({method=>"ode",t_end=>3600*5,n_steps=>100,atol=>1.0E-10,rtol=>1.0E-12,continue=>1}) diff --git a/Contributed/BNGPlayground_Validation/nfkbillustratingprotocols/README.md b/Contributed/BNGPlayground_Validation/nfkbillustratingprotocols/README.md new file mode 100644 index 00000000..42db76bb --- /dev/null +++ b/Contributed/BNGPlayground_Validation/nfkbillustratingprotocols/README.md @@ -0,0 +1,21 @@ +# nfkb_illustrating_protocols + +NF-kB signaling pathway + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: test-case + +## Files + +- nfkb_illustrating_protocols.bngl + +## Tags + +validation, nfkb, illustrating, protocols, tnfr, ikkk, tnf, ikk, ikba, a20, competitor diff --git a/Contributed/BNGPlayground_Validation/nfkbillustratingprotocols/metadata.yaml b/Contributed/BNGPlayground_Validation/nfkbillustratingprotocols/metadata.yaml new file mode 100644 index 00000000..c9d42b3a --- /dev/null +++ b/Contributed/BNGPlayground_Validation/nfkbillustratingprotocols/metadata.yaml @@ -0,0 +1,22 @@ +id: "nfkb_illustrating_protocols" +name: "nfkb_illustrating_protocols" +description: "NF-kB signaling pathway" +tags: ["validation", "nfkb", "illustrating", "protocols", "tnfr", "ikkk", "tnf", "ikk", "ikba", "a20", "competitor"] +category: "validation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/nfkb_illustrating_protocols.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Validation/nfkbillustratingprotocols/nfkb_illustrating_protocols.bngl b/Contributed/BNGPlayground_Validation/nfkbillustratingprotocols/nfkb_illustrating_protocols.bngl new file mode 100644 index 00000000..3531c86b --- /dev/null +++ b/Contributed/BNGPlayground_Validation/nfkbillustratingprotocols/nfkb_illustrating_protocols.bngl @@ -0,0 +1,247 @@ +# 3 state IKK. A20 acts by inhibiting the activation of IKKK, and accelerating the converstion of active to inactive IKK +begin model +begin molecule types +TNFR(st~a~i) # active/inactive TNFR1 receptors +IKKK(st~n~a) # neutral/active form of IKKK +TNF() +ikk(s~N~I~A) +ikba(loc~c~n,s~o~p,nfkb) # ikba is found in the cytoplasm/nucleus, Phosphorylated/unphosphorylated, and has a binding site for nfkb +nfkb(loc~c~n,ikba) +A20() +competitor() +tA20() +tTarget() +tcompetitor() +tikba() +end molecule types + +begin parameters + +#Constants + TNF_wt 52 #kDa +TNF_conc 0.01923077 # micromolar + +NaV_cyt = 50000/0.04 +NaV_PM = 50000/(0.04*3.3) + +Tot_NFKB log10(50000) +IKK_N log10(50000) +R log10(3e+3) # median number of receptors +K_N log10(1e+5) # number of IKKK molecules +comp = 0 +#h = log10(2) +hn1 = log10(2) +hn2 = log10(2) +hn3 = log10(2) +hn4 = log10(2) +hc1 = log10(2) +hc2 = log10(2) +hc3 = log10(2) +kv = 3.3 +###################################### +#Lipniacki parameters +c_deg log10(2e-4) +k_b log10(1.2e-5)# * (1/conv) +k_f log10(1.2e-3) +k_a log10(1e-5) +k_A20 log10(1e+5) +k_i log10(1e-2) +k_1 log10(6e-10) +k_2 log10(1e+4) +k_3 log10(2e-3) +k_4 log10(1e-3) +k_5 log10(1e-3) +#Robin's parameters +ka1a = log10(0.5) #per micromolar-second +kd1a = log10(0.05) # per second +kc1a = log10(0.074) # per second +kc2a = log10(0.370) # per second +ki1 = log10(0.0026) # per se cond +ke1 = log10(0.00052) #per second +ki3a = log10(0.00067) # per second +ke3a = log10(0.000335) # per second +ke2a = log10(0.01) # per second +c1 = log10(2*10^-7) # per molecule second +c1_t = log10(2*10^-7) +K = log10(0.065*50000/(0.04*3.3)) +Kn1 = log10(0.065*50000/(0.04*3.3)) +Kn2 = log10(0.065*50000/(0.04*3.3)) +Kn3 = log10(0.065*50000/(0.04*3.3)) +Kn4 = log10(0.065*50000/(0.04*3.3)) +K2 = log10(0.065*50000/0.04) +K3 = log10((0.065/2)*50000/0.04) +K4 = log10(0.065*50000/0.04) +c2a_comp = log10(0.5) # per second +c2a_ikb = log10(0.5) # per second +c3_a20 = log10(0.0004) # per second +c3_t = log10(0.0004) # per second +c4a = log10(0.0005) # per second +c4a_comp = log10(0.0005) # per second +kt1a = log10(0.1) # per second +kt2a = log10(0.1) # per second +c3a = log10(0.0003) # per second +c1a = log10(1.4 * 10^-7) # per molecule second +c1a_comp = log10(1.4*10^-7) #per molecule second +c2 = log10(0.5) # per second +c4 = log10(0.0045) # per second +c5a = log10(0.000022) # per second +#c6a = c3a/7 # per second +c6a = log10(4.285e-5) # per second +end parameters + +begin observables + +Molecules nNFKB nfkb(loc~n,ikba) #nuclear nfkb +Molecules cNFKB nfkb(loc~c,ikba) #cytoplasmic nfkb +Molecules cikba ikba(loc~c,s~o,nfkb) #cytoplasmic ikba +Species Ccomplex nfkb(loc~c,ikba!1).ikba(loc~c,s~o,nfkb!1) #cytoplasmic ikba-nfkb complex +Molecules nikba ikba(loc~n,s~o,nfkb) #nuclear ikba +Species ncomplex nfkb(loc~n,ikba!1).ikba(loc~n,s~o,nfkb!1) #nuclear ikba-nfkb +Molecules tIKBA tikba() #ikba transcript +Molecules ikkN ikk(s~N) #neutral ikk +Molecules ikka ikk(s~A) #activated ikk +Molecules ikkai ikk(s~I) #inhibited IKK +Molecules transcriptA20 tA20() #A20 transcript +Molecules oA20 A20() #A20 protein +Molecules pIKBA ikba(loc~c,s~p,nfkb) #phosphorylated cytosolic ikba +Species pIKBANFKB nfkb(loc~c,ikba!1).ikba(loc~c,s~p,nfkb!1) #phosphorylated cytosolic nfkb-ikba complex +Molecules transcriptTarget tTarget() # induced target transcript +Molecules tComp tcompetitor() #competitor transcript +Molecules oComp competitor() #competitor protein +Molecules TNFR_a TNFR(st~a) +Molecules TNFR_i TNFR(st~i) +Molecules IKKK_a IKKK(st~a) +Molecules TNF TNF() +end observables + +begin functions +#Transcriptional rates +ra20() = NaV_cyt*10^c1*(nNFKB/(10^Kn1))^(10^hn1+1) /((nNFKB/(10^Kn1))^(10^hn1+1) + comp*(oComp/10^K2)^(10^hc1+1)+1) + +rComp() = 0#comp*NaV_cyt*10^c1a_comp*(nNFKB/10^Kn2)^(10^hn2+1) /((nNFKB/10^Kn2)^(10^hn2+1) + comp*(oComp/10^K4)^(10^hc2+1)+1) + +#rtT() = NaV_cyt*10^c1_t*(nNFKB/10^Kn3)^(10^hn3+1) /((nNFKB/10^Kn3)^(10^hn3+1) + comp*(oComp/10^K3)^(10^hc3+1)+1) + +rikba() = NaV_cyt*10^c1a*(nNFKB/10^Kn4)^(10^hn4)/(1+(nNFKB/10^Kn4)^(10^hn4)) + + +k_IKKKactivation() TNFR_a*(10^k_a)*(10^k_A20)/(10^k_A20+oA20) +k_IKKactivation() 10^k_1*IKKK_a*IKKK_a +k_IKKintermetiation() (10^k_3/10^k_2)*(10^k_2+oA20) +end functions + +begin seed species +nfkb(loc~c,ikba) 0 +ikba(loc~c,s~o,nfkb) 0 +nfkb(loc~c,ikba!1).ikba(loc~c,s~o,nfkb!1) 10^Tot_NFKB +nfkb(loc~n,ikba) 0 #nuclear nfkb +ikba(loc~n,s~o,nfkb) 0 #nuclear ikba +nfkb(loc~n,ikba!1).ikba(loc~n,s~o,nfkb!1) 0#nuclear ikba-nfkb +tikba() 0 #ikba transcript +ikk(s~N) 10^IKK_N #neutral ikk +ikk(s~A) 0 #activated ikk +ikk(s~I) 0 #inhibited IKK +tA20() 0 #A20 transcript +A20() 0 #A20 protein +ikba(loc~c,s~p,nfkb) 0 #phosphorylated cytosolic ikba +nfkb(loc~c,ikba!1).ikba(loc~c,s~p,nfkb!1) 0 #phosphorylated cytosolic nfkb-ikba complex +tTarget() 0 # induced target transcript +tcompetitor() 0 #competitor transcript +competitor() 0 +TNFR(st~a) 0 +TNFR(st~i) 10^R +IKKK(st~n) 10^K_N +IKKK(st~a) 0 +TNF() 0 +end seed species + + + +begin reaction rules + +#Cytosolic reactions + +TNF() -> 0 10^c_deg +TNFR(st~i) + TNF() -> TNFR(st~a) + TNF() (10^k_b)/((1/52)*50000/0.04) +TNFR(st~a) -> TNFR(st~i) (10^k_f) +IKKK(st~n) -> IKKK(st~a) k_IKKKactivation() +IKKK(st~a) -> IKKK(st~n) 10^(k_i) +ikk(s~N) -> ikk(s~A) k_IKKactivation() +ikk(s~A) -> ikk(s~I) k_IKKintermetiation() +ikk(s~I) -> ikk(s~N) 10^(k_4) + + +# 4. IKK mediated phosphorylation of IKBA +ikba(loc~c,s~o,nfkb) + ikk(s~A) -> ikba(loc~c,s~p,nfkb) + ikk(s~A) (10^kc1a)/NaV_cyt + +# 5. IKBA reversibly binds with NFKB to form a complex +ikba(loc~c,s~o,nfkb) + nfkb(loc~c,ikba) <-> ikba(loc~c,s~o,nfkb!1).nfkb(loc~c,ikba!1) 10^(ka1a)/NaV_cyt,10^kd1a + +# 6. Ikk mediated phosphorylation of the ikba-nfkb complex +ikba(loc~c,s~o,nfkb!1).nfkb(loc~c,ikba!1) + ikk(s~A) -> ikba(loc~c,s~p,nfkb!1).nfkb(loc~c,ikba!1) + ikk(s~A) (10^kc2a)/NaV_cyt + +# 8. shuttling of nfkb between the cytoplasm and the nucleus +nfkb(loc~c,ikba) <-> nfkb(loc~n,ikba) (10^ki1),(10^ke1) + +# 9. shuttling of ikba between the cytoplasm and the nucleus +ikba(loc~c,s~o,nfkb) <-> ikba(loc~n,s~o,nfkb) (10^ki3a),(10^ke3a) + + +# 10. degradation of cytosolic free ikba +ikba(loc~c,s~o,nfkb) -> 0 10^c4a +# 11. degradation of free cytosolic phosphorylated ikba +ikba(loc~c,s~p,nfkb) -> 0 10^kt1a +#12. degradation of phosphorylated ikba-nfkb complex +nfkb(loc~c,ikba!1).ikba(loc~c,s~p,nfkb!1) -> nfkb(loc~c,ikba) 10^kt2a +# degradation of ikba-nfkb complex +nfkb(loc~c,ikba!1).ikba(loc~c,s~o,nfkb!1) -> nfkb(loc~c,ikba) 10^c5a + +#Nuclear reactions + +# 1. Reversible formation of nfkb - ikba complex in the nucleus +nfkb(loc~n,ikba) + ikba(loc~n,s~o,nfkb) <-> nfkb(loc~n,ikba!1).ikba(loc~n,s~o,nfkb!1) (10^ka1a)/NaV_PM,10^kd1a +# 2. Transcription and degradation of tA20() +0 <-> tA20() ra20(),10^c3_a20 +# 3. Transcription and degradation of tTarget() +#0 <-> tTarget() rtT(),10^c3_t +# 4. Transcription and degradation of tCompetitor() +#0 <-> tcompetitor() rComp(),10^c6a +# 5. Production of competitor protein +#tcompetitor() -> tcompetitor() + competitor() 10^c2a_comp +# 6. Degradation of competitor protein +#competitor() -> 0 10^c4a_comp +# 7. Transcription and degradation of tikba +0 <-> tikba() rikba(),10^c3a +# 8. Production of A20 protein +tA20() -> A20() + tA20() 10^c2 +# 9. Degradation of A20 protein +A20() -> 0 10^c4 +# 10. Production of ikba protein, translation occurs in the cytoplasm +tikba() -> tikba() + ikba(loc~c,s~o,nfkb) 10^c2a_ikb +# 11. Degradation of ikba in the nucleus +ikba(loc~n,s~o,nfkb) -> 0 10^c4a +# 12. Export of nfkb.ikba complex +ikba(loc~n,s~o,nfkb!1).nfkb(loc~n,ikba!1) -> ikba(loc~c,s~o,nfkb!1).nfkb(loc~c,ikba!1) 10^ke2a + + +end reaction rules +end model +begin protocol +#Equilibration +simulate({method=>"ode",t_start=>0,t_end=>50000,n_steps=>1,atol=>1.0E-10,rtol=>1.0E-12}) +#Simulate +setConcentration("TNF()",((1/52)*50000/0.04)) +simulate({method=>"ode",t_start=>0,t_end=>1200,n_steps=>100,atol=>1.0E-10,rtol=>1.0E-12}) +setConcentration("TNF()",0) +simulate({method=>"ode",t_end=>3600*5,n_steps=>100,atol=>1.0E-10,rtol=>1.0E-12,continue=>1}) +end protocol + +generate_network({}) + +parameter_scan({method=>"protocol",parameter=>"R",par_scan_vals=>[2,3.4,4,5]}) + +#simulate_protocol({}) + + + + diff --git a/Contributed/BNGPlayground_Validation/recdim/README.md b/Contributed/BNGPlayground_Validation/recdim/README.md new file mode 100644 index 00000000..44281b98 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/recdim/README.md @@ -0,0 +1,21 @@ +# rec_dim + +Ligand-receptor binding + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: test-case + +## Files + +- rec_dim.bngl + +## Tags + +validation, rec, dim, lig, writemdl, generate_network, simulate diff --git a/Contributed/BNGPlayground_Validation/recdim/metadata.yaml b/Contributed/BNGPlayground_Validation/recdim/metadata.yaml new file mode 100644 index 00000000..770914e6 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/recdim/metadata.yaml @@ -0,0 +1,22 @@ +id: "rec_dim" +name: "rec_dim" +description: "Ligand-receptor binding" +tags: ["validation", "rec", "dim", "lig", "writemdl", "generate_network", "simulate"] +category: "validation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/rec_dim.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Validation/recdim/rec_dim.bngl b/Contributed/BNGPlayground_Validation/recdim/rec_dim.bngl new file mode 100644 index 00000000..fd248e42 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/recdim/rec_dim.bngl @@ -0,0 +1,39 @@ +begin model +begin parameters + Lig_tot 6.0e3 + Rec_tot 4.0e2 + kp1 1.32845238e-7 # units: /molecule/s + km1 0 # units: /s + kp2 2.5e-1 # units: /molecule/s + km2 0 # units: /s +end parameters + +begin molecule types +Lig(l,l) +Rec(a) +end molecule types + +begin species + Lig(l,l) Lig_tot + Rec(a) Rec_tot +end species + +begin observables + Molecules RecFree Rec(a) + Molecules RecBound Rec(a!+) + Species Dimers Rec().Rec() +end observables + +begin reaction rules + # Ligand-receptor binding + R1: Rec(a) + Lig(l,l) <-> Rec(a!1).Lig(l!1,l) kp1, km1 + + # Receptor-aggregation + R2: Rec(a) + Lig(l,l!+) <-> Rec(a!2).Lig(l!2,l!+) kp2, km2 +end reaction rules + +end model + +writeMDL() +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>5,n_steps=>1000}) diff --git a/Contributed/BNGPlayground_Validation/recdimcomp/README.md b/Contributed/BNGPlayground_Validation/recdimcomp/README.md new file mode 100644 index 00000000..7f3ade3e --- /dev/null +++ b/Contributed/BNGPlayground_Validation/recdimcomp/README.md @@ -0,0 +1,21 @@ +# rec_dim_comp + +name dimension volume contained_by + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: test-case + +## Files + +- rec_dim_comp.bngl + +## Tags + +validation, rec, dim, comp, kp1, kp2, lig, writemdl, generate_network, simulate diff --git a/Contributed/BNGPlayground_Validation/recdimcomp/metadata.yaml b/Contributed/BNGPlayground_Validation/recdimcomp/metadata.yaml new file mode 100644 index 00000000..886ff55d --- /dev/null +++ b/Contributed/BNGPlayground_Validation/recdimcomp/metadata.yaml @@ -0,0 +1,22 @@ +id: "rec_dim_comp" +name: "rec_dim_comp" +description: "name dimension volume contained_by" +tags: ["validation", "rec", "dim", "comp", "kp1", "kp2", "lig", "writemdl", "generate_network", "simulate"] +category: "validation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/rec_dim_comp.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Validation/recdimcomp/rec_dim_comp.bngl b/Contributed/BNGPlayground_Validation/recdimcomp/rec_dim_comp.bngl new file mode 100644 index 00000000..63c41dbc --- /dev/null +++ b/Contributed/BNGPlayground_Validation/recdimcomp/rec_dim_comp.bngl @@ -0,0 +1,52 @@ +begin model +begin parameters + NaV 6.022e23*1e-15 # molecule -> concentration conversion assuming volume in um^3 (fL) + Lig_tot 6.0e3 # molecules + Rec_tot 4.0e2 # molecules + kp1 (1e5)/NaV # (L/mol/s) -> um^3/molec/s + km1 0.01 # /s + kp2 (1e3)/NaV # (L/mol/s) -> um^3/molec/s + km2 0.01 # /s + vol_wall 0.88 # um^3 + vol_EC 39 # um^3 + vol_PM 0.01 # um^3 + vol_CP 1 # um^3 +end parameters + +begin compartments +# name dimension volume contained_by + wall 2 vol_wall + EC 3 vol_EC wall + PM 2 vol_PM EC + CP 3 vol_CP PM +end compartments + +begin molecule types +Lig(l,l) +Rec(a) +end molecule types + +begin species + @EC:Lig(l,l) Lig_tot + @PM:Rec(a) Rec_tot +end species + +begin observables + Molecules RecFree Rec(a) + Molecules RecBound Rec(a!+) + Species Dimers Rec().Rec() +end observables + +begin reaction rules + # Ligand-receptor binding + R1: Rec(a) + Lig(l,l) <-> Rec(a!1).Lig(l!1,l) kp1, km1 + + # Receptor-aggregation + R2: Rec(a) + Lig(l,l!+) <-> Rec(a!2).Lig(l!2,l!+) kp2, km2 +end reaction rules + +end model + +writeMDL() +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>5,n_steps=>1000}) diff --git a/Contributed/BNGPlayground_Validation/simplesbmlimport/README.md b/Contributed/BNGPlayground_Validation/simplesbmlimport/README.md new file mode 100644 index 00000000..3e897b7f --- /dev/null +++ b/Contributed/BNGPlayground_Validation/simplesbmlimport/README.md @@ -0,0 +1,21 @@ +# simple_sbml_import + +SBML import test + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: test-case + +## Files + +- simple_sbml_import.bngl + +## Tags + +validation, simple, sbml, import, readfile, generate_network, simulate diff --git a/Contributed/BNGPlayground_Validation/simplesbmlimport/metadata.yaml b/Contributed/BNGPlayground_Validation/simplesbmlimport/metadata.yaml new file mode 100644 index 00000000..962e4340 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/simplesbmlimport/metadata.yaml @@ -0,0 +1,22 @@ +id: "simple_sbml_import" +name: "simple_sbml_import" +description: "SBML import test" +tags: ["validation", "simple", "sbml", "import", "readfile", "generate_network", "simulate"] +category: "validation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/simple_sbml_import.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/Contributed/BNGPlayground_Validation/simplesbmlimport/simple_sbml_import.bngl b/Contributed/BNGPlayground_Validation/simplesbmlimport/simple_sbml_import.bngl new file mode 100644 index 00000000..a2588de6 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/simplesbmlimport/simple_sbml_import.bngl @@ -0,0 +1,3 @@ +readFile({file=>"BIOMD0000000010.xml",atomize=>1}) +generate_network({overwrite=>1}) +simulate({method=>"ode",t_start=>0,t_end=>7200,n_steps=>1000}) diff --git a/Contributed/BNGPlayground_Validation/simplesystem/README.md b/Contributed/BNGPlayground_Validation/simplesystem/README.md new file mode 100644 index 00000000..5cac73e3 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/simplesystem/README.md @@ -0,0 +1,21 @@ +# simple_system + +Simple binding system + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- simple_system.bngl + +## Tags + +validation, simple, system, x, y diff --git a/Contributed/BNGPlayground_Validation/simplesystem/metadata.yaml b/Contributed/BNGPlayground_Validation/simplesystem/metadata.yaml new file mode 100644 index 00000000..2e3cd412 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/simplesystem/metadata.yaml @@ -0,0 +1,22 @@ +id: "simple_system" +name: "simple_system" +description: "Simple binding system" +tags: ["validation", "simple", "system", "x", "y"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/simple_system.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/simplesystem/simple_system.bngl b/Contributed/BNGPlayground_Validation/simplesystem/simple_system.bngl new file mode 100644 index 00000000..95259787 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/simplesystem/simple_system.bngl @@ -0,0 +1,133 @@ +# simple_system.bngl +# +# An example model for running NFsim to get you started. +# +# Comments in BNGL are always preceded with a pound (#) character, so that any text that +# follows a pound character is ignored. The model file below is commented to help you +# understand the main parts of a BNGL file. Note that some commands at the end of the +# model file that allow you to run the model with different simulators are commented out. +# To use these other options, simply remove the pound character before the command. + + +# The first part of a BNGL file is the parameters block, where you can define the rates +# of equations or the starting numbers of any of the molecular species. +begin parameters + kon 10 + koff 5 + kcat 0.7 + dephos 0.5 +end parameters + + +# Next, we define the set of molecule types in the system. This is a declaration only, so +# we don't specify how many of each molecules there are, and we have to provide a list +# of all possible state values for each component of each molecule with a tilda (~) +# character. +begin molecule types + X(y,p~0~1) + Y(x) +end molecule types + + +# Here is where we declare the starting molecules in our simulation. Each component +# must be assigned a single state value, and we have to provide how many of each +# molecule exists in the system. The number of starting molecules can also be +# specified with one of the parameters defined earlier +begin seed species + X(y,p~0) 5000 + X(y,p~1) 0 + Y(x) 500 +end seed species + + +# Observables allow us to define simulation output. Here we have declared a number +# of Molecules observables with the given name and pattern. If you look at the output +# gdat files that are generated from simulations of this model, you will see that they +# each have a count for every simulation time. +begin observables + Molecules X_free X(p~0,y) + Molecules X_p_total X(p~1) + Molecules Xp_free X(p~1,y) + Molecules XY X(y!1).Y(x!1) + Molecules Ytotal Y() + Molecules Xtotal X() +end observables + + +# This model does not require any user-defined functions, but you would +# declare them here if you needed to. See the user manual for help with +# declaring your own functions. +begin functions + +end functions + + +# This is a very simple system indeed. The only rules that are defined +# tell us that X can bind Y if X is dephosphorylated. Then the XY complex +# can either disassociate, or a phosphorylation reaction can occur. Finally, X +# will dephosphorylate regardless of whether or not it is bound to Y, although +# for these rules, it will always be unbound to Y if it is phosphorylated. +# Here are the rule definitions: +begin reaction rules + X(y,p~0) + Y(x) -> X(y!1,p~0).Y(x!1) kon + X(y!1,p~0).Y(x!1) -> X(y,p~0) + Y(x) koff + X(y!1,p~0).Y(x!1) -> X(y,p~1) + Y(x) kcat + + X(p~1) -> X(p~0) dephos +end reaction rules + + +# COMMAND FOR RUNNING OR PROCESSING THIS BNGL FILE + +# Now we can run NFsim directly from BioNetGen using the simulate_nf command, where +# "t_end" is the simulation time, "n_steps" is the number of steps, and "suffix" is +# the filename ending of this run. The suffix allows us to run the same model +# multiple times here, and distinguish between all the runs with different "suffix"s. +# Note that this step will also automatically create an NFsim readable XML model +# specification file. + +# simulate_nf({t_end=>100,n_steps=>50}); + +# We can also use the keyword "param" to pass any command line arguments to NFsim +# that we want. As an example, we can rerun the model with the verbose (-v) option +# and the universal traversal limit (-utl) option. See the manual for a description +# of Universal Traversal Limits, and other command line arguments. + +# simulate_nf({suffix=>nfVerbose,t_end=>100,n_steps=>50,param=>"-v -utl 3"}); + +# If we want to run NFsim directly from the console, and ignore BioNetGen altogether +# after the BNGL file has been processed, we need to include the "writeXML" command. +# This will write out your model to "simple_system.xml". In general, the XML file +# name will match the BNGL file name, with an XML extension instead of .bngl. + +writeXML() + +# If you uncomment and use this command here, then you can run NFsim directly by +# calling the NFsim_[version] executable from the command-line, where [version] is +# the NFsim version that matches your operating system. See the user manual for more +# help. + +# Finally, if we want to simulate this model with ordinary differential equations (ODEs) +# of with Gillespie's stochastic simulation algorithm (SSA) in BioNetGen, we have +# to first generate the reaction network with the following command. The overwrite +# option (which you can remove) is set to 1 here so that every time this is run, the +# reaction network output file will be regenerated. + +generate_network({overwrite=>1}) + +# Then we can call the simulate_ode or simulate_ssa methods to run the model file. Again, +# the suffix parameter is used to name the output of the simulations. Note also that +# between BioNetGen ODE and SSA simulation commands, we have to reset the molecule concentrations. +# this is needed because BioNetGen allows you to restart a simulation from the end of +# a previous simulation. While this does not apply to NFsim, you can still change parameters +# mid-simulation by using an RNF script (see example.rnf file in the same directory as this +# model). + +simulate_ode({t_end=>100,n_steps=>50}) + +# resetConcentrations() +# simulate_ssa({suffix=>ssa,t_end=>100,n_steps=>50}) + + + + diff --git a/Contributed/BNGPlayground_Validation/testANGsynthesissimple/README.md b/Contributed/BNGPlayground_Validation/testANGsynthesissimple/README.md new file mode 100644 index 00000000..7061ae36 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testANGsynthesissimple/README.md @@ -0,0 +1,21 @@ +# test_ANG_synthesis_simple + +Synthesis network test + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- test_ANG_synthesis_simple.bngl + +## Tags + +validation, test, ang, synthesis, simple, a, b, c, source, source2, generate_network diff --git a/Contributed/BNGPlayground_Validation/testANGsynthesissimple/metadata.yaml b/Contributed/BNGPlayground_Validation/testANGsynthesissimple/metadata.yaml new file mode 100644 index 00000000..6b35b5de --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testANGsynthesissimple/metadata.yaml @@ -0,0 +1,22 @@ +id: "test_ANG_synthesis_simple" +name: "test_ANG_synthesis_simple" +description: "Synthesis network test" +tags: ["validation", "test", "ang", "synthesis", "simple", "a", "b", "c", "source", "source2", "generate_network"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/test_ANG_synthesis_simple.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/testANGsynthesissimple/test_ANG_synthesis_simple.bngl b/Contributed/BNGPlayground_Validation/testANGsynthesissimple/test_ANG_synthesis_simple.bngl new file mode 100644 index 00000000..c5f0c338 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testANGsynthesissimple/test_ANG_synthesis_simple.bngl @@ -0,0 +1,31 @@ +#Testing automatic network generation for CVODE +begin model +begin parameters +k1 1 +end parameters +begin molecule types +A() +B() +C() +Source() +Source2() +end molecule types +begin seed species +$Source 1 +Source2 1 +end seed species +begin reaction rules +0 -> A() k1 +Source() -> B() k1 +Source2() -> Source2() + C() k1 +end reaction rules +begin observables +Molecules add_molecule A() +Molecules constant_source B() +Molecules non_constant_source C() +end observables + +end model + +generate_network({overwrite=>1}) +simulate({method=>"ode",t_start=>0,t_end=>40,n_steps=>100}) diff --git a/Contributed/BNGPlayground_Validation/testMM/README.md b/Contributed/BNGPlayground_Validation/testMM/README.md new file mode 100644 index 00000000..1feb1593 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testMM/README.md @@ -0,0 +1,21 @@ +# test_MM + +Kinetic constants + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- test_MM.bngl + +## Tags + +validation, test, mm, e, s, p, generate_network diff --git a/Contributed/BNGPlayground_Validation/testMM/metadata.yaml b/Contributed/BNGPlayground_Validation/testMM/metadata.yaml new file mode 100644 index 00000000..f3780771 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testMM/metadata.yaml @@ -0,0 +1,22 @@ +id: "test_MM" +name: "test_MM" +description: "Kinetic constants" +tags: ["validation", "test", "mm", "e", "s", "p", "generate_network"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/test_MM.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/testMM/test_MM.bngl b/Contributed/BNGPlayground_Validation/testMM/test_MM.bngl new file mode 100644 index 00000000..d10e160e --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testMM/test_MM.bngl @@ -0,0 +1,31 @@ +begin parameters + # Kinetic constants + kcat 1 + Km 1 +end parameters + +begin molecule types + E() + S() + P() +end molecule types + +begin seed species + S() 100 + E() 100 + P() 0 +end seed species + +begin reaction rules + S() + E() -> P() + E() MM(kcat,Km) +end reaction rules + +begin observables + Molecules St S() + Molecules Pt P() + Molecules Et E() +end observables + +## actions ## +generate_network({overwrite=>1}) +simulate_ode({t_end=>5,n_steps=>20,atol=>1e-8,rtol=>1e-8,sparse=>1}) diff --git a/Contributed/BNGPlayground_Validation/testfixed/README.md b/Contributed/BNGPlayground_Validation/testfixed/README.md new file mode 100644 index 00000000..07761b2b --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testfixed/README.md @@ -0,0 +1,21 @@ +# test_fixed + +# actions ## + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- test_fixed.bngl + +## Tags + +validation, test, fixed, a, b, generate_network, simulate diff --git a/Contributed/BNGPlayground_Validation/testfixed/metadata.yaml b/Contributed/BNGPlayground_Validation/testfixed/metadata.yaml new file mode 100644 index 00000000..21a8cf4e --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testfixed/metadata.yaml @@ -0,0 +1,22 @@ +id: "test_fixed" +name: "test_fixed" +description: "# actions ##" +tags: ["validation", "test", "fixed", "a", "b", "generate_network", "simulate"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/test_fixed.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/testfixed/test_fixed.bngl b/Contributed/BNGPlayground_Validation/testfixed/test_fixed.bngl new file mode 100644 index 00000000..c27110b0 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testfixed/test_fixed.bngl @@ -0,0 +1,24 @@ +begin model +begin parameters + kp1 1 + km1 100 +end parameters + +begin molecule types + A(a) + B(b) +end molecule types + +begin seed species + $A(a) 1 + B(b) 1 +end seed species + +begin reaction rules + A(a) + B(b) -> A(a!1).B(b!1) kp1 +end reaction rules +end model + +## actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>10,n_steps=>20}) diff --git a/Contributed/BNGPlayground_Validation/testmratio/README.md b/Contributed/BNGPlayground_Validation/testmratio/README.md new file mode 100644 index 00000000..45db582c --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testmratio/README.md @@ -0,0 +1,21 @@ +# test_mratio + +Reaction ratio test + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- test_mratio.bngl + +## Tags + +validation, test, mratio, a, b, c_theory, c_upper, c_lower diff --git a/Contributed/BNGPlayground_Validation/testmratio/metadata.yaml b/Contributed/BNGPlayground_Validation/testmratio/metadata.yaml new file mode 100644 index 00000000..c6df3f00 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testmratio/metadata.yaml @@ -0,0 +1,22 @@ +id: "test_mratio" +name: "test_mratio" +description: "Reaction ratio test" +tags: ["validation", "test", "mratio", "a", "b", "c_theory", "c_upper", "c_lower"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/test_mratio.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/testmratio/test_mratio.bngl b/Contributed/BNGPlayground_Validation/testmratio/test_mratio.bngl new file mode 100644 index 00000000..d0ec3ebb --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testmratio/test_mratio.bngl @@ -0,0 +1,40 @@ +begin model +begin parameters + AT = 1000 + BT = 10000 + Keq = 1e-4 + # + n = min(AT,BT) + m = max(AT,BT) + a = -n + b = m-n+1 + z = -1/Keq + # + U1_U0 = (-1./b)*mratio(a,b,z) + U2_U1 = (-1./(b+1))*mratio(a+1,b+1,z) + C_mean = -a*(1-z*U1_U0) + C_sdev = sqrt(a*(a+1)*z*z*U2_U1*U1_U0-a*z*U1_U0*(1.0+a*z*U1_U0)) +end parameters +begin molecule types + A(b) + B(a) +end molecule types +begin seed species + A(b) AT + B(a) BT +end seed species +begin observables + Molecules C_obs A(b!1).B(a!1) +end observables +begin functions + C_theory() = C_mean + C_upper() = C_mean + 2*C_sdev + C_lower() = C_mean - 2*C_sdev +end functions +begin reaction rules + A(b) + B(a) <-> A(b!1).B(a!1) Keq,1 +end reaction rules +end model + +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>10,n_steps=>1000,print_functions=>1}) diff --git a/Contributed/BNGPlayground_Validation/testnetworkgen/README.md b/Contributed/BNGPlayground_Validation/testnetworkgen/README.md new file mode 100644 index 00000000..cb25f6dd --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testnetworkgen/README.md @@ -0,0 +1,21 @@ +# test_network_gen + +fceri model with network generation + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: test-case + +## Files + +- test_network_gen.bngl + +## Tags + +validation, test, network, gen, lig, lyn, syk, rec diff --git a/Contributed/BNGPlayground_Validation/testnetworkgen/metadata.yaml b/Contributed/BNGPlayground_Validation/testnetworkgen/metadata.yaml new file mode 100644 index 00000000..7c113221 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testnetworkgen/metadata.yaml @@ -0,0 +1,22 @@ +id: "test_network_gen" +name: "test_network_gen" +description: "fceri model with network generation" +tags: ["validation", "test", "network", "gen", "lig", "lyn", "syk", "rec"] +category: "validation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/test_network_gen.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/testnetworkgen/test_network_gen.bngl b/Contributed/BNGPlayground_Validation/testnetworkgen/test_network_gen.bngl new file mode 100644 index 00000000..cb6e52eb --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testnetworkgen/test_network_gen.bngl @@ -0,0 +1,118 @@ +#Testing automatic network generation given the appropriate method, using the fceri.bngl model +begin model +begin parameters + Lig_tot 6.0e3 # units: molecules + Rec_tot 4.0e2 # units: molecules + Lyn_tot 2.8e1 # units: molecules + Syk_tot 4.0e2 # units: molecules + + kp1 1.32845238e-7 # units: /molecule/s + km1 0 # units: /s + kp2 2.5e-1 # units: /molecule/s + km2 0 # units: /s + kpL 5e-2 # units: /molecule/s + kmL 20 # units: /s + kpLs 5e-2 # units: /molecule/s + kmLs 0.12 # units: /s + kpS 6e-2 # units: /molecule/s + kmS 0.13 # units: /s + kpSs 6e-2 # units: /molecule/s + kmSs 0.13 # units: /s + pLb 30 # units: /s + pLbs 100 # units: /s + pLg 1 # units: /s + pLgs 3 # units: /s + pLS 30 # units: /s + pLSs 100 # units: /s + pSS 100 # units: /s + pSSs 200 # units: /s + dm 20 # units: /s + dc 20 # units: /s +end parameters + +begin seed species + Lig(l,l) Lig_tot + Lyn(U,SH2) Lyn_tot + Syk(tSH2,l~Y,a~Y) Syk_tot + Rec(a,b~Y,g~Y) Rec_tot +end seed species + +begin reaction rules + # Ligand-receptor binding + R1: Rec(a) + Lig(l,l) <-> Rec(a!1).Lig(l!1,l) kp1, km1 + + # Receptor-aggregation + R2: Rec(a) + Lig(l,l!+) <-> Rec(a!2).Lig(l!2,l!+) kp2, km2 + + # Constitutive Lyn-receptor binding + R3: Rec(b~Y) + Lyn(U,SH2) <-> Rec(b~Y!1).Lyn(U!1,SH2) kpL, kmL + + # Transphosphorylation of beta by constitutive Lyn + R4: Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~Y) -> Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~pY) pLb + + # Transphosphorylation of gamma by constitutive Lyn + R5: Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~Y) -> Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY) pLg + + # Lyn-receptor binding through SH2 domain + R6: Rec(b~pY) + Lyn(U,SH2) <-> Rec(b~pY!1).Lyn(U,SH2!1) kpLs, kmLs + + # Transphosphorylation of beta by SH2-bound Lyn + R7: Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,b~Y) -> Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,b~pY) pLbs + + # Transphosphorylation of gamma by SH2-bound Lyn + R8: Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~Y) -> Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY) pLgs + + # Syk-receptor binding through tSH2 domain + R9: Rec(g~pY) + Syk(tSH2) <-> Rec(g~pY!1).Syk(tSH2!1) kpS, kmS + + # Transphosphorylation of Syk by constitutive Lyn + R10: Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~Y) -> \ + Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~pY) pLS + + # Transphosphorylation of Syk by SH2-bound Lyn + R11: Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~Y) -> \ + Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~pY) pLSs + + # Transphosphorylation of Syk by Syk not phosphorylated on aloop + R12: Lig(l!1,l!2).Syk(tSH2!3,a~Y).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~Y) -> \ + Lig(l!1,l!2).Syk(tSH2!3,a~Y).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~pY) pSS + + # Transphosphorylation of Syk by Syk phosphorylated on aloop + R13: Lig(l!1,l!2).Syk(tSH2!3,a~pY).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~Y) -> \ + Lig(l!1,l!2).Syk(tSH2!3,a~pY).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~pY) pSSs + + # Dephosphorylation of Rec beta + R14: Rec(b~pY) -> Rec(b~Y) dm + + # Dephosphorylation of Rec gamma + R15: Rec(g~pY) -> Rec(g~Y) dm + + # Dephosphorylation of Syk at membrane + R16: Syk(tSH2!+,l~pY) -> Syk(tSH2!+,l~Y) dm + R17: Syk(tSH2!+,a~pY) -> Syk(tSH2!+,a~Y) dm + + # Dephosphorylation of Syk in cytosol + R18: Syk(tSH2,l~pY) -> Syk(tSH2,l~Y) dc + R19: Syk(tSH2,a~pY) -> Syk(tSH2,a~Y) dc +end reaction rules + +begin observables + Molecules LynFree Lyn(U,SH2) + Molecules RecMon Rec(a), Rec(a!1).Lig(l!1,l) + Molecules RecDim Rec.Rec + + Molecules RecPbeta Rec(b~pY!?) + Molecules RecPgamma Rec(g~pY), Rec(g~pY!+) + Molecules RecSyk Rec(g~pY!1).Syk(tSH2!1) + Molecules RecSykPS Rec(g~pY!1).Syk(tSH2!1,a~pY) + + Molecules SykTest Syk + Molecules LynTest Lyn + Molecules RecTest Rec +end observables +end model + +## actions ## +generate_network({overwrite=>1}) +simulate_ode({t_end=>600,n_steps=>10,atol=>1e-8,rtol=>1e-8}) + diff --git a/Contributed/BNGPlayground_Validation/testsat/README.md b/Contributed/BNGPlayground_Validation/testsat/README.md new file mode 100644 index 00000000..696b5fa1 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testsat/README.md @@ -0,0 +1,21 @@ +# test_sat + +Kinetic constants + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- test_sat.bngl + +## Tags + +validation, test, sat, e, s, p, generate_network diff --git a/Contributed/BNGPlayground_Validation/testsat/metadata.yaml b/Contributed/BNGPlayground_Validation/testsat/metadata.yaml new file mode 100644 index 00000000..dfe97a4d --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testsat/metadata.yaml @@ -0,0 +1,22 @@ +id: "test_sat" +name: "test_sat" +description: "Kinetic constants" +tags: ["validation", "test", "sat", "e", "s", "p", "generate_network"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/test_sat.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/testsat/test_sat.bngl b/Contributed/BNGPlayground_Validation/testsat/test_sat.bngl new file mode 100644 index 00000000..5fe5d308 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testsat/test_sat.bngl @@ -0,0 +1,32 @@ +begin model +begin parameters + # Kinetic constants + kcat 1 + Km 1 +end parameters +begin molecule types + E() + S() + P() +end molecule types +begin seed species + S() 100 + E() 100 + P() 0 +end seed species +begin reaction rules + S() + E() -> P() + E() Sat(kcat,Km) +end reaction rules +begin observables + Molecules St S() + Molecules Pt P() + Molecules Et E() +end observables +end model + +## actions ## +generate_network({overwrite=>1}) +simulate_ode({t_end=>5,n_steps=>20,atol=>1e-8,rtol=>1e-8,sparse=>1}) +resetConcentrations() +writeNetwork({suffix=>"cont",evaluate_expressions=>0,overwrite=>1}) + diff --git a/Contributed/BNGPlayground_Validation/testsynthesiscBNGLsimple/README.md b/Contributed/BNGPlayground_Validation/testsynthesiscBNGLsimple/README.md new file mode 100644 index 00000000..e41670be --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testsynthesiscBNGLsimple/README.md @@ -0,0 +1,21 @@ +# test_synthesis_cBNGL_simple + +Compartmental synthesis + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- test_synthesis_cBNGL_simple.bngl + +## Tags + +validation, test, synthesis, cbngl, simple, a, a2, b, c, source, source2 diff --git a/Contributed/BNGPlayground_Validation/testsynthesiscBNGLsimple/metadata.yaml b/Contributed/BNGPlayground_Validation/testsynthesiscBNGLsimple/metadata.yaml new file mode 100644 index 00000000..c5b92ee1 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testsynthesiscBNGLsimple/metadata.yaml @@ -0,0 +1,22 @@ +id: "test_synthesis_cBNGL_simple" +name: "test_synthesis_cBNGL_simple" +description: "Compartmental synthesis" +tags: ["validation", "test", "synthesis", "cbngl", "simple", "a", "a2", "b", "c", "source", "source2"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/test_synthesis_cBNGL_simple.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/testsynthesiscBNGLsimple/test_synthesis_cBNGL_simple.bngl b/Contributed/BNGPlayground_Validation/testsynthesiscBNGLsimple/test_synthesis_cBNGL_simple.bngl new file mode 100644 index 00000000..2ebf65ac --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testsynthesiscBNGLsimple/test_synthesis_cBNGL_simple.bngl @@ -0,0 +1,37 @@ +begin model +begin parameters +k1 1 +end parameters +begin molecule types +A() +A2() +B() +C() +Source() +Source2() +end molecule types +begin compartments + EC 3 1 +end compartments +begin seed species +$Source@EC 1 +Source2@EC 1 +end seed species +begin reaction rules +0 -> A@EC() k1 +0 -> @EC:A2() k1 +Source() -> B() k1 +Source2() -> Source2() + C() k1 +end reaction rules +begin observables +Molecules compartment_suffix A() +Molecules compartment_preffix A2() +Molecules constant_source B() +Molecules non_constant_source C() + +end observables + +end model + +generate_network({overwrite=>1}) +simulate({method=>"ode",t_start=>0,t_end=>40,n_steps=>100}) diff --git a/Contributed/BNGPlayground_Validation/testsynthesiscomplex/README.md b/Contributed/BNGPlayground_Validation/testsynthesiscomplex/README.md new file mode 100644 index 00000000..531dbef5 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testsynthesiscomplex/README.md @@ -0,0 +1,21 @@ +# test_synthesis_complex + +Complex synthesis test + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- test_synthesis_complex.bngl + +## Tags + +validation, test, synthesis, complex, a, b, c, receptor, source, source2 diff --git a/Contributed/BNGPlayground_Validation/testsynthesiscomplex/metadata.yaml b/Contributed/BNGPlayground_Validation/testsynthesiscomplex/metadata.yaml new file mode 100644 index 00000000..6360ed18 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testsynthesiscomplex/metadata.yaml @@ -0,0 +1,22 @@ +id: "test_synthesis_complex" +name: "test_synthesis_complex" +description: "Complex synthesis test" +tags: ["validation", "test", "synthesis", "complex", "a", "b", "c", "receptor", "source", "source2"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/test_synthesis_complex.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/testsynthesiscomplex/test_synthesis_complex.bngl b/Contributed/BNGPlayground_Validation/testsynthesiscomplex/test_synthesis_complex.bngl new file mode 100644 index 00000000..21f5e996 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testsynthesiscomplex/test_synthesis_complex.bngl @@ -0,0 +1,32 @@ +begin model +begin parameters +k1 1 +end parameters +begin molecule types +A(t) +B(t) +C(t) +Receptor(Y) +Source() +Source2() +end molecule types +begin seed species +$Source 1 +Source2 1 +end seed species +begin reaction rules +0 -> A(t!1).Receptor(Y!1) k1 +Source() -> B(t!1).Receptor(Y!1) k1 +Source2() -> Source2() + C(t!1).Receptor(Y!1) k1 +end reaction rules +begin observables +Molecules add_molecule A(t!+) +Molecules constant_source B(t!+) +Molecules non_constant_source C(t!+) +Molecules Receptor Receptor(Y!+) +end observables + +end model + +generate_network({overwrite=>1}) +simulate({method=>"ode",t_start=>0,t_end=>40,n_steps=>100}) diff --git a/Contributed/BNGPlayground_Validation/testsynthesiscomplex0cBNGL/README.md b/Contributed/BNGPlayground_Validation/testsynthesiscomplex0cBNGL/README.md new file mode 100644 index 00000000..b03e3d3b --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testsynthesiscomplex0cBNGL/README.md @@ -0,0 +1,21 @@ +# test_synthesis_complex_0_cBNGL + +volume-surface + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- test_synthesis_complex_0_cBNGL.bngl + +## Tags + +validation, test, synthesis, complex, 0, cbngl, volume_molecule1, volume_molecule2, surface_molecule1, surface_molecule2, volume_molecule3, volume_molecule4, volume_receptor, surface_receptor diff --git a/Contributed/BNGPlayground_Validation/testsynthesiscomplex0cBNGL/metadata.yaml b/Contributed/BNGPlayground_Validation/testsynthesiscomplex0cBNGL/metadata.yaml new file mode 100644 index 00000000..eebdce3a --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testsynthesiscomplex0cBNGL/metadata.yaml @@ -0,0 +1,22 @@ +id: "test_synthesis_complex_0_cBNGL" +name: "test_synthesis_complex_0_cBNGL" +description: "volume-surface" +tags: ["validation", "test", "synthesis", "complex", "0", "cbngl", "volume_molecule1", "volume_molecule2", "surface_molecule1", "surface_molecule2", "volume_molecule3", "volume_molecule4", "volume_receptor", "surface_receptor"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/test_synthesis_complex_0_cBNGL.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/testsynthesiscomplex0cBNGL/test_synthesis_complex_0_cBNGL.bngl b/Contributed/BNGPlayground_Validation/testsynthesiscomplex0cBNGL/test_synthesis_complex_0_cBNGL.bngl new file mode 100644 index 00000000..f1a13b4b --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testsynthesiscomplex0cBNGL/test_synthesis_complex_0_cBNGL.bngl @@ -0,0 +1,56 @@ +begin model +begin parameters +k1 1 +end parameters +begin molecule types +volume_molecule1(t) +volume_molecule2(t) + +surface_molecule1(t) +surface_molecule2(t) + +volume_molecule3(t) +volume_molecule4(t) + +volume_receptor(Y) +surface_receptor(Y) +end molecule types +begin compartments +PM 2 1 +CP 3 1 PM +end compartments + +begin seed species +#volume-surface +volume_molecule1(t!1)@CP.surface_receptor(Y!1)@PM 0 +@PM:volume_molecule2(t!1)@CP.surface_receptor(Y!1) 0 +#surface-surface +surface_molecule1(t!1)@PM.surface_receptor(Y!1)@PM 0 +@PM:surface_molecule2(t!1).surface_receptor(Y!1) 0 +#volume-volume +volume_molecule3(t!1)@CP.volume_receptor(Y!1)@CP 0 +@CP:volume_molecule4(t!1).volume_receptor(Y!1) 0 +end seed species + +begin reaction rules +0 -> volume_molecule1(t!1)@CP.surface_receptor(Y!1)@PM k1 +0 -> @PM:volume_molecule2(t!1)@CP.surface_receptor(Y!1) k1 +0 -> surface_molecule1(t!1)@PM.surface_receptor(Y!1)@PM k1 +0 -> @PM:surface_molecule2(t!1).surface_receptor(Y!1) k1 +0 -> volume_molecule3(t!1)@CP.volume_receptor(Y!1)@CP k1 +0 -> @CP:volume_molecule4(t!1).volume_receptor(Y!1) k1 +end reaction rules + +begin observables +Molecules vs_suffix volume_molecule1(t!1)@CP.surface_receptor(Y!1)@PM +Molecules vs_prefix @PM:volume_molecule2(t!1)@CP.surface_receptor(Y!1) +Molecules ss_suffix surface_molecule1(t!1)@PM.surface_receptor(Y!1)@PM +Molecules ss_prefix @PM:surface_molecule2(t!1).surface_receptor(Y!1) +Molecules vv_suffix volume_molecule3(t!1)@CP.volume_receptor(Y!1)@CP +Molecules vv_prefix @CP:volume_molecule4(t!1).volume_receptor(Y!1) +end observables + +end model + +generate_network({overwrite=>1}) +simulate({method=>"ode",t_start=>0,t_end=>40,n_steps=>100}) diff --git a/Contributed/BNGPlayground_Validation/testsynthesiscomplexsourcecBNGL/README.md b/Contributed/BNGPlayground_Validation/testsynthesiscomplexsourcecBNGL/README.md new file mode 100644 index 00000000..14dad774 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testsynthesiscomplexsourcecBNGL/README.md @@ -0,0 +1,21 @@ +# test_synthesis_complex_source_cBNGL + +volume-surface + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- test_synthesis_complex_source_cBNGL.bngl + +## Tags + +validation, test, synthesis, complex, source, cbngl, volume_molecule1, volume_molecule2, surface_molecule1, surface_molecule2, volume_molecule3, volume_molecule4, volume_receptor, surface_receptor diff --git a/Contributed/BNGPlayground_Validation/testsynthesiscomplexsourcecBNGL/metadata.yaml b/Contributed/BNGPlayground_Validation/testsynthesiscomplexsourcecBNGL/metadata.yaml new file mode 100644 index 00000000..6d0c5554 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testsynthesiscomplexsourcecBNGL/metadata.yaml @@ -0,0 +1,22 @@ +id: "test_synthesis_complex_source_cBNGL" +name: "test_synthesis_complex_source_cBNGL" +description: "volume-surface" +tags: ["validation", "test", "synthesis", "complex", "source", "cbngl", "volume_molecule1", "volume_molecule2", "surface_molecule1", "surface_molecule2", "volume_molecule3", "volume_molecule4", "volume_receptor", "surface_receptor"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/test_synthesis_complex_source_cBNGL.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/testsynthesiscomplexsourcecBNGL/test_synthesis_complex_source_cBNGL.bngl b/Contributed/BNGPlayground_Validation/testsynthesiscomplexsourcecBNGL/test_synthesis_complex_source_cBNGL.bngl new file mode 100644 index 00000000..57bce4c5 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testsynthesiscomplexsourcecBNGL/test_synthesis_complex_source_cBNGL.bngl @@ -0,0 +1,62 @@ +begin model +begin parameters +k1 1 +end parameters +begin molecule types +volume_molecule1(t) +volume_molecule2(t) + +surface_molecule1(t) +surface_molecule2(t) + +volume_molecule3(t) +volume_molecule4(t) + +volume_receptor(Y) +surface_receptor(Y) + +Source_PM() +Source_CP() +end molecule types +begin compartments +PM 2 1 +CP 3 1 PM +end compartments + +begin seed species +#volume-surface +volume_molecule1(t!1)@CP.surface_receptor(Y!1)@PM 0 +@PM:volume_molecule2(t!1)@CP.surface_receptor(Y!1) 0 +#surface-surface +surface_molecule1(t!1)@PM.surface_receptor(Y!1)@PM 0 +@PM:surface_molecule2(t!1).surface_receptor(Y!1) 0 +#volume-volume +volume_molecule3(t!1)@CP.volume_receptor(Y!1)@CP 0 +@CP:volume_molecule4(t!1).volume_receptor(Y!1) 0 + +$Source_PM()@PM 1 +$Source_CP()@CP 1 +end seed species + +begin reaction rules +Source_PM -> volume_molecule1(t!1)@CP.surface_receptor(Y!1)@PM k1 +Source_PM -> @PM:volume_molecule2(t!1)@CP.surface_receptor(Y!1) k1 +Source_PM -> surface_molecule1(t!1)@PM.surface_receptor(Y!1)@PM k1 +Source_PM -> surface_molecule2(t!1).surface_receptor(Y!1) k1 +Source_CP -> volume_molecule3(t!1)@CP.volume_receptor(Y!1)@CP k1 +Source_CP -> volume_molecule4(t!1).volume_receptor(Y!1) k1 +end reaction rules + +begin observables +Molecules vs_suffix volume_molecule1(t!1)@CP.surface_receptor(Y!1)@PM +Molecules vs_prefix @PM:volume_molecule2(t!1)@CP.surface_receptor(Y!1) +Molecules ss_suffix surface_molecule1(t!1)@PM.surface_receptor(Y!1)@PM +Molecules ss_prefix @PM:surface_molecule2(t!1).surface_receptor(Y!1) +Molecules vv_suffix volume_molecule3(t!1)@CP.volume_receptor(Y!1)@CP +Molecules vv_prefix @CP:volume_molecule4(t!1).volume_receptor(Y!1) +end observables + +end model + +generate_network({overwrite=>1}) +simulate({method=>"ode",t_start=>0,t_end=>40,n_steps=>100}) diff --git a/Contributed/BNGPlayground_Validation/testsynthesissimple/README.md b/Contributed/BNGPlayground_Validation/testsynthesissimple/README.md new file mode 100644 index 00000000..5e1d62ae --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testsynthesissimple/README.md @@ -0,0 +1,21 @@ +# test_synthesis_simple + +Simple synthesis test + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- test_synthesis_simple.bngl + +## Tags + +validation, test, synthesis, simple, a, b, c, source, source2, generate_network diff --git a/Contributed/BNGPlayground_Validation/testsynthesissimple/metadata.yaml b/Contributed/BNGPlayground_Validation/testsynthesissimple/metadata.yaml new file mode 100644 index 00000000..75f920e6 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testsynthesissimple/metadata.yaml @@ -0,0 +1,22 @@ +id: "test_synthesis_simple" +name: "test_synthesis_simple" +description: "Simple synthesis test" +tags: ["validation", "test", "synthesis", "simple", "a", "b", "c", "source", "source2", "generate_network"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/test_synthesis_simple.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/testsynthesissimple/test_synthesis_simple.bngl b/Contributed/BNGPlayground_Validation/testsynthesissimple/test_synthesis_simple.bngl new file mode 100644 index 00000000..dd93d9ff --- /dev/null +++ b/Contributed/BNGPlayground_Validation/testsynthesissimple/test_synthesis_simple.bngl @@ -0,0 +1,30 @@ +begin model +begin parameters +k1 1 +end parameters +begin molecule types +A() +B() +C() +Source() +Source2() +end molecule types +begin seed species +$Source 1 +Source2 1 +end seed species +begin reaction rules +0 -> A() k1 +Source() -> B() k1 +Source2() -> Source2() + C() k1 +end reaction rules +begin observables +Molecules add_molecule A() +Molecules constant_source B() +Molecules non_constant_source C() +end observables + +end model + +generate_network({overwrite=>1}) +simulate({method=>"ode",t_start=>0,t_end=>40,n_steps=>100}) diff --git a/Contributed/BNGPlayground_Validation/tlmr/README.md b/Contributed/BNGPlayground_Validation/tlmr/README.md new file mode 100644 index 00000000..d1e696c1 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/tlmr/README.md @@ -0,0 +1,21 @@ +# tlmr + +Trivalent ligand monovalent receptor + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- tlmr.bngl + +## Tags + +validation, tlmr, l, r, generate_network, simulate_ode diff --git a/Contributed/BNGPlayground_Validation/tlmr/metadata.yaml b/Contributed/BNGPlayground_Validation/tlmr/metadata.yaml new file mode 100644 index 00000000..469b93d0 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/tlmr/metadata.yaml @@ -0,0 +1,22 @@ +id: "tlmr" +name: "tlmr" +description: "Trivalent ligand monovalent receptor" +tags: ["validation", "tlmr", "l", "r", "generate_network", "simulate_ode"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/tlmr.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/tlmr/tlmr.bngl b/Contributed/BNGPlayground_Validation/tlmr/tlmr.bngl new file mode 100644 index 00000000..9ee5e9b0 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/tlmr/tlmr.bngl @@ -0,0 +1,25 @@ +# Test whether reaction multiplicities are handled correctly by +# running verify.pl on tlmr_spec.cdat and the CDAT file produced +# by this file. +begin parameters + L0 602 + R0 1204 + kp1 1.661129568106312e-04 + km1 1 + kp2 1.661129568106312e-03 + km2 1 + kp3 1.661129568106312e-03 + km3 1 +end parameters +begin seed species + L(r,r,r) L0 + R(l) R0 +end seed species +begin reaction rules + L(r,r,r) + R(l) <-> L(r,r,r!1).R(l!1) kp1, km1 + L(r!+,r,r) + R(l) <-> L(r!+,r,r!1).R(l!1) kp2, km2 + L(r!+,r!+,r) + R(l) <-> L(r!+,r!+,r!1).R(l!1) kp3, km3 +end reaction rules + +generate_network({overwrite=>1}) +simulate_ode({t_end=>10,n_steps=>10}) diff --git a/Contributed/BNGPlayground_Validation/toyjim/README.md b/Contributed/BNGPlayground_Validation/toyjim/README.md new file mode 100644 index 00000000..331a9e37 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/toyjim/README.md @@ -0,0 +1,21 @@ +# toy-jim + +The model consists of a monovalent extracellular ligand, + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- toy-jim.bngl + +## Tags + +validation, toy, jim, l, r, a, k, null diff --git a/Contributed/BNGPlayground_Validation/toyjim/metadata.yaml b/Contributed/BNGPlayground_Validation/toyjim/metadata.yaml new file mode 100644 index 00000000..e9baaa4d --- /dev/null +++ b/Contributed/BNGPlayground_Validation/toyjim/metadata.yaml @@ -0,0 +1,22 @@ +id: "toy-jim" +name: "toy-jim" +description: "The model consists of a monovalent extracellular ligand," +tags: ["validation", "toy", "jim", "l", "r", "a", "k", "null"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/toy-jim.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/toyjim/toy-jim.bngl b/Contributed/BNGPlayground_Validation/toyjim/toy-jim.bngl new file mode 100644 index 00000000..0aa589b2 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/toyjim/toy-jim.bngl @@ -0,0 +1,117 @@ +# The model consists of a monovalent extracellular ligand, +# a monovalent cell-surface receptor, a bivalent cytosolic adapter protein, +# and a cytosolic kinase. The receptor dimerizes through a +# receptor-receptor interaction that depends on ligand binding. +# The adapter binds the receptor and the kinase. +# When two kinases are juxtaposed through binding to +# receptor-associated adapter proteins, one of the kinases can +# transphosphorylate the second kinase. + +begin model +begin parameters + L_tot 1 + R_tot 1 + A_tot 1 + K_tot 1 + + kpL 0.1 + kmL 0.1 + # kpD and kmD were divided by two from their values in toy.in + # give the right symmetry factor. + kpD 1.0 + kmD 0.1 + kpA 0.1 + kmA 0.1 + kpK 0.1 + kmK 0.1 + pK 1 + pKs 10 + dM 1 + dC 10 +end parameters + +begin seed species + # Set to zero for equilibration + L(r) 0 + # r binds to l of R + + R(l,r,a) R_tot + # l binds to r of L + # r binds to r of R + + A(r,k) A_tot + # r binds to a of R + # k binds to a of K + + K(a,Y~U) K_tot + # a binds to k of A + # Y is phosphorylation site that is either unphosphorylated (U) or + # phosphorylated (P) + + Null() 0 +end seed species + +begin reaction rules + # Ligand binding (L+R) + # Note: specifying r in R here means that the r component must not + # be bound. This prevents dissociation of ligand from R + # when R is in a dimer. + L(r) + R(l,r) <-> L(r!1).R(l!1,r) kpL, kmL + + # Aggregation (R+R) + # Note: R must be bound to ligand to dimerize. + L(r!1).R(l!1,r) + L(r!1).R(l!1,r) <-> L(r!1).R(l!1,r!3).L(r!2).R(l!2,r!3) kpD,kmD + + # Receptor binding to adaptor (R+A) + # Note: A and R can bind independent of whether A is bound to K or + # whether R is in a dimer. + A(r) + R(a) <-> A(r!1).R(a!1) kpA,kmA + + # Adaptor binding kinase + # Note: Doesn't depend on phosphorylation state of K or whether A is bound to + # receptor, i.e. binding rate is same whether A is on membrane (bound to + # R) or in cytosol. + A(k) + K(a) <-> A(k!1).K(a!1) kpK,kmK + + # Kinase transphosphorylation by inactive kinase + # Note: Rule doesn't specify how two K's are associated + K(Y~U).K(Y~U) -> K(Y~U).K(Y~P) pK + + # Kinase transphosphorylation by active kinase + # Note: Rule doesn't specify how two K's are associated + K(Y~P).K(Y~U) -> K(Y~P).K(Y~P) pKs + + # Dephosphorylation of kinase in membrane complex + R(a!1).A(r!1,k!2).K(a!2,Y~P) -> R(a!1).A(r!1,k!2).K(a!2,Y~U) dM + + # Dephosphorylation of kinase in cytosol + K(a,Y~P) -> K(a,Y~U) dC +end reaction rules + +begin observables + Molecules RecDim R(r!+) + Molecules Rec_A R(a!1).A(r!1) + Molecules Rec_K R(a!1).A(r!1,k!2).K(a!2) + Molecules Rec_Kp R(a!1).A(r!1,k!2).K(a!2,Y~P) + Molecules RecDim_Kp R.R(a!1).A(r!1,k!2).K(a!2,Y~P) + Molecules L_total L + Molecules A_total A + Molecules K_total K + Molecules R_total R +end observables +end model + +## actions ## +generate_network({overwrite=>1}) + +# Equilibration +simulate({method=>"ode",suffix=>"equil",t_end=>1000,n_steps=>10,atol=>1e-10,rtol=>1e-8,sparse=>1,steady_state=>1}) +writeSBML() + +# Kinetics +setConcentration("L(r)","L_tot") +simulate({method=>"ode",t_end=>120,n_steps=>120,atol=>1e-10,rtol=>1e-8}) + +# Modified Kinetics, starts from end point of previous simulate command +#setParameter("pKs",0) +#simulate({method=>"ode",suffix=>"kinetics2",t_end=>100,n_steps=>10,atol=>1e-10,rtol=>1e-8}) diff --git a/Contributed/BNGPlayground_Validation/univsynth/README.md b/Contributed/BNGPlayground_Validation/univsynth/README.md new file mode 100644 index 00000000..0d76d077 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/univsynth/README.md @@ -0,0 +1,21 @@ +# univ_synth + +example of universal synthesis + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- univ_synth.bngl + +## Tags + +validation, univ, synth, a, b, c, generate_network, simulate_ode diff --git a/Contributed/BNGPlayground_Validation/univsynth/metadata.yaml b/Contributed/BNGPlayground_Validation/univsynth/metadata.yaml new file mode 100644 index 00000000..8b87d740 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/univsynth/metadata.yaml @@ -0,0 +1,22 @@ +id: "univ_synth" +name: "univ_synth" +description: "example of universal synthesis" +tags: ["validation", "univ", "synth", "a", "b", "c", "generate_network", "simulate_ode"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/validation/univ_synth.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/Contributed/BNGPlayground_Validation/univsynth/univ_synth.bngl b/Contributed/BNGPlayground_Validation/univsynth/univ_synth.bngl new file mode 100644 index 00000000..a9177fc6 --- /dev/null +++ b/Contributed/BNGPlayground_Validation/univsynth/univ_synth.bngl @@ -0,0 +1,48 @@ +# example of universal synthesis +begin model +begin parameters + k1 1.0 + k2 0.1 + volEC 10. + volPM 0.1 + volCP 1.0 +end parameters +begin compartments + EC 3 volEC + PM 2 volPM EC + CP 3 volCP PM +end compartments +begin molecule types + A() + B() + C() +end molecule types +begin seed species + A()@EC volEC + A()@PM volPM + A()@CP volCP +end seed species +begin observables + Molecules B_EC B@EC() + Molecules B_PM B@PM() + Molecules B_CP B@CP() + Molecules C_EC C@EC() + Molecules C_PM C@PM() + Molecules C_CP C@CP() +end observables +begin reaction rules + # local synthesis of B (zero-order) + 0 -> B@EC() k1 + 0 -> B@PM() k1 + 0 -> B@CP() k1 + # universal synthesis of C (depends on A) + A -> A + C() k1 + # decay + B -> 0 k2 + C -> 0 k2 +end reaction rules +end model + +generate_network({overwrite=>1}) +simulate_ode({t_start=>0,t_end=>10,n_steps=>20}) + diff --git a/Published/An2009/An_2009.bngl b/Published/An2009/An_2009.bngl new file mode 100644 index 00000000..23af7621 --- /dev/null +++ b/Published/An2009/An_2009.bngl @@ -0,0 +1,248 @@ +begin parameters +LPS_MD2_Bind 0.001 +LPS_MD2_Unbind 0.1 +LPS_CD14_Bind 0.001 +LPS_CD14_Unbind 0.1 +CD14_MD2_Bind 0.001 +CD14_MD2_Unbind 0.1 +LPS_TLR4_Bind 0.001 +LPS_TLR4_Unbind 0.1 +CD14_TLR4_Bind 0.001 +CD14_TLR4_Unbind 0.1 +MD2_TLR4_Bind 0.001 +MD2_TLR4_Unbind 0.1 +TLR4_Complex_Dimer_Bind 0.001 +TLR4_Complex_Dimer_Unbind 0.1 +RP1_TRIF_Bind 0.001 +RP1_TRIF_Unbind 0.1 +TRIF_TRAF6_Bind 0.001 +TRIF_TRAF6_Unbind 0.1 +RP1_TRAF6_Bind 0.001 +RP1_TRAF6_Unbind 0.1 +TLR4_TRAM_Bind 0.001 +TLR4_TRAM_Unbind 0.1 +TLR4TRAM_TRIF_Bind 0.001 +TLR4TRAM_TRIF_Unbind 0.1 +TRAF6_TRIF_Bind 0.001 +TRAF6_TRIF_Unbind 0.1 +TRAF6TRIF_TAK1_Activate 0.001 +MyD88_IRAK4_Bind 0.001 +MyD88_IRAK4_Unbind 0.1 +MyD88_IRAK1_Bind 0.001 +MyD88_IRAK1_Unbind 0.1 +IRAK1_IRAK4_Bind 0.001 +IRAK1_IRAK4_Unbind 0.1 +TLR4_MAL_Bind 0.001 +TLR4_MAL_Unbind 0.1 +TLR4MAL_MyD88_Bind 0.001 +TLR4MAL_MyD88_Unbind 0.1 +MyD88IRAK1_TRAF6_Bind 0.001 +MyD88IRAK1_TRAF6_B_Unbind 0.1 +MyD88IRAK1TRAF6_TAK1_Activate 0.001 +TRAF6_MyD88IRAK1_Bind 0.001 +TRAF6_MyD88IRAK1_Unbind 0.1 +TAK1_Ikk_Complex_Activate 0.001 +Ikk_complex_IkB_Phos 0.00001 +IkB_Proteasome23_Degrade 0.1 +p65_p50_Bind 0.001 +p65_p50_Unbind 0.1 +NFkB_DNA_A20_Bind 0.001 +A20_Transcription_Execute 1 +A20_TRAF6_Bind 0.001 +A20_TRAF6_Unbind 0.1 +NFkB_DNA_A20_Unbind 0.1 +NFkB_DNA_TNF_Bind 0.001 +NFkB_DNA_TNF_Unbind 0.1 +TNF_Transcription_Execute 1 +CD14_Init 10000 +MD2_Init 10000 +TLR_Init 10000 +LPS_Init 100 +TRAM_Init 10000 +MAL_Init 10000 +TRIF_Init 10000 +MyD88_Init 10000 +RP1_Init 10000 +IRAK1_Init 10000 +IRAK4_Init 10000 +TRAF6_Init 10000 +TAK1_Init 10000 +Ikk_Complex_Init 10000 +Proteasome23_Init 10000 +p65_Init 10000 +IkB_Init 10000 +p50_Init 10000 +DNA 2 +A20_Translation_Execute 0.1 +TNF_Translation_Execute 0.1 +TAK1_Degradation 0 +NFkB_Degredation 0 +A20_MyD88IRAK1TRAF6_Degrade 10 +A20_TRAF6TRIFRP1_Degrade 10 +A20_Init 0 +A20_Preconditioned 0 +Ikk_Degradation_Rate 0 +NFkB_DNA_IkB_Bind 0.001 +NFkB_DNA_IkB_Unbind 0.01 +IkB_Transcription_Execute 1 +IkB_Translation_Execute 0.1 +A20_IkkAct_Deactivate 10 +IkB_DegradeNFkB 0.001 +NFkB_Inactive_Cytoplasm 10000 +NFkB_IkB_Bind 0.001 +NFkB_Translocation_Nucleus 0.01 +NFkB_IkB_Unbind 0.0001 +TAK1_Deactivation 0.10 +Ikk_Deactivation 0 +TNF_Degrade 0.0005 +A20_Degrade 0.0001 +end parameters + +begin molecule types + CD14(TLR4,MD2,LPS) + MD2(CD14,TLR4,LPS) + TLR4(MAL,TRAM,TLR4,CD14,MD2,LPS) + TRAM(TLR4,TRIF) + TRIF(TRAM,TRAF6,RIP1,TRAF4,SARM) + SARM(TRIF) + TRAF4(TRAF6,TAK1,TRIF) + IRAK1(IRAK4,MyD88,Tollip,TRAF6) + Tollip(IRAK1) + IRAK4(Myd88,IRAKM,IRAK1) + IRAKM(IRAK4) + RP1(TRIF,TRAF6,TAK1,p38) + TRAF6(IRAK1,TRIF,RP1,TAK1,TRAF4,A20,JNK,p38) + A20(TRAF6) + MyD88(MAL,IRAK1,IRAK4,MyD88s) + MyD88s(MyD88,IRAK1) + MAL(TLR4,MyD88,SOCS1) + LPS(MD2,TLR4,CD14,LPS) + TAK1(TRAF6,Activation~No~Yes) + Ikk_Complex(Activation~No~Yes) + IkB(Phos~No~Yes,p65,p50,Degrade~No~Yes) + Proteasome26s(IkB) + TNF(TNFr) + TNFmRNA(Translation~On~Off) + A20mRNA(Translation~On~Off) + iNOSmRNA(Translation~On~Off) + IkBmRNA(Translation~On~Off) + DNA(A20,TNF,iNOS,IL10,IkB,c,c) + Trash(c) + Administer(c) + NFkB(Transcription~No~Yes,Activation~No~Yes,Location~Cytoplasm~Nucleus) +end molecule types + +begin seed species +CD14: CD14(TLR4,MD2,LPS) CD14_Init +MD2: MD2(CD14,TLR4,LPS) MD2_Init +TLR4: TLR4(MAL,TRAM,TLR4,CD14,MD2,LPS) TLR_Init +TRAM: TRAM(TLR4,TRIF) TRAM_Init +MAL: MAL(TLR4,MyD88,SOCS1) MAL_Init +TRIF: TRIF(TRAM,TRAF6,RIP1,SARM,TRAF4) TRIF_Init +MyD88: MyD88(MAL,IRAK1,IRAK4,MyD88s) MyD88_Init +RP1: RP1(TRIF,TRAF6,TAK1,p38) RP1_Init +IRAK1: IRAK1(IRAK4,MyD88,Tollip,TRAF6) IRAK1_Init +IRAK4: IRAK4(Myd88,IRAKM,IRAK1) IRAK4_Init +TRAF6: TRAF6(IRAK1,TRIF,RP1,TAK1,TRAF4,A20,JNK,p38) TRAF6_Init +TAK1: TAK1(TRAF6,Activation~No) TAK1_Init +Ikk_Complex: Ikk_Complex(Activation~No) Ikk_Complex_Init +Proteasome23: Proteasome26s(IkB) Proteasome23_Init +IkB: IkB(Phos~No,p65,p50,Degrade~No) IkB_Init +DNA: DNA(A20,TNF,iNOS,IL10,IkB,c,c) DNA +LPS: LPS(MD2,TLR4,CD14,LPS) LPS_Init +A20: A20(TRAF6) A20_Preconditioned +NFkB_Inactive_Cytoplasm: NFkB(Transcription~No,Activation~No,Location~Cytoplasm) NFkB_Inactive_Cytoplasm +end seed species + +begin reaction rules +LPS_MD2: LPS(MD2,TLR4,CD14,LPS)+MD2(CD14,TLR4,LPS)<->LPS(MD2!0,TLR4,CD14,LPS).MD2(CD14,TLR4,LPS!0) LPS_MD2_Bind,LPS_MD2_Unbind +LPS_MD2_CD14: LPS(MD2!0,TLR4,CD14,LPS).MD2(CD14,TLR4,LPS!0)+CD14(TLR4,MD2,LPS)<->LPS(MD2!0,TLR4,CD14!1,LPS).MD2(CD14,TLR4,LPS!0).CD14(TLR4,MD2,LPS!1) LPS_CD14_Bind,LPS_CD14_Unbind +LPS_MD2_CD14_TLR4: LPS(MD2!0,TLR4,CD14!1,LPS).MD2(CD14,TLR4,LPS!0).CD14(TLR4,MD2,LPS!1) + TLR4(MAL,TRAM,TLR4,CD14,MD2,LPS) <-> LPS(MD2!0,TLR4!2,CD14!1,LPS).MD2(CD14!3,TLR4!4,LPS!0).CD14(TLR4!5,MD2!3,LPS!1).TLR4(MAL,TRAM,TLR4,CD14!5,MD2!4,LPS!2) LPS_TLR4_Bind,LPS_TLR4_Unbind +TLR4_Dimerization: TLR4(TLR4,CD14!+,LPS!+,MD2!+)+TLR4(TLR4,CD14!+,MD2!+,LPS!+)<->TLR4(TLR4!0,CD14!+,LPS!+,MD2!+).TLR4(TLR4!0,CD14!+,LPS!+,MD2!+) TLR4_Complex_Dimer_Bind,TLR4_Complex_Dimer_Unbind +TLR4_TRAM: TLR4(TLR4!+,CD14!+,LPS!+,MD2!+,TRAM,MAL)+TRAM(TLR4,TRIF)<->TRAM(TLR4!0,TRIF).TLR4(TLR4!+,CD14!+,LPS!+,MD2!+,TRAM!0,MAL) TLR4_TRAM_Bind,TLR4_TRAM_Unbind +TLR4TRAM_TRIF: TRAM(TLR4!0,TRIF).TLR4(TLR4!+,CD14!+,LPS!+,MD2!+,TRAM!0,MAL)+TRIF(TRAM,TRAF6!+,RIP1!+,TRAF4,SARM)<->TRAM(TLR4!0,TRIF!1).TLR4(TLR4!+,CD14!+,LPS!+,MD2!+,TRAM!0,MAL).TRIF(TRAM!1,TRAF6!+,RIP1!+,TRAF4,SARM) TLR4TRAM_TRIF_Bind,TLR4TRAM_TRIF_Unbind +TLR4TRAMTRIFTRAF6_TAK1: TRAM(TLR4!0,TRIF!1).TLR4(TLR4!+,CD14!+,LPS!+,MD2!+,TRAM!0,MAL).TRIF(TRAM!1,TRAF6!+,RIP1!+,TRAF4,SARM)+TAK1(TRAF6,Activation~No)->TRAM(TLR4!0,TRIF!1).TLR4(TLR4!+,CD14!+,LPS!+,MD2!+,TRAM!0,MAL).TRIF(TRAM!1,TRAF6!+,RIP1!+,TRAF4,SARM)+TAK1(TRAF6,Activation~Yes) TRAF6TRIF_TAK1_Activate +MyD88_IRAK4: MyD88(MAL,IRAK1,IRAK4,MyD88s)+IRAK4(Myd88,IRAKM,IRAK1)<->MyD88(MAL,IRAK1,IRAK4!0,MyD88s).IRAK4(Myd88!0,IRAKM,IRAK1) MyD88_IRAK4_Bind,MyD88_IRAK4_Unbind +MyD88_IRAK1: MyD88(MAL,IRAK1,IRAK4!0,MyD88s).IRAK4(Myd88!0,IRAKM,IRAK1)+IRAK1(IRAK4,MyD88,Tollip,TRAF6)<->IRAK1(IRAK4,MyD88!0,Tollip,TRAF6).MyD88(MAL,IRAK1!0,IRAK4!1,MyD88s).IRAK4(Myd88!1,IRAKM,IRAK1) MyD88_IRAK1_Bind,MyD88_IRAK1_Unbind +TNF_Translation: TNFmRNA(Translation~On)->TNFmRNA(Translation~Off)+TNF(TNFr) TNF_Translation_Execute +A20_Translation: A20mRNA(Translation~On)->A20mRNA(Translation~Off)+A20(TRAF6) A20_Translation_Execute +TAK1_Degrade: TAK1(TRAF6,Activation~Yes)->Trash(c) TAK1_Degradation +TLR4_MAL: TLR4(TLR4!+,CD14!+,LPS!+,MD2!+,TRAM,MAL)+MAL(TLR4,MyD88,SOCS1)<->TLR4(TLR4!+,CD14!+,LPS!+,MD2!+,TRAM,MAL!0).MAL(SOCS1,TLR4!0,MyD88) TLR4_MAL_Bind,TLR4_MAL_Unbind + +TLR4MAL_MyD88: TLR4(TLR4!+,CD14!+,LPS!+,MD2!+,TRAM,MAL!0).MAL(TLR4!0,MyD88,SOCS1) + IRAK1(IRAK4,MyD88!2,Tollip,TRAF6).MyD88(MAL,IRAK1!2,IRAK4!1,MyD88s).IRAK4(Myd88!1,IRAKM,IRAK1) <-> TLR4(TLR4!+,CD14!+,LPS!+,MD2!+,TRAM,MAL!0).MAL(TLR4!0,MyD88!4,SOCS1).IRAK1(IRAK4,MyD88!2,Tollip,TRAF6).MyD88(MAL!4,IRAK1!2,IRAK4!3,MyD88s).IRAK4(Myd88!3,IRAKM,IRAK1) TLR4MAL_MyD88_Bind,TLR4MAL_MyD88_Unbind +MyD88IRAK1_TRAF6: TRAF6(IRAK1,TRIF,RP1,TRAF4,A20,JNK,p38,TAK1)+TLR4(TLR4!+,CD14!+,LPS!+,MD2!+,TRAM,MAL!0).MAL(TLR4!0,MyD88!1,SOCS1).IRAK1(IRAK4,MyD88!2,Tollip,TRAF6).MyD88(MAL!1,IRAK1!2,IRAK4!3,MyD88s).IRAK4(Myd88!3,IRAKM,IRAK1)<->TRAF6(IRAK1!4,TRIF,RP1,TRAF4,A20,JNK,p38,TAK1).TLR4(TLR4!+,CD14!+,LPS!+,MD2!+,TRAM,MAL!0).MAL(TLR4!0,MyD88!1,SOCS1).IRAK1(IRAK4,MyD88!2,Tollip,TRAF6!4).MyD88(MAL!1,IRAK1!2,IRAK4!3,MyD88s).IRAK4(Myd88!3,IRAKM,IRAK1) MyD88IRAK1_TRAF6_Bind,MyD88IRAK1_TRAF6_B_Unbind + +A20_MyD88IRAK1TRAF6: TRAF6(IRAK1!0,TRIF,RP1,TRAF4,A20,JNK,p38,TAK1).TLR4(TLR4!+,CD14!+,LPS!+,MD2!+,TRAM,MAL!1).MAL(TLR4!1,MyD88!2,SOCS1).IRAK1(IRAK4,MyD88!3,Tollip,TRAF6!0).MyD88(MAL!2,IRAK1!3,IRAK4!4,MyD88s).IRAK4(Myd88!4,IRAKM,IRAK1)+A20(TRAF6)->TRAF6(IRAK1,TRIF,RP1,TAK1,TRAF4,A20,JNK,p38)+TLR4(TLR4!+,CD14!+,LPS!+,MD2!+,TRAM,MAL!1).MAL(TLR4!1,MyD88!2,SOCS1).IRAK1(IRAK4,MyD88!3,Tollip,TRAF6).MyD88(MAL!2,IRAK1!3,IRAK4!4,MyD88s).IRAK4(Myd88!4,IRAKM,IRAK1)+A20(TRAF6) A20_MyD88IRAK1TRAF6_Degrade +MyD88IRAK1TRAF6_TAK1: TRAF6(IRAK1!0,TRIF,RP1,TRAF4,A20,JNK,p38,TAK1).TLR4(TLR4!+,CD14!+,LPS!+,MD2!+,TRAM,MAL!1).MAL(TLR4!1,MyD88!2,SOCS1).IRAK1(IRAK4,MyD88!3,Tollip,TRAF6!0).MyD88(MAL!2,IRAK1!3,IRAK4!4,MyD88s).IRAK4(Myd88!4,IRAKM,IRAK1)+TAK1(TRAF6,Activation~No)->TRAF6(IRAK1!0,TRIF,RP1,TRAF4,A20,JNK,p38,TAK1).TLR4(TLR4!+,CD14!+,LPS!+,MD2!+,TRAM,MAL!1).MAL(TLR4!1,MyD88!2,SOCS1).IRAK1(IRAK4,MyD88!3,Tollip,TRAF6!0).MyD88(MAL!2,IRAK1!3,IRAK4!4,MyD88s).IRAK4(Myd88!4,IRAKM,IRAK1)+TAK1(TRAF6,Activation~Yes) MyD88IRAK1TRAF6_TAK1_Activate +IkB_Translation: IkBmRNA(Translation~On)->IkBmRNA(Translation~Off)+IkB(Phos~No,p65,p50,Degrade~No) IkB_Translation_Execute +TRIF_RP1: TRIF(TRAM,TRAF6,RIP1,TRAF4,SARM)+RP1(TRIF,TRAF6,TAK1,p38)<->RP1(TRIF!0,TRAF6,TAK1,p38).TRIF(TRAM,TRAF6,RIP1!0,TRAF4,SARM) RP1_TRIF_Bind,RP1_TRIF_Unbind +TRIF_TRAF6: RP1(TRIF!0,TRAF6,TAK1,p38).TRIF(TRAM,TRAF6,RIP1!0,TRAF4,SARM)+TRAF6(IRAK1,TRIF,RP1,TAK1,TRAF4,A20,JNK,p38)<->RP1(TRIF!0,TRAF6!1,TAK1,p38).TRIF(TRAM,TRAF6!2,RIP1!0,TRAF4,SARM).TRAF6(IRAK1,TRIF!2,RP1!1,TAK1,TRAF4,A20,JNK,p38) TRIF_TRAF6_Bind,TRIF_TRAF6_Unbind +A20_IkkAct_Deactivate: A20(TRAF6)+Ikk_Complex(Activation~Yes)->A20(TRAF6)+Ikk_Complex(Activation~No) A20_IkkAct_Deactivate +A20_TRAF6TRIFRP1_Degrade: A20(TRAF6)+RP1(TRIF!0,TRAF6!1,TAK1,p38).TRIF(TRAM,TRAF6!2,RIP1!0,TRAF4,SARM).TRAF6(IRAK1,TRIF!2,RP1!1,TAK1,TRAF4,A20,JNK,p38)->TRAF6(IRAK1,TRIF,RP1,TAK1,TRAF4,A20,JNK,p38)+RP1(TRIF,TRAF6,TAK1,p38)+TRIF(TRAM,TRAF6,RIP1,TRAF4,SARM)+A20(TRAF6) A20_TRAF6TRIFRP1_Degrade + +Ikk_complex_IkB_Phos: Ikk_Complex(Activation~Yes)+NFkB(Transcription~No,Activation~No!0!1,Location~Cytoplasm).IkB(Phos~No,p65!0,p50!1,Degrade~No)->Ikk_Complex(Activation~Yes)+NFkB(Transcription~No,Activation~No!0!1,Location~Cytoplasm).IkB(p65!0,p50!1,Degrade~No,Phos~Yes) Ikk_complex_IkB_Phos + +NFkB_Translocation_Nucleus: NFkB(Transcription~No,Activation~Yes,Location~Cytoplasm)<->NFkB(Transcription~No,Activation~Yes,Location~Nucleus) NFkB_Translocation_Nucleus,NFkB_Translocation_Nucleus +NFkB_DNA_A20: NFkB(Transcription~No,Activation~Yes,Location~Nucleus)+DNA(A20)<->DNA(A20!0).NFkB(Transcription~Yes!0,Activation~Yes,Location~Nucleus) NFkB_DNA_A20_Bind,NFkB_DNA_A20_Unbind + +IkB_DegradeNFkBA20: DNA(A20!0).NFkB(Transcription~Yes!0,Activation~Yes,Location~Nucleus)+IkB(Phos~No,p65,p50,Degrade~No)->DNA(A20)+NFkB(Transcription~No,Activation~No!0!1,Location~Cytoplasm).IkB(Phos~No,p65!0,p50!1,Degrade~No) IkB_DegradeNFkB + +NFkB_DNA_TNF: NFkB(Transcription~No,Activation~Yes,Location~Nucleus)+DNA(TNF)<->DNA(TNF!0).NFkB(Transcription~Yes!0,Activation~Yes,Location~Nucleus) NFkB_DNA_TNF_Bind,NFkB_DNA_TNF_Unbind +NFkB_DNA_IkB: NFkB(Transcription~No,Activation~Yes,Location~Nucleus)+DNA(IkB)<->DNA(IkB!0).NFkB(Transcription~Yes!0,Activation~Yes,Location~Nucleus) NFkB_DNA_IkB_Bind,NFkB_DNA_IkB_Unbind +IkB_Proteasome23_Degrade: Proteasome26s(IkB)+NFkB(Transcription~No,Activation~No!0!1,Location~Cytoplasm).IkB(Phos~Yes,p65!0,p50!1,Degrade~No)->IkB(Phos~Yes,p65,p50,Degrade~Yes!0).Proteasome26s(IkB!0)+NFkB(Transcription~No,Activation~Yes,Location~Cytoplasm) IkB_Proteasome23_Degrade +#NFkB_IkB_Bind: NFkB(Location~Cytoplasm,Activation~*)+IkB(Phos~No,p65,p50,Degrade~No)<->NFkB(Activation~*!0!1,Location~Cytoplasm).IkB(Phos~No,p65!0,p50!1,Degrade~No) NFkB_IkB_Bind,NFkB_IkB_Unbind + +NFkB_IkB_Bind: NFkB(Location~Cytoplasm,Activation)+IkB(Phos~No,p65,p50,Degrade~No)<->NFkB(Activation!0!1,Location~Cytoplasm).IkB(Phos~No,p65!0,p50!1,Degrade~No) NFkB_IkB_Bind,NFkB_IkB_Unbind + +Proteasome23_Release: IkB(Degrade~Yes!0).Proteasome26s(IkB!0)->IkB(Degrade~Yes)+Proteasome26s(IkB) IkB_Proteasome23_Degrade +IkB_Transcription_Execute: DNA(IkB!0).NFkB(Transcription~Yes!0,Activation~Yes,Location~Nucleus)->IkBmRNA(Translation~On)+DNA(IkB!0).NFkB(Transcription~Yes!0,Activation~Yes,Location~Nucleus) IkB_Transcription_Execute +A20_Transcription_Execute: DNA(A20!0).NFkB(Transcription~Yes!0,Activation~Yes,Location~Nucleus)->A20mRNA(Translation~On)+DNA(A20!0).NFkB(Transcription~Yes!0,Activation~Yes,Location~Nucleus) A20_Transcription_Execute +TNF_Transcription_Execute: DNA(TNF!0).NFkB(Transcription~Yes!0,Activation~Yes,Location~Nucleus)->TNFmRNA(Translation~On)+DNA(TNF!0).NFkB(Transcription~Yes!0,Activation~Yes,Location~Nucleus) TNF_Transcription_Execute +TAK1_Deactivation: TAK1(TRAF6,Activation~Yes)->TAK1(TRAF6,Activation~No) TAK1_Deactivation +Ikk_Deactivation: Ikk_Complex(Activation~Yes)->Ikk_Complex(Activation~No) Ikk_Deactivation +TAK1_Ikk_Complex_Activate: TAK1(TRAF6,Activation~Yes)+Ikk_Complex(Activation~No)->TAK1(TRAF6,Activation~Yes)+Ikk_Complex(Activation~Yes) TAK1_Ikk_Complex_Activate +TNF_Degrade: TNF(TNFr)->Trash(c) TNF_Degrade +A20_Degrade: A20(TRAF6)->Trash(c) A20_Degrade +IkB_DegradeNFkBDNAIkB: DNA(IkB!0).NFkB(Transcription~Yes!0,Activation~Yes,Location~Nucleus)+IkB(Phos~No,p65,p50,Degrade~No)->DNA(IkB)+IkB(Phos~No,p65!0,p50!1,Degrade~No).NFkB(Transcription~No,Activation~No!0!1,Location~Cytoplasm) IkB_DegradeNFkB +IkB_DegradeNFkBDNA_TNF: DNA(TNF!0).NFkB(Transcription~Yes!0,Activation~Yes,Location~Nucleus)+IkB(Phos~No,p65,p50,Degrade~No)->DNA(TNF)+IkB(Phos~No,p65!0,p50!1,Degrade~No).NFkB(Transcription~No,Activation~No!0!1,Location~Cytoplasm) IkB_DegradeNFkB +end reaction rules + +begin observables +Molecules TNF TNF(TNFr) +Molecules Activated_TAK1 TAK1(TRAF6,Activation~Yes) +Molecules Activated_Ikk_complex Ikk_Complex(Activation~Yes) +Molecules A20 A20(TRAF6) +Molecules NFkB_Active_Cyto NFkB(Transcription~No,Activation~Yes,Location~Cytoplasm) +Molecules NFkB_Active_Nucleus NFkB(Transcription~No,Activation~Yes,Location~Nucleus) +Molecules IkB_Degraded IkB(Degrade~Yes) +Molecules IkB_active IkB(Degrade~No) +#Molecules NFkB_Inactive NFkB(Activation~*!+) + +Molecules NFkB_Inactive NFkB(Activation!+) +Molecules NonBoundNonPhos_IkB IkB(Phos~No,p65,p50,Degrade~No) +Molecules IkBmRNA_Off IkBmRNA(Translation~Off) +Molecules NFkB_DNA_IkB DNA(IkB!0).NFkB(Transcription~Yes!0,Activation~Yes,Location~Nucleus) +Molecules Phos_IkB_NFkB NFkB(Transcription~No,Activation~No!0!1,Location~Cytoplasm).IkB(Phos~Yes,p65!0,p50!1,Degrade~No) +Molecules IkB_Prot26s IkB(Phos~Yes,p65,p50,Degrade~Yes!0).Proteasome26s(IkB!0) + +#Molecules Unbound_Cyto_NFkB NFkB(Location~Cytoplasm,Activation) +Molecules Unbound_Cyto_NFkB NFkB(Location~Cytoplasm,Activation) + +#Molecules Inactive_Cyto_NFkB NFkB(Activation~*!0!1,Location~Cytoplasm).IkB(Phos~No,p65!0,p50!1,Degrade~No) +Molecules Inactive_Cyto_NFkB NFkB(Activation!0!1,Location~Cytoplasm).IkB(Phos~No,p65!0,p50!1,Degrade~No) + +Molecules TNFmRNA_Off TNFmRNA(Translation~Off) +Molecules TNF_NFkB_DNA DNA(TNF!0).NFkB(Transcription~Yes!0,Activation~Yes,Location~Nucleus) +Molecules A20_NFkB_DNA DNA(A20!0).NFkB(Transcription~Yes!0,Activation~Yes,Location~Nucleus) +end observables + +generate_network({overwrite=>1}); + +setConcentration("LPS(MD2,TLR4,CD14,LPS)",0); +simulate_ode({suffix=>"equil",t_end=>50000,n_steps=>10,atol=>1e-12,rtol=>1e-12,sparse=>1,steady_state=>1}); + +#BEGIN SIMULATION +setConcentration("LPS(MD2,TLR4,CD14,LPS)","LPS_Init"); +writeSBML(); +writeMfile(); +simulate_ode({t_end=>100000,n_steps=>500,atol=>1e-12,rtol=>1e-12,sparse=>0}); \ No newline at end of file diff --git a/Published/An2009/README.md b/Published/An2009/README.md new file mode 100644 index 00000000..924b071d --- /dev/null +++ b/Published/An2009/README.md @@ -0,0 +1,21 @@ +# An 2009 + +TLR4 signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- An_2009.bngl + +## Tags + +published, immunology, an, 2009, cd14, md2, tlr4, tram, trif, sarm, traf4, irak1 diff --git a/Published/An2009/metadata.yaml b/Published/An2009/metadata.yaml new file mode 100644 index 00000000..4bdf97e1 --- /dev/null +++ b/Published/An2009/metadata.yaml @@ -0,0 +1,22 @@ +id: "An_2009" +name: "An 2009" +description: "TLR4 signaling" +tags: ["published", "immunology", "an", "2009", "cd14", "md2", "tlr4", "tram", "trif", "sarm", "traf4", "irak1"] +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-web-simulator" + source_path: "published-models/immune-signaling/An_2009.bngl" +playground: + visible: true + gallery_category: "immunology" + featured: false + difficulty: "intermediate" diff --git a/Published/Barua2007/Barua_2007.bngl b/Published/Barua2007/Barua_2007.bngl new file mode 100644 index 00000000..8c1ebcd5 --- /dev/null +++ b/Published/Barua2007/Barua_2007.bngl @@ -0,0 +1,155 @@ +# Base model of Shp2 regulation from Barua, Faeder, and Haugh (2006). +# Copyright 2006, North Carolina State University and Los Alamos National +# Laboratory + +# Concentration units are in micromolar; time units are in seconds. + +version("2.0.34"); + +begin parameters + +kdim 1000 + +kopen 10 +kclose 500 + +kon_CSH2 1 +koff_CSH2 1 + +kon_NSH2 1 +koff_NSH2 1 + +kkin_Y1 0.1 + +kon_PTP 1 +koff_PTP 10 +kcat_PTP 1 + +chi_r1 1000 +chi_r2 100 +chi_r3 1000 +chi_r4 1000 +chi_r5 100 +chi_r6 100 +chi_r7 100 +chi_r8 1000 # Equals chi_r1*chi_r6/chi_r2 +chi_r9 100 # Equals chi_r1*chi_r7/chi_r3 +chi_r10 100 # Equals chi_r1*chi_r6/chi_r4 +chi_r11 1000 # Equals chi_r1*chi_r7/chi_r5 + +R_dim 0.025 # R_tot= 2*R_dim +S_tot 0.05 +end parameters + +begin molecule types +R(DD,Y1~U~P,Y2~P) +S(NSH2~C~O,CSH2,PTP~C~O) +end molecule types + +begin species +S(NSH2~C,CSH2,PTP~C) S_tot +# Pre-dimerized receptors +R(DD!1,Y1~U,Y2~P).R(DD!1,Y1~U,Y2~P) R_dim +end species + +begin reaction rules +# Intra-complex phosphorylation +R(DD!+,Y1~U) -> R(DD!+,Y1~P) kkin_Y1 + +# Equilibrium between the closed form and open form of S +S(NSH2~C,PTP~C) <-> S(NSH2~O,PTP~O) kopen,kclose + +# Binding of S(CSH2) from cytosol +R(Y2~P) + S(CSH2) <-> R(Y2~P!1).S(CSH2!1) kon_CSH2,koff_CSH2 \ +exclude_reactants(2,R) + +# Binding of S(NSH2~O) from cytosol +R(Y2~P) + S(NSH2~O) <-> R(Y2~P!1).S(NSH2~O!1) kon_NSH2,koff_NSH2 \ +exclude_reactants(2,R) + +# Binding of S(PTP~O) from cytosol +R(Y1~P) + S(PTP~O) <-> R(Y1~P!1).S(PTP~O!1) kon_PTP,koff_PTP \ +exclude_reactants(2,R) + +# Dephosphorylation of R(Y1~P) +R(Y1~P!1).S(PTP~O!1) -> R(Y1~U) + S(PTP~O) kcat_PTP +R(Y1~P!1).S(PTP~O!1) -> R(Y1~U).S(PTP~O) kcat_PTP + +# 1 Intra-complex binding: CSH2 bound, association of NSH2 (open) with other receptor +R(Y2~P).S(NSH2~O,CSH2!+,PTP~O) <-> \ +R(Y2~P!1).S(NSH2~O!1,CSH2!+,PTP~O) chi_r1*kon_NSH2,koff_NSH2 + +# 2 Intra-complex binding: CSH2 bound, association of PTP (open) with same receptor +R(Y1~P,Y2~P!1).S(NSH2~O,CSH2!1,PTP~O) <-> \ +R(Y1~P!2,Y2~P!1).S(NSH2~O,CSH2!1,PTP~O!2) chi_r2*kon_PTP,koff_PTP + +# 3 Intra-complex binding: CSH2 bound, association of PTP (open) with other receptor +R(Y1~P).R(Y2~P!1).S(NSH2~O,CSH2!1,PTP~O) <-> \ +R(Y1~P!2).R(Y2~P!1).S(NSH2~O,CSH2!1,PTP~O!2) chi_r3*kon_PTP,koff_PTP + +# 4 Intra-complex binding: NSH2 bound, association of CSH2 with other receptor +R(Y2~P).S(NSH2~O!+,CSH2,PTP~O) <-> \ +R(Y2~P!1).S(NSH2~O!+,CSH2!1,PTP~O) chi_r1*kon_CSH2,koff_CSH2 + +# 5 Intra-complex binding: NSH2 bound, association of PTP with other receptor +R(Y1~P).R(Y2~P!1).S(NSH2~O!1,CSH2,PTP~O) <-> \ +R(Y1~P!2).R(Y2~P!1).S(NSH2~O!1,CSH2,PTP~O!2) chi_r4*kon_PTP,koff_PTP + +# 6 Intracomplex binding: NSH2 bound, association of PTP with same receptor +R(Y1~P,Y2~P!1).S(NSH2~O!1,CSH2,PTP~O) <-> \ +R(Y1~P!2,Y2~P!1).S(NSH2~O!1,CSH2,PTP~O!2) chi_r5*kon_PTP,koff_PTP + +# 7 Intra-complex binding: PTP bound, association of CSH2 with same receptor +R(Y1~P!1,Y2~P).S(NSH2~O,CSH2,PTP~O!1) <-> \ +R(Y1~P!1,Y2~P!2).S(NSH2~O,CSH2!2,PTP~O!1) chi_r2*kon_CSH2,koff_CSH2 + +# 8 Intra-complex binding: PTP bound, association of CSH2 with other receptor +R(Y1~P!1).R(Y2~P).S(NSH2~O,CSH2,PTP~O!1) <-> \ +R(Y1~P!1).R(Y2~P!2).S(NSH2~O,CSH2!2,PTP~O!1) chi_r3*kon_CSH2,koff_CSH2 + +# 9 Intra-complex binding: PTP bound, association of NSH2 with other receptor +R(Y1~P!1).R(Y2~P).S(NSH2~O,CSH2,PTP~O!1) <-> \ +R(Y1~P!1).R(Y2~P!2).S(NSH2~O!2,CSH2,PTP~O!1) chi_r4*kon_NSH2,koff_NSH2 + +# 10 Intra-complex binding: PTP bound, association of NSH2 with same receptor +R(Y1~P!1,Y2~P).S(NSH2~O,CSH2,PTP~O!1) <-> \ +R(Y1~P!1,Y2~P!2).S(NSH2~O!2,CSH2,PTP~O!1) chi_r5*kon_NSH2,koff_NSH2 + +# 11 Intra-complex binding: CSH2 & NSH2 bound, assoc. of PTP with same receptor as CSH2 +R(Y1~P,Y2~P!1).R(Y2~P!2).S(NSH2~O!2,CSH2!1,PTP~O) <-> \ +R(Y1~P!3,Y2~P!1).R(Y2~P!2).S(NSH2~O!2,CSH2!1,PTP~O!3) \ +chi_r6*kon_PTP,koff_PTP + +# 12 Intra-complex binding: CSH2 & NSH2 bound, assoc. of PTP with same receptor as NSH2 +R(Y1~P,Y2~P!1).R(Y2~P!2).S(NSH2~O!1,CSH2!2,PTP~O) <-> \ +R(Y1~P!3,Y2~P!1).R(Y2~P!2).S(NSH2~O!1,CSH2!2,PTP~O!3) \ +chi_r7*kon_PTP,koff_PTP + +# 13 Intra-complex binding: CSH2 & PTP bound to the same receptor, assoc. of NSH2 +R(Y1~P!1,Y2~P!2).R(Y2~P).S(NSH2~O,CSH2!2,PTP~O!1) <-> \ +R(Y1~P!1,Y2~P!2).R(Y2~P!3).S(NSH2~O!3,CSH2!2,PTP~O!1) \ +chi_r8*kon_NSH2,koff_NSH2 + +# 14 Intra-complex binding: CSH2 & PTP bound to different receptors, assoc. of NSH2 +R(Y2~P!1).R(Y1~P!2,Y2~P).S(NSH2~O,CSH2!1,PTP~O!2) <-> \ +R(Y2~P!1).R(Y1~P!2,Y2~P!3).S(NSH2~O!3,CSH2!1,PTP~O!2) \ +chi_r9*kon_NSH2,koff_NSH2 + +# 15 Intra-complex binding: PTP & NSH2 bound to different receptors, assoc. of CSH2 +R(Y2~P!1).R(Y1~P!2,Y2~P).S(NSH2~O!1,CSH2,PTP~O!2) <-> \ +R(Y2~P!1).R(Y1~P!2,Y2~P!3).S(NSH2~O!1,CSH2!3,PTP~O!2) \ +chi_r10*kon_CSH2,koff_CSH2 + +# 16 Intra-complex binding: PTP & NSH2 bound to same receptor, assoc. of CSH2 +R(Y1~P!1,Y2~P!2).R(Y2~P).S(NSH2~O!2,CSH2,PTP~O!1) <-> \ +R(Y1~P!1,Y2~P!2).R(Y2~P!3).S(NSH2~O!2,CSH2!3,PTP~O!1) \ +chi_r11*kon_CSH2,koff_CSH2 + +end reaction rules + +begin observables +Molecules pYR R(Y1~P!?) +end observables + +generate_network({overwrite=>1}); +simulate_ode({t_end=>1000,n_steps=>100,steady_state=>1,atol=>1e-10,rtol=>1e-8,sparse=>0}); \ No newline at end of file diff --git a/Published/Barua2007/README.md b/Published/Barua2007/README.md new file mode 100644 index 00000000..95a1ed74 --- /dev/null +++ b/Published/Barua2007/README.md @@ -0,0 +1,21 @@ +# Barua 2007 + +Model from Haugh (2006) + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Barua_2007.bngl + +## Tags + +published, barua, 2007, version, r, s diff --git a/Published/Barua2007/metadata.yaml b/Published/Barua2007/metadata.yaml new file mode 100644 index 00000000..c8d45e88 --- /dev/null +++ b/Published/Barua2007/metadata.yaml @@ -0,0 +1,22 @@ +id: "Barua_2007" +name: "Barua 2007" +description: "Model from Haugh (2006)" +tags: ["published", "barua", "2007", "version", "r", "s"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/complex-models/Barua_2007.bngl" +playground: + visible: true + gallery_category: "signaling" + featured: false + difficulty: "intermediate" diff --git a/Published/Barua2009/Barua_2009.bngl b/Published/Barua2009/Barua_2009.bngl new file mode 100644 index 00000000..041a766d --- /dev/null +++ b/Published/Barua2009/Barua_2009.bngl @@ -0,0 +1,52 @@ +begin parameters +kon_dimer 1.0 # units = 1/(uM.s) +koff_dimer 0.1 # units = 1/s +kon_SH2 1.0 # units = 1/(uM.s) +koff_SH2 0.1 # units = 1/s +kphos_slow 0.1 # units = 1/s +kphos_fast 1.0 # units = 1/s +Jtot 0.000014 # units = uM +Stot 0.1 # units = uM +end parameters + +begin molecule types +S(SH2,DD) + +J(Y1~P,Y~U~P) + +end molecule types + +begin species +S(SH2,DD) Stot +J(Y1~P,Y~U) Jtot + +end species + +begin reaction rules + +# JAK2-SH2B interaction +J(Y1~P) + S(SH2) <-> J(Y1~P!1).S(SH2!1) kon_SH2, koff_SH2 + +# SH2B dimerization +S(DD) + S(DD) <-> S(DD!1).S(DD!1) kon_dimer, koff_dimer + +# JAK2 phosphorylation +J(Y~U,Y1!1).S(SH2!1,DD!2).S(DD!2,SH2!3).J(Y1!3,Y~U) -> J(Y~P,Y1!1).S(SH2!1,DD!2).S(DD!2,SH2!3).J(Y1!3,Y~U) kphos_slow + +J(Y~U,Y1!1).S(SH2!1,DD!2).S(DD!2,SH2!3).J(Y1!3,Y~P) -> J(Y~P,Y1!1).S(SH2!1,DD!2).S(DD!2,SH2!3).J(Y1!3,Y~P) kphos_fast + + +end reaction rules + +begin observables + Molecules J_mono J(Y1~P) + Molecules JS J(Y1~P!1).S(SH2!1,DD) + Molecules JSS J(Y1~P!1).S(SH2!1,DD!2).S(SH2,DD!2) + Molecules JSSJ J.J + Molecules J_active J(Y~P) + Molecules J_inactive J(Y~U) +end observables + +generate_network({overwrite=>1, max_stoich=>{J=>2}}); + +simulate_ode({t_end=>10000, n_steps=>10000,atoll=>1e-08,rtol=>1e-08,sparse=>1}); \ No newline at end of file diff --git a/Published/Barua2009/README.md b/Published/Barua2009/README.md new file mode 100644 index 00000000..68ff6495 --- /dev/null +++ b/Published/Barua2009/README.md @@ -0,0 +1,21 @@ +# Barua 2009 + +JAK2-SH2B signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Barua_2009.bngl + +## Tags + +published, barua, 2009, s, j diff --git a/Published/Barua2009/metadata.yaml b/Published/Barua2009/metadata.yaml new file mode 100644 index 00000000..b9172fa6 --- /dev/null +++ b/Published/Barua2009/metadata.yaml @@ -0,0 +1,22 @@ +id: "Barua_2009" +name: "Barua 2009" +description: "JAK2-SH2B signaling" +tags: ["published", "barua", "2009", "s", "j"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/complex-models/Barua_2009.bngl" +playground: + visible: true + gallery_category: "signaling" + featured: false + difficulty: "intermediate" diff --git a/Published/Barua2013/Barua_2013.bngl b/Published/Barua2013/Barua_2013.bngl new file mode 100644 index 00000000..0cb18084 --- /dev/null +++ b/Published/Barua2013/Barua_2013.bngl @@ -0,0 +1,130 @@ +begin parameters +BCATtot 11000 +APCtot 31540 +AXINtot 3154 +GSKtot 31540 +CK1atot 31540 + +kf1_bap 3.17e-6 +kr1_bap 0.273 +kf2_bap 3.17e-6 +kr2_bap 0.0015 # This default value applies to full-length APC; for APC1338, which lacks the 3rd 20-aa repeat, kr2_bap = 0.085 (Table 1). + +kf_ba 3.17e-6 +kr_ba 0.227 + +kf_apa 3.17e-6 # This default value applies to full-length APC; for APC1338, which lacks the SAMP repeats, kf_apa = 0 (Table 1). +kr_apa 0.1 + +kf_ga 3.17e-6 +kr_ga 0.065 + +kf_ca 3.17e-6 +kr_ca 0.1 + +kpb 0.05 +kmpb 0.0012 + +kp 0.05 +kmp 0.05 + +kdb1 0.0000428 +kdb2 0.00428 +ksb 4.0 +chi 3154000 +end parameters + + +begin molecule types +AXIN(rgs,gid,b,e) +GSK3b(a) +APC(a15,a20~U~P,s) +bCat(s33s37~U~P,s45~U~P,ARM34,ARM59,ss~l~d) +CK1a(e) +dead +I +end molecule types + + +begin species +bCat(s33s37~U,s45~U,,ARM34,ARM59,ss~l) BCATtot +APC(a15,a20~U,s) APCtot +AXIN(rgs,gid,b,e) AXINtot +GSK3b(a) GSKtot +CK1a(e) CK1atot +I 1 +dead 0 +end species + +begin reaction rules + +# Binding of beta-catenin ARM repeats 5-9 to APC 15-aa repeats (Arrow 1) +bCat(ARM59,ss~l) + APC(a15) <-> bCat(ARM59!1,ss~l).APC(a15!1) kf1_bap, kr1_bap +bCat(ARM59,ARM34!1,ss~l).AXIN(b!1,rgs!2).APC(a15,s!2) <-> bCat(ARM59!3,ARM34!1,ss~l).AXIN(b!1,rgs!2).APC(a15!3,s!2) chi*kf1_bap, kr1_bap +bCat(ARM59,ARM34!1).APC(a15,a20~P!1) <-> bCat(ARM59!2,ARM34!1).APC(a15!2,a20~P!1) chi*kf1_bap, kr1_bap + +# Binding of beta-catenin ARM repeats 3-4 to phosphorylated APC 20-aa repeats (Arrow 2) +bCat(ARM34,ss~l) + APC(a20~P) <-> bCat(ARM34!1,ss~l).APC(a20~P!1) kf2_bap, kr2_bap +bCat(ARM59!1,ARM34).APC(a15!1,a20~P) <-> bCat(ARM59!1,ARM34!2).APC(a15!1,a20~P!2) chi*kf2_bap, kr2_bap + +# Binding of beta-Catenin ARM repeats 3 and 4 with Axin (Arrow 3) +bCat(ARM34,ss~l) + AXIN(b) <-> bCat(ARM34!1,ss~l).AXIN(b!1) kf_ba, kr_ba +bCat(ARM59!1,ARM34,ss~l).AXIN(b,rgs!2).APC(a15!1,s!2) <-> bCat(ARM59!1,ARM34!3,ss~l).AXIN(b!3,rgs!2).APC(a15!1,s!2) chi*kf_ba, kr_ba + +# Binding of APC SAMP repeats to Axin RGS domain (Arrow 4) +APC(a20~U,s) + AXIN(rgs) <-> APC(a20~U,s!1).AXIN(rgs!1) kf_apa, kr_apa +APC(a20~P,s) + AXIN(rgs) <-> APC(a20~P,s!1).AXIN(rgs!1) kf_apa, kr_apa +APC(a20~P!+,s) + AXIN(rgs) <-> APC(a20~P!+,s!1).AXIN(rgs!1) kf_apa, kr_apa +APC(a15!1,a20~U,s).bCat(ARM59!1,ARM34!2,ss~l).AXIN(rgs,b!2) <-> APC(a15!1,a20~U,s!3).bCat(ARM59!1,ARM34!2,ss~l).AXIN(rgs!3,b!2) chi*kf_apa, kr_apa +APC(a15!1,a20~P,s).bCat(ARM59!1,ARM34!2,ss~l).AXIN(rgs,b!2) <-> APC(a15!1,a20~P,s!3).bCat(ARM59!1,ARM34!2,ss~l).AXIN(rgs!3,b!2) chi*kf_apa, kr_apa +APC(a15!1,a20~P!+,s).bCat(ARM59!1,ARM34!2,ss~l).AXIN(rgs,b!2) <-> APC(a15!1,a20~P!+,s!3).bCat(ARM59!1,ARM34!2,ss~l).AXIN(rgs!3,b!2) chi*kf_apa, kr_apa + +# Binding of GSK-3beta to AXIN GID domain (Arrow 5) +GSK3b(a) + AXIN(gid) <-> GSK3b(a!1).AXIN(gid!1) kf_ga, kr_ga + +# Binding of CK1alpha to Axin (Arrow 6) +AXIN(e) + CK1a(e) <-> AXIN(e!1).CK1a(e!1) kf_ca, kr_ca + +# Phosphorylation of S45 of beta-catenin by CK1alpha (Arrow 7) +bCat(s45~U,ss~l).CK1a -> bCat(s45~P,ss~l).CK1a kpb + +# Phosphorylation of S33/S37 of beta-catenin by GSK-3beta (Arrow 8) +bCat(s33s37~U,s45~P,ss~l).GSK3b -> bCat(s33s37~P,s45~P,ss~l).GSK3b kpb + +# Phosphorylation of APC 20-aa repeat by CK1epsilon (implicit) and GSK-3beta (Arrows 9 and 10) +APC(a20~U).GSK3b -> APC(a20~P).GSK3b kp + +# Dephsophorylation of beta-catenin +bCat(s45~P,ss~l) -> bCat(s45~U,ss~l) kmpb +bCat(s33s37~P,ss~l) -> bCat(s33s37~U,ss~l) kmpb + +# Dephoshporylation of APC +APC(a20~P).AXIN -> APC(a20~U).AXIN kmp + +# b-catenin synthesis +I -> I + bCat(s33s37~U,s45~U,ARM59,ARM34,ss~l) ksb + +# Degradation of beta-catenin not phosphorylated at S33/S37 +bCat(s33s37~U,ss~l) -> bCat(s33s37~U,ss~d) kdb1 + +# Degradation of beta-catenin phosphorylated at S33/S37 +bCat(s33s37~P,ss~l) -> bCat(s33s37~P,ss~d) kdb2 + +# (Assumed) rapid dissociation of beta-catenin associated proteins upon degradation of beta-catenin +bCat(ARM59!1,ss~d).APC(a15!1) -> bCat(ARM59,ss~d) + APC(a15) 1000 +bCat(ARM59!1,ss~d).APC(a15!1) -> bCat(ARM59,ss~d).APC(a15) 1000 +bCat(ARM34!1,ss~d).APC(a20~P!1) -> bCat(ARM34,ss~d) + APC(a20~P) 1000 +bCat(ARM34!1,ss~d).AXIN(b!1) -> bCat(ARM34,ss~d) + AXIN(b) 1000 +bCat(ARM34!1,ss~d).AXIN(b!1) -> bCat(ARM34,ss~d).AXIN(b) 1000 +end reaction rules + +begin observables +Molecules bcat_tot bCat(ss~l) +Molecules bCat_pS45 bCat(s45~P,ss~l) +Molecules bCat_pS33S37 bCat(s33s37~P,ss~l) +Molecules APC_p20a APC(a20~P!?) +Species BCat_Axin bCat(ARM34!1,ss~l).AXIN(b!1) +end observables + +generate_network({overwrite=>1,max_stoich=>{APC=>1,AXIN=>1,bCat=>1}}); +simulate_ode({t_end=>250000, n_steps=>2500,atoll=>1e-08,rtol=>1e-08,sparse=>1}); \ No newline at end of file diff --git a/Published/Barua2013/README.md b/Published/Barua2013/README.md new file mode 100644 index 00000000..aa8e1957 --- /dev/null +++ b/Published/Barua2013/README.md @@ -0,0 +1,21 @@ +# Barua 2013 + +Beta-catenin destruction + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Barua_2013.bngl + +## Tags + +published, barua, 2013, axin, gsk3b, apc, bcat, ck1a diff --git a/Published/Barua2013/metadata.yaml b/Published/Barua2013/metadata.yaml new file mode 100644 index 00000000..123da78b --- /dev/null +++ b/Published/Barua2013/metadata.yaml @@ -0,0 +1,22 @@ +id: "Barua_2013" +name: "Barua 2013" +description: "Beta-catenin destruction" +tags: ["published", "barua", "2013", "axin", "gsk3b", "apc", "bcat", "ck1a"] +category: "regulation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/cell-regulation/Barua_2013.bngl" +playground: + visible: true + gallery_category: "regulation" + featured: false + difficulty: "intermediate" diff --git a/Published/BaruaBCR2012/BaruaBCR_2012.bngl b/Published/BaruaBCR2012/BaruaBCR_2012.bngl new file mode 100644 index 00000000..1c93d035 --- /dev/null +++ b/Published/BaruaBCR2012/BaruaBCR_2012.bngl @@ -0,0 +1,379 @@ +begin parameters +# Parameter values of Table 1 +# see Table 1 and Methods section for additional information +p1 3.0e5 # molecules/cell +p2 10.0 # /sec +p3 3.0e-4 # /sec +p4 3.0e-7 # /(molecules/cell)/sec +p5 30.0 # /sec +p6 3.0e-5 # /(molecules/cell)/sec +p7 0.3 # /sec +p8 0.1 # /sec +p9 3.0e-6 # /(molecules/cell)/sec +p10 0.3 # /sec +p11 1.0e-5 # /(molecules/cell)/sec +p12 1.0e3 # /sec +p13 30.0 # /sec +p14 0.1 # /sec +p15 3.0e-7 # /(molecules/cell)/sec +p16 3.0e-3 # /sec +p17 1.0e-10 # /(molecules/cell)/sec +p18 1.0e-7 # /(molecules/cell)/sec +p19 1.0e-7 # /(molecules/cell)/sec +p20 3.0e-5 # /(molecules/cell)/sec +p21 1.0e3 # /sec +p22 3.0e-6 # /(molecules/cell)/sec +p23 3.0e-4 # /(molecules/cell)/sec +p24 1.0 # /sec +p25 5.0 # dimensionless +# Strength of antigen signal +# c=0, tonic signaling; c>0, antigen-induced signaling +c 0.0 # dimensionless +# Protein copy numbers +BT p1 # total amount of BCR +LT p1 # total amount of Lyn +FT p1 # total amount of Fyn +PT p1 # total amount of PAG +CT p1 # total amount of Csk +ST p1 # total amount of Syk +# Rate constants for association, dissociation and phosphorylation reactions +# these reactions are illustrated in Fig. 1 +kf1 p4 # 1: Lyn(unique) binds BCR(Y188_Y199~0) +kr1 p5 # reverse of 1 + +kf2a p6 # 2a: Lyn(SH2) binds BCR(Y188_Y199~P) +kf2b p6 # 2b: Lyn(SH2) binds BCR(Y188_Y199~PP) +kr2a p7 # reverse of 2a +kr2b p8 # reverse of 2b +kf3 p2 # 3: Lyn(SH2) binds Lyn(Y508~P) in cis +kr3 p3 # reverse of 3 +kp4a c*p19 # 4a: Lyn-catalyzed phosphorylation of BCR(Y188_Y199~0) +kp4b c*p19 # 4b: Lyn-catalyzed phosphorylation of BCR(Y188_Y199~P) +kp4c c*p20 # 4c: Lyn-catalyzed phosphorylation of BCR(Y188_Y199~0) +kp4d c*p20 # 4d: Lyn-catalyzed phosphorylation of BCR(Y188_Y199~P) +kp5a c*p19 # 5a: Lyn-catalyzed phosphorylation of BCR(Y196_Y207~0) +kp5b c*p19 # 5b: Lyn-catalyzed phosphorylation of BCR(Y196_Y207~P) +kp5c c*p20 # 5c: Lyn-catalyzed phosphorylation of BCR(Y196_Y207~0) +kp5d c*p20 # 5d: Lyn-catalyzed phosphorylation of BCR(Y196_Y207~P) +kp6a c*p19 # 6a: Lyn-catalyzed phosphorylation of Lyn(Y397~0) +kp6b c*p20 # 6b: Lyn-catalyzed phosphorylation of Lyn(Y397~0) +kp6c p17 # 6c: Lyn-catalyzed phosphorylation of Lyn(Y397~0) +kp6d p18 # 6d: Lyn-catalyzed phosphorylation of Lyn(Y397~0) +kp7a c*p19 # 7a: Lyn-catalyzed phosphorylation of Fyn(Y420~0) +kp7b c*p20 # 7b: Lyn-catalyzed phosphorylation of Fyn(Y420~0) +kp7c p17 # 7c: Lyn-catalyzed phosphorylation of Fyn(Y420~0) +kp7d p18 # 7d: Lyn-catalyzed phosphorylation of Fyn(Y420~0) +kp8a p21 # 8a: Lyn-catalyzed phosphorylation of PAG(Y387_Y417~0) +kp8b p21 # 8b: Lyn-catalyzed phosphorylation of PAG(Y163_Y181~0) +kp8c p21 # 8c: Lyn-catalyzed phosphorylation of PAG(Y317~0) +kf9 p4 # 9: Fyn(unique) binds BCR(Y188_Y199~0) +kr9 p5 # reverse of 9 +kf10a p6 # 10a: Fyn(SH2) binds BCR(Y188_Y199~P) +kf10b p6 # 10b: Fyn(SH2) binds BCR(Y188_Y199~PP) +kr10a p7 # reverse of 10a +kr10b p8 # reverse of 10b +kf11 p2 # 11: Fyn(SH2) binds Fyn(Y531~P) in cis +kr11 p3 # reverse of 11 +kp12a c*p19/p25 # 12a: Fyn-catalyzed phosphorylation of BCR(Y196_Y207~0) +kp12b c*p19/p25 # 12b: Fyn-catalyzed phosphorylation of BCR(Y196_Y207~P) +kp12c c*p20/p25 # 12c: Fyn-catalyzed phosphorylation of BCR(Y196_Y207~0) +kp12d c*p20/p25 # 12d: Fyn-catalyzed phosphorylation of BCR(Y196_Y207~P) +kp13a c*p19/p25 # 13a: Fyn-catalyzed phosphorylation of BCR(Y188_Y199~0) +kp13b c*p19/p25 # 13b: Fyn-catalyzed phosphorylation of BCR(Y188_Y199~P) +kp13c c*p20/p25 # 13c: Fyn-catalyzed phosphorylation of BCR(Y188_Y199~0) +kp13d c*p20/p25 # 13d: Fyn-catalyzed phosphorylation of BCR(Y188_Y199~P) +kp14a c*p19/p25 # 14a: Fyn-catalyzed phosphorylation of Fyn(Y420~0) +kp14b c*p20/p25 # 14b: Fyn-catalyzed phosphorylation of Fyn(Y420~0) +kp14c p17 # 14c: Fyn-catalyzed phosphorylation of Fyn(Y420~0) +kp14d p18 # 14d: Fyn-catalyzed phosphorylation of Fyn(Y420~0) +kp15a c*p19/p25 # 15a: Fyn-catalyzed phosphorylation of Lyn(Y397~0) +kp15b c*p20/p25 # 15b: Fyn-catalyzed phosphorylation of Lyn(Y397~0) +kp15c p17 # 15c: Fyn-catalyzed phosphorylation of Lyn(Y397~0) +kp15d p18 # 15d: Fyn-catalyzed phosphorylation of Lyn(Y397~0) +kp16a p21 # 16a: Fyn-catalyzed phosphorylation of PAG(Y387_Y417~0) +kp16b 0.0 # 16b: Fyn-catalyzed phosphorylation of PAG(Y163_Y181~0) +kp16c p21 # 16c: Fyn-catalyzed phosphorylation of PAG(Y317~0) +kf17 p9 # 17: Syk(tSH2) binds BCR(Y196_Y207~PP) +kr17 p10 # reverse of 17 +kp18a c*p22 # 18a: Syk-catalyzed phosphorylation of Syk(Y525_Y526~0) +kp18b c*p23 # 18b: Syk-catalyzed phosphorylation of Syk(Y525_Y526~0) +kf19a p11 # 19a: Lyn(SH3) binds PAG(PRS2) +kr19a p13 # reverse of 19a +kf19b p12 # 19b: Lyn(SH3) binds PAG(PRS2) +kf20a p6 # 20a: Lyn(SH2) binds PAG(Y387_Y417~P) +kf20b p12 # 20b: Lyn(SH2) binds PAG(Y387_Y417~P) +kr20b p14 # reverse of 20b (and 19b) +kf21a p11 # 21a: Fyn(SH3) binds PAG(PRS1) +kr21a p13 # reverse of 21a +kf21b p12 # 21b: Fyn(SH3) binds PAG(PRS1) +kf22a p6 # 22a: Fyn(SH2) binds PAG(Y163_Y181~P) +kf22b p12 # 22b: Fyn(SH2) binds PAG(Y163_Y181~P) +kr22b p14 # reverse of 22b (and 21b) +kf23 p15 # 23: Csk(SH2) binds PAG(Y317~P) +kr23 p16 # reverse of 23 +kp24 p21 # 24: Csk-catalyzed phosphorylation of Lyn(Y508~0) +kp25 p21 # 25: Csk-catalyzed phosphorylation of Fyn(Y531~0) + +# Rate constants for dephosphorylation reactions +# these reactions are NOT illustrated in Fig. 1 +kdp26a p24 # Dephosphorylation of BCR(Y188_Y199~P) +kdp26b p24 # Dephosphorylation of BCR(Y188_Y199~PP) +kdp27a p24 # Dephosphorylation of BCR(Y196_Y207~P) +kdp27b p24 # Dephosphorylation of BCR(Y196_Y207~PP) +kdp28a p24 # Dephosphorylation of Lyn(Y397~P) +kdp28b p24 # Dephosphorylation of Lyn(Y508~P) +kdp29a p24 # Dephosphorylation of Fyn(Y420~P) +kdp29b p24 # Dephosphorylation of Fyn(Y531~P) +kdp30a p24 # Dephosphorylation of PAG(Y317~P) +kdp30b p24 # Dephosphorylation of PAG(Y387_Y417~P) +kdp30c p24 # Dephosphorylation of PAG(Y163_Y181~P) +kdp31 p24 # Dephosphorylation of Syk(Y525_Y526~P) +end parameters +begin molecule types +# The molecule types are illustrated by nested boxes in Fig. 1 +# B cell antigen receptor +# Y188 and Y199 in the Ig-alpha ITAM are lumped together +# Y196 and Y207 in the Ig-beta ITAM are lumped together +# 0, unphosphorylated; P, singly phosphorylated; PP, doubly phosphorylated +BCR(Y188_Y199~0~P~PP,Y196_Y207~0~P~PP) +# Src-family kinase Lyn +# Y397, A-loop tyrosine +# Y508, C-terminal regulatory tyrosine +# 0, unphosphorylated; P, phosphorylated +Lyn(unique,SH3,SH2,Y397~0~P,Y508~0~P) +# Src-family kinase Fyn (FynT isoform) +# Y420, A-loop tyrosine +# Y531, C-terminal regulatory tyrosine +# 0, unphosphorylated; P, phosphorylated +Fyn(unique,SH3,SH2,Y420~0~P,Y531~0~P) +# Protein tyrosine kinase Csk +Csk(SH2) +# Adapter protein PAG (aka Cbp) +# PRS1, proline-rich sequence recognized by SH3 domain of Fyn +# PRS2, proline-rich sequence recognized by SH3 domain of Lyn +# Y163 and Y181 are lumped together (docking sites for SH2 domain of Fyn) +# Y387 and Y417 are lumped together (docking sites for SH2 domain of Lyn) +# Y317, docking site of Csk +# 0, unphosphorylated; P, phosphorylated +PAG(PRS1,PRS2,Y317~0~P,Y163_Y181~0~P,Y387_Y417~0~P) +# Protein tyrosine kinase Syk +# tSH2, the tandem SH2 domains of Syk are lumped together +# Y525 and Y526 in the activation loop of Syk are lumped together +Syk(tSH2,Y525_Y526~0~P) +end molecule types +begin seed species +BCR(Y188_Y199~0,Y196_Y207~0) BT +Lyn(unique,SH3,SH2,Y397~0,Y508~0) LT +Fyn(unique,SH3,SH2,Y420~0,Y531~0) FT +PAG(PRS1,PRS2,Y317~0,Y163_Y181~0,Y387_Y417~0) PT +Csk(SH2) CT +Syk(tSH2,Y525_Y526~0) ST +end seed species +begin reaction rules +# The following 25 sets of rules are represented by Arrows 1-25 in Fig. 1 +# The rules within a set share a common reaction center +# Arrow 1 +# unique domain of Lyn binds unphosphorylated Ig-alpha ITAM +BCR(Y188_Y199~0) + Lyn(unique,SH3,SH2) <-> \ +BCR(Y188_Y199~0!1).Lyn(unique!1,SH3,SH2) kf1, kr1 +# Arrow 2 +# SH2 domain of Lyn binds phosphorylated Ig-alpha ITAM +BCR(Y188_Y199~P) + Lyn(unique,SH3,SH2) <-> \ +BCR(Y188_Y199~P!1).Lyn(unique,SH3,SH2!1) kf2a, kr2a # singly phosphorylated ITAM +BCR(Y188_Y199~PP) + Lyn(unique,SH3,SH2) <-> \ +BCR(Y188_Y199~PP!1).Lyn(unique,SH3,SH2!1) kf2b, kr2b # doubly phosphorylated ITAM +# Arrow 3 +# autoinhibition of Lyn, SH2 domain of Lyn binds C-terminal pY +Lyn(unique,SH3,SH2,Y508~P) <-> Lyn(unique,SH3,SH2!1,Y508~P!1) kf3, kr3 +# Arrow 4 +# Lyn phosphorylates Ig-alpha ITAM +Lyn(Y397~0).BCR() + BCR(Y188_Y199~0) -> Lyn(Y397~0).BCR() + BCR(Y188_Y199~P) 2*kp4a +Lyn(Y397~0).BCR() + BCR(Y188_Y199~P) -> Lyn(Y397~0).BCR() + BCR(Y188_Y199~PP) kp4b +Lyn(Y397~P).BCR() + BCR(Y188_Y199~0) -> Lyn(Y397~P).BCR() + BCR(Y188_Y199~P) 2*kp4c +Lyn(Y397~P).BCR() + BCR(Y188_Y199~P) -> Lyn(Y397~P).BCR() + BCR(Y188_Y199~PP) kp4d +# Arrow 5 +# Lyn phosphorylates Ig-beta ITAM +Lyn(Y397~0).BCR()+BCR(Y196_Y207~0) -> Lyn(Y397~0).BCR()+BCR(Y196_Y207~P) 2*kp5a +Lyn(Y397~0).BCR()+BCR(Y196_Y207~P) -> Lyn(Y397~0).BCR()+BCR(Y196_Y207~PP) kp5b +Lyn(Y397~P).BCR()+BCR(Y196_Y207~0) -> Lyn(Y397~P).BCR()+BCR(Y196_Y207~P) 2*kp5c +Lyn(Y397~P).BCR()+BCR(Y196_Y207~P) -> Lyn(Y397~P).BCR()+BCR(Y196_Y207~PP) kp5d +# Arrow 6 +# trans autophosphorylation of Lyn +# receptor-bound Lyn phosphorylates receptor-bound Lyn +Lyn(Y397~0).BCR() + BCR().Lyn(Y397~0) -> Lyn(Y397~0).BCR() + BCR().Lyn(Y397~P) kp6a +Lyn(Y397~P).BCR() + BCR().Lyn(Y397~0) -> Lyn(Y397~P).BCR() + BCR().Lyn(Y397~P) kp6b +# free Lyn phosphorylates free Lyn +Lyn(unique,SH3,SH2,Y397~0,Y508~0) + Lyn(unique,SH3,SH2,Y397~0,Y508~0) -> \ +Lyn(unique,SH3,SH2,Y397~0,Y508~0) + Lyn(unique,SH3,SH2,Y397~P,Y508~0) kp6c +Lyn(unique,SH3,SH2,Y397~P,Y508~0) + Lyn(unique,SH3,SH2,Y397~0,Y508~0) -> \ +Lyn(unique,SH3,SH2,Y397~P,Y508~0) + Lyn(unique,SH3,SH2,Y397~P,Y508~0) kp6d +# Arrow 7 +# Lyn phosphorylates Fyn +# receptor-bound Lyn phosphorylates receptor-bound Fyn +Lyn(Y397~0).BCR() + BCR().Fyn(Y420~0) -> Lyn(Y397~0).BCR() + BCR().Fyn(Y420~P) kp7a +Lyn(Y397~P).BCR() + BCR().Fyn(Y420~0) -> Lyn(Y397~P).BCR() + BCR().Fyn(Y420~P) kp7b +# free Lyn phosphorylates free Fyn +Lyn(unique,SH3,SH2,Y397~0,Y508~0) + Fyn(unique,SH3,SH2,Y420~0,Y531~0) -> \ +Lyn(unique,SH3,SH2,Y397~0,Y508~0) + Fyn(unique,SH3,SH2,Y420~P,Y531~0) kp7c +Lyn(unique,SH3,SH2,Y397~P,Y508~0) + Fyn(unique,SH3,SH2,Y420~0,Y531~0) -> \ +Lyn(unique,SH3,SH2,Y397~P,Y508~0) + Fyn(unique,SH3,SH2,Y420~P,Y531~0) kp7d +# Arrow 8 +# Lyn phosphorylates PAG +Lyn(Y397~P,Y508).PAG(Y387_Y417~0) -> Lyn(Y397~P,Y508).PAG(Y387_Y417~P) kp8a +Lyn(SH2!1,Y397~P,Y508).PAG(Y163_Y181~0,Y387_Y417~P!1) -> \ +Lyn(SH2!1,Y397~P,Y508).PAG(Y163_Y181~P,Y387_Y417~P!1) kp8b +Lyn(SH2!1,Y397~P,Y508).PAG(Y317~0,Y387_Y417~P!1) -> \ +Lyn(SH2!1,Y397~P,Y508).PAG(Y317~P,Y387_Y417~P!1) kp8c +# Arrow 9 +# unique domain of Fyn binds unphosphorylated Ig-alpha ITAM +BCR(Y188_Y199~0) + Fyn(unique,SH3,SH2) <-> \ +BCR(Y188_Y199~0!1).Fyn(unique!1,SH3,SH2) kf9, kr9 +# Arrow 10 +# SH2 domain of Fyn binds phosphorylated Ig-alpha ITAM +BCR(Y188_Y199~P) + Fyn(unique,SH3,SH2) <-> \ +BCR(Y188_Y199~P!1).Fyn(unique,SH3,SH2!1) kf10a, kr10a +BCR(Y188_Y199~PP) + Fyn(unique,SH3,SH2) <-> \ +BCR(Y188_Y199~PP!1).Fyn(unique,SH3,SH2!1) kf10b, kr10b +# Arrow 11 +# autoinhibition of Fyn, SH2 domain of Fyn binds C-terminal pY +Fyn(unique,SH3,SH2,Y531~P) <-> Fyn(unique,SH3,SH2!1,Y531~P!1) kf11, kr11 + +# Arrow 12 +# Fyn phosphorylates Ig-beta ITAM +Fyn(Y420~0).BCR() + BCR(Y196_Y207~0) -> Fyn(Y420~0).BCR() + BCR(Y196_Y207~P) 2*kp12a +Fyn(Y420~0).BCR() + BCR(Y196_Y207~P) -> Fyn(Y420~0).BCR() + BCR(Y196_Y207~PP) kp12b +Fyn(Y420~P).BCR() + BCR(Y196_Y207~0) -> Fyn(Y420~P).BCR() + BCR(Y196_Y207~P) 2*kp12c +Fyn(Y420~P).BCR() + BCR(Y196_Y207~P) -> Fyn(Y420~P).BCR() + BCR(Y196_Y207~PP) kp12d +# Arrow 13 +# Fyn phosphorylates Ig-alpha ITAM +Fyn(Y420~0).BCR() + BCR(Y188_Y199~0) -> Fyn(Y420~0).BCR() + BCR(Y188_Y199~P) 2*kp13a +Fyn(Y420~0).BCR() + BCR(Y188_Y199~P) -> Fyn(Y420~0).BCR() + BCR(Y188_Y199~PP) kp13b +Fyn(Y420~P).BCR() + BCR(Y188_Y199~0) -> Fyn(Y420~P).BCR() + BCR(Y188_Y199~P) 2*kp13c +Fyn(Y420~P).BCR() + BCR(Y188_Y199~P) -> Fyn(Y420~P).BCR() + BCR(Y188_Y199~PP) kp13d +# Arrow 14 +# trans autophosphorylation of Fyn +# receptor-bound Fyn phosphorylates receptor-bound Fyn +Fyn(Y420~0).BCR() + BCR().Fyn(Y420~0) -> Fyn(Y420~0).BCR() + BCR().Fyn(Y420~P) kp14a +Fyn(Y420~P).BCR() + BCR().Fyn(Y420~0) -> Fyn(Y420~P).BCR() + BCR().Fyn(Y420~P) kp14b +# free Fyn phosphorylates free Fyn +Fyn(unique,SH3,SH2,Y420~0,Y531~0) + Fyn(unique,SH3,SH2,Y420~0,Y531~0) -> \ +Fyn(unique,SH3,SH2,Y420~0,Y531~0) + Fyn(unique,SH3,SH2,Y420~P,Y531~0) kp14c +Fyn(unique,SH3,SH2,Y420~P,Y531~0) + Fyn(unique,SH3,SH2,Y420~0,Y531~0) -> \ +Fyn(unique,SH3,SH2,Y420~P,Y531~0) + Fyn(unique,SH3,SH2,Y420~P,Y531~0) kp14d +# Arrow 15 +# Fyn phosphorylates Lyn +# receptor-bound Fyn phosphorylates receptor-bound Lyn +Fyn(Y420~0).BCR() + BCR().Lyn(Y397~0) -> Fyn(Y420~0).BCR() + BCR().Lyn(Y397~P) kp15a +Fyn(Y420~P).BCR() + BCR().Lyn(Y397~0) -> Fyn(Y420~P).BCR() + BCR().Lyn(Y397~P) kp15b +# free Fyn phosphorylates free Lyn +Fyn(unique,SH3,SH2,Y420~0,Y531~0) + Lyn(unique,SH3,SH2,Y397~0,Y508~0) -> \ +Fyn(unique,SH3,SH2,Y420~0,Y531~0) + Lyn(unique,SH3,SH2,Y397~P,Y508~0) kp15c +Fyn(unique,SH3,SH2,Y420~P,Y531~0) + Lyn(unique,SH3,SH2,Y397~0,Y508~0) -> \ +Fyn(unique,SH3,SH2,Y420~P,Y531~0) + Lyn(unique,SH3,SH2,Y397~P,Y508~0) kp15d +# Arrow 16 +# Fyn phosphorylates PAG +Fyn(SH2!1,Y420~P,Y531).PAG(Y163_Y181~P!1,Y387_Y417~0) -> \ +Fyn(SH2!1,Y420~P,Y531).PAG(Y163_Y181~P!1,Y387_Y417~P) kp16a +Fyn(Y420~P,Y531).PAG(Y163_Y181~0)-> Fyn(Y420~P,Y531).PAG(Y163_Y181~P) kp16b # =0.0 +Fyn(SH2!1,Y420~P,Y531).PAG(Y163_Y181~P!1,Y317~0) -> \ +Fyn(SH2!1,Y420~P,Y531).PAG(Y163_Y181~P!1,Y317~P) kp16c +# Arrow 17 +# tandem SH2 domains of Syk bind doubly phosphorylated Ig-beta ITAM +Syk(tSH2) + BCR(Y196_Y207~PP) <-> Syk(tSH2!1).BCR(Y196_Y207~PP!1) kf17, kr17 +# Arrow 18 +# trans autophosphorylation of receptor-bound Syk +Syk(tSH2!+,Y525_Y526~0) + Syk(tSH2!+,Y525_Y526~0) -> \ +Syk(tSH2!+,Y525_Y526~0) + Syk(tSH2!+,Y525_Y526~P) kp18a +Syk(tSH2!+,Y525_Y526~P) + Syk(tSH2!+,Y525_Y526~0) -> \ +Syk(tSH2!+,Y525_Y526~P) + Syk(tSH2!+,Y525_Y526~P) kp18b +# Arrow 19 +# SH3 domain of Lyn binds PRS2 in PAG +# association, Lyn is free +Lyn(unique,SH3,SH2) + PAG(PRS2,Y387_Y417) -> \ +Lyn(unique,SH3!1,SH2).PAG(PRS2!1,Y387_Y417) kf19a +# dissociation +Lyn(unique,SH3!1,SH2).PAG(PRS2!1,Y387_Y417) -> \ +Lyn(unique,SH3,SH2) + PAG(PRS2,Y387_Y417) kr19a +# association, Lyn is tethered to PAG (via SH2 domain-pY interaction) +# Lyn, already tethered in PAG by SH2, binds PAG via SH3 domain +Lyn(unique,SH3,SH2!2).PAG(PRS2,Y387_Y417~P!2) -> \ +Lyn(unique,SH3!1,SH2!2).PAG(PRS2!1,Y387_Y417~P!2) kf19b +# Arrow 20 +# SH2 domain of Lyn binds a pY docking site in PAG +# association, Lyn is free + +Lyn(unique,SH3,SH2) + PAG(PRS2,Y387_Y417~P) -> \ +Lyn(unique,SH3,SH2!2).PAG(PRS2,Y387_Y417~P!2) kf20a +# association, Lyn is tethered to PAG (via SH3 domain-PRS interaction) +Lyn(unique,SH3!1,SH2).PAG(PRS2!1,Y387_Y417~P) -> \ +Lyn(unique,SH3!1,SH2!2).PAG(PRS2!1,Y387_Y417~P!2) kf20b +# release, breaking two-point attachment +Lyn(unique,SH3!1,SH2!2).PAG(PRS2!1,Y387_Y417~P!2) -> \ +Lyn(unique,SH3,SH2) + PAG(PRS2,Y387_Y417~P) kr20b +# Arrow 21 +# SH3 domain of Fyn binds PRS1 in PAG +# association, Fyn is free +Fyn(unique,SH3,SH2) + PAG(PRS1,Y163_Y181) -> \ +Fyn(unique,SH3!1,SH2).PAG(PRS1!1,Y163_Y181) kf21a +# dissociation +Fyn(unique,SH3!1,SH2).PAG(PRS1!1,Y163_Y181)-> \ +Fyn(unique,SH3,SH2) + PAG(PRS1,Y163_Y181) kr21a +# association, Fyn is tethered to PAG (via SH2 domain-pY interaction) +Fyn(unique,SH3,SH2!2).PAG(PRS1,Y163_Y181~P!2) -> \ +Fyn(unique,SH3!1,SH2!2).PAG(PRS1!1,Y163_Y181~P!2) kf21b +# Arrow 22 +# SH2 domain of Fyn binds a pY docking site in PAG +# association, Fyn is free +Fyn(unique,SH3,SH2) + PAG(PRS1,Y163_Y181~P) -> \ +Fyn(unique,SH3,SH2!2).PAG(PRS1,Y163_Y181~P!2) kf22a +# association, Fyn is tethered to PAG (via SH3 domain-PRS interaction) +Fyn(unique,SH3!1,SH2).PAG(PRS1!1,Y163_Y181~P) -> \ +Fyn(unique,SH3!1,SH2!2).PAG(PRS1!1,Y163_Y181~P!2) kf22b +# release, breaking two-point attachment +Fyn(unique,SH3!1,SH2!2).PAG(PRS1!1,Y163_Y181~P!2) -> \ +Fyn(unique,SH3,SH2) + PAG(PRS1,Y163_Y181~P) kr22b +# Arrow 23 +# SH2 domain of Csk binds pY317 docking site in PAG +Csk(SH2) + PAG(Y317~P) <-> Csk(SH2!3).PAG(Y317~P!3) kf23, kr23 +# Arrow 24 +# Csk cis phosphorylates C-terminal Y in Lyn +Lyn(Y508~0).PAG().Csk() -> Lyn(Y508~P).PAG().Csk() kp24 +# Arrow 25 +# Csk cis phosphorylates C-terminal Y in Fyn +Fyn(Y531~0).PAG().Csk() -> Fyn(Y531~P).PAG().Csk() kp25 +# The following rules are NOT illustrated in Fig. 1 +# Dephosphorylation of Ig-alpha +BCR(Y188_Y199~P) -> BCR(Y188_Y199~0) kdp26a # singly phosphorylated ITAM +BCR(Y188_Y199~PP) -> BCR(Y188_Y199~P) 2*kdp26b # doubly phosphorylated ITAM +# Dephosphorylation of Ig-beta +BCR(Y196_Y207~P) -> BCR(Y196_Y207~0) kdp27a # singly phosphorylated ITAM +BCR(Y196_Y207~PP) -> BCR(Y196_Y207~P) 2*kdp27b # doubly phosphorylated ITAM +# Dephosphorylation of Lyn +Lyn(Y397~P) -> Lyn(Y397~0) kdp28a # A-loop tyrosine +Lyn(Y508~P) -> Lyn(Y508~0) kdp28b # C-terminal regulatory tyrosine +# Dephosphorylation of Fyn +Fyn(Y420~P) -> Fyn(Y420~0) kdp29a # A-loop tyrosine +Fyn(Y531~P) -> Fyn(Y531~0) kdp29b # C-terminal regulatory tyrosine +# Dephosphorylation of PAG +PAG(Y317~P) -> PAG(Y317~0) kdp30a # tyrosine in Csk docking site +PAG(Y387_Y417~P) -> PAG(Y387_Y417~0) kdp30b # tyrosines in Lyn docking sites +PAG(Y163_Y181~P) -> PAG(Y163_Y181~0) kdp30c # tyrosines in Fyn docking sites +# Dephosphorylation of Syk +Syk(Y525_Y526~P) -> Syk(Y525_Y526~0) kdp31 # A-loop tyrosines +end reaction rules + +begin observables +Molecules Activated_Syk Syk(Y525_Y526~P) +Molecules Ig_alpha_P BCR(Y188_Y199~P) +Molecules Ig_alpha_PP BCR(Y188_Y199~PP) +Molecules Ig_beta_PP BCR(Y196_Y207~PP) +Molecules Activated_Lyn Lyn(Y397~P) +Molecules Autoinhibited_Lyn Lyn(Y508~P!+) +Molecules Activated_Fyn Fyn(Y420~P) +Molecules Autoinhibited_Fyn Fyn(Y531~P!+) +Molecules PAG1_Csk PAG(Y317~P!+) +end observables + +begin actions +generate_network({overwrite=>'1',TextReaction=>'1'}) +end actions \ No newline at end of file diff --git a/Published/BaruaBCR2012/README.md b/Published/BaruaBCR2012/README.md new file mode 100644 index 00000000..5191dbd0 --- /dev/null +++ b/Published/BaruaBCR2012/README.md @@ -0,0 +1,21 @@ +# Barua 2012 + +BCR signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- BaruaBCR_2012.bngl + +## Tags + +published, immunology, baruabcr, 2012, bcr, lyn, fyn, csk, pag, syk diff --git a/Published/BaruaBCR2012/metadata.yaml b/Published/BaruaBCR2012/metadata.yaml new file mode 100644 index 00000000..f85b0d93 --- /dev/null +++ b/Published/BaruaBCR2012/metadata.yaml @@ -0,0 +1,22 @@ +id: "BaruaBCR_2012" +name: "Barua 2012" +description: "BCR signaling" +tags: ["published", "immunology", "baruabcr", "2012", "bcr", "lyn", "fyn", "csk", "pag", "syk"] +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-web-simulator" + source_path: "published-models/immune-signaling/BaruaBCR_2012.bngl" +playground: + visible: false + gallery_category: "immunology" + featured: false + difficulty: "advanced" diff --git a/Published/BaruaFceRI2012/BaruaFceRI_2012.bngl b/Published/BaruaFceRI2012/BaruaFceRI_2012.bngl new file mode 100644 index 00000000..6f7b31e3 --- /dev/null +++ b/Published/BaruaFceRI2012/BaruaFceRI_2012.bngl @@ -0,0 +1,202 @@ +# Notes: +#The model represents (1/N) of a cell, where N=8,000, number of rafts per cell. +# To make it represent the entire cell, replace N with 1, wherever it is used to scale the parameter values. +# State (s~o) represents raft-localized state of a protein, and state (s~d) represents nonraft state +# of a protein. + +begin parameters +# Concentrations +LigT 6.0e5 # Ligand; Equivalent to 1 nM +RecT 400000/N # Receptor (FceRI) +LynT 28000/N # Lyn +SykT 400000/N # Syk +LATT 1000000/N # LAT +GrbT 400000/N # Grb2 +#HapT 60000000000 # Monovalent hapten; + +kon 8.125e-8 # Ligand binding to receptor from solution +kx N*5e-6 # Ligand binding to receptor from membrane (receptor crosslinking) +koff 0.5 # Ligand dissociation + +kon_h 4.3e-8 # Hapten binding to receptor +koff_h 0.019 # Hapten dissociation + + +lf N*5e-5 # Lyn association with unphoshporylated/phosphorylated beta ITAM via unique/SH2 domain. +lr1 20 # Lyn unique domain dissociation +lr2 0.12 # Lyn SH2 domain dissociation + +sf N*6e-5 # Syk association with phosphorylated gamma ITAM +sr 0.20 # Syk dissociation (In Faeder et al.J. Immunol.(2003), sr = 0.13 s-1) +gf N*1.25e-6 # Grb2 association with phosphorylated LAT +gr 0.30 # Grb2 dissociation + + +plb1_o 30 # FceRI beta phosphorylation mediated by unique domain-bound Lyn in raft regions +plb1_d 6 # FceRI beta phosphorylation mediated by unique domain-bound Lyn in nonraft regions +plb2_o 100 # FceRI beta phosphorylation mediated by SH2 domain-bound Lyn in raft regions +plb2_d 20 # FceRI beta phosphorylation mediated by SH2 domain-bound Lyn in nonraft regions +plg1_o 1 # FceRI gamma phosphorylation mediated by unique domain-bound Lyn in raft regions +plg1_d 0.2 # FceRI gamma phosphorylation mediated by unique domain-bound Lyn in nonraft regions +plg2_o 3 # FceRI gamma phosphorylation mediated by SH2 domain-bound Lyn in raft regions +plg2_d 0.6 # FceRI gamma phosphorylation mediated by SH2 domain-bound Lyn in nonraft regions +pss1 100 # Syk autophosphorylation by receptor-bound Syk not phosphorylated in the activation loop +pss2 200 # Syk autophosphorylation by receptor-bound Syk phosphoryalted in the activation loop +psl N*6e-5 # LAT phosphorylation by receptor-bound Syk + + +db 20 # FceRI beta dephospohrylation in nonraft regions (in raft regions, the parameter is z*20) +dg 20 # FceRI gamma dephosphorylation in nonraft regions (in raft regions, the parameter is z*20) +ds 20 # Syk dephosphorylation in nonraft regions (in raft regions, the parameter is z*20) +dl 70 # LAT dephosphorylation in nonraft regiosn (in raft regions, the parameter is z*70) + +f 0.3 # Lipid raft fraction of the plasma membrane +N 8000 # number of rafts/cell; mean of raft 100 nm; aggregated raft area=raft compartment=0.30% of #cell #membrane, + # cell membrane area=8e-6 cm2 cell; +Tau 10 # Mean raft life time10 s + +Phi_r f # Raft partition coefficient for receptor monomer (random distribution) +Phi_d 0.85 # Raft partition coefficient for receptor dimer +Phi_l 0.85 # Raft partition coefficient for Lyn +Phi_t 0.85 # Raft partition coefficient for LAT + +r_o (1/Tau)*Phi_r/(1-Phi_r) # r_o=(k+,RN) for receptor monomer (see Eq (1) in the paper) +r_d 1/Tau # r_d=Lambda=1/Tau (mean turn over rate of lipid rafts) +rdimer_o (1/Tau)*Phi_d/(1-Phi_d) # rdimer_o=(K+,DN) for receptor dimer (see Eq (1) in the paper) +rdimer_d 1/Tau # rdimer_d=Lambda=1/Tau (mean turnover rate of lipid rafts) +l_o (1/Tau)*Phi_l/(1-Phi_l) # l_o=(k+,LN) for Lyn (see Eq (1) in the paper) +l_d 1/Tau # l_d=Lambda=1/Tau (mean turnover rate of lipid rafts) +t_o (1/Tau)*Phi_t/(1-Phi_t) # t_o=(k+,TN) for LAT (see Eq (1) in the paper) +t_d 1/Tau # t_d=Lambda=1/Tau (mean turnover rate of lipid rafts) + +z=0.1 # Lipid raft protection coeff; + # z=(Rate of protein dephosphorylation inside rafts)/(Rate of protein dephosphorylation outside rafts) +end parameters + +begin molecule types +L(l,l) +FCR(s~d~o,a,b~Y~pY,g~Y~pY) +Lyn(s~d~o,U,SH2) +Syk(tSH2,a~Y~pY) +LAT(s~d~o,p~Y~pY) +Grb2(SH2) +#Hap(l) +end molecule types + +begin species +L(l,l) LigT +FCR(s~o,a,b~Y,g~Y) RecT*r_o/(r_o + r_d) +FCR(s~d,a,b~Y,g~Y) RecT*r_d/(r_o + r_d) +Lyn(s~o,U,SH2) LynT*l_o/(l_o + l_d) +Lyn(s~d,U,SH2) LynT*l_d/(l_o + l_d) +Syk(tSH2,a~Y) SykT +LAT(s~o,p~Y) LATT*t_o/(t_o + t_d) +LAT(s~d,p~Y) LATT*t_d/(t_o + t_d) +Grb2(SH2) GrbT +#Hap(l) HapT; +end species + + +begin reaction rules + +# Ligand binding and receptor crosslinking +FCR(a) + L(l,l) <-> FCR(a!1).L(l!1,l) kon, koff # Binding from solution +FCR(s~d,a) + L(l,l!1).FCR(s~d,a!1) <-> FCR(s~d,a!2).L(l!2,l!1).FCR(s~d,a!1) kx, koff +FCR(s~o,a) + L(l,l!1).FCR(s~o,a!1) <-> FCR(s~o,a!2).L(l!2,l!1).FCR(s~o,a!1) kx, koff + +# Hapten binding +#FCR(a) + Hap(l) <-> FCR(a!1).Hap(l!1) kon_h, koff_h + +# Receptor - Lyn interaction +FCR(s~d,b~Y) + Lyn(s~d,U,SH2) <-> FCR(s~d,b~Y!1).Lyn(s~d,U!1,SH2) lf, lr1 +FCR(s~d,b~pY) + Lyn(s~d,U,SH2) <-> FCR(s~d,b~pY!1).Lyn(s~d,U,SH2!1) lf, lr2 +FCR(s~o,b~Y) + Lyn(s~o,U,SH2) <-> FCR(s~o,b~Y!1).Lyn(s~o,U!1,SH2) lf, lr1 +FCR(s~o,b~pY) + Lyn(s~o,U,SH2) <-> FCR(s~o,b~pY!1).Lyn(s~o,U,SH2!1) lf, lr2 + +# Receptor-Syk binding +Syk(tSH2) + FCR(g~pY) <-> Syk(tSH2!1).FCR(g~pY!1) sf, sr + +# LAT-Grb2 binding +LAT(p~pY) + Grb2(SH2) <-> LAT(p~pY!1).Grb2(SH2!1) gf, gr + +# Receptor phosphorylation by Lyn: +Lyn(s~o,U!1,SH2).FCR(s~o,b~Y!1).FCR(s~o,b~Y) -> Lyn(s~o,U!1,SH2).FCR(s~o,b~Y!1).FCR(s~o,b~pY) plb1_o +Lyn(s~o,U,SH2!1).FCR(s~o,b~pY!1).FCR(s~o,b~Y) -> Lyn(s~o,U,SH2!1).FCR(s~o,b~pY!1).FCR(s~o,b~pY) plb2_o +Lyn(s~o,U!1,SH2).FCR(s~o,b~Y!1).FCR(s~o,g~Y) -> Lyn(s~o,U!1,SH2).FCR(s~o,b~Y!1).FCR(s~o,g~pY) plg1_o +Lyn(s~o,U,SH2!1).FCR(s~o,b~pY!1).FCR(s~o,g~Y) -> Lyn(s~o,U,SH2!1).FCR(s~o,b~pY!1).FCR(s~o,g~pY) plg2_o + +Lyn(s~d,U!1,SH2).FCR(s~d,b~Y!1).FCR(s~d,b~Y) -> Lyn(s~d,U!1,SH2).FCR(s~d,b~Y!1).FCR(s~d,b~pY) plb1_d +Lyn(s~d,U,SH2!1).FCR(s~d,b~pY!1).FCR(s~d,b~Y) -> Lyn(s~d,U,SH2!1).FCR(s~d,b~pY!1).FCR(s~d,b~pY) plb2_d +Lyn(s~d,U!1,SH2).FCR(s~d,b~Y!1).FCR(s~d,g~Y) -> Lyn(s~d,U!1,SH2).FCR(s~d,b~Y!1).FCR(s~d,g~pY) plg1_d +Lyn(s~d,U,SH2!1).FCR(s~d,b~pY!1).FCR(s~d,g~Y) -> Lyn(s~d,U,SH2!1).FCR(s~d,b~pY!1).FCR(s~d,g~pY) plg2_d + +# Syk autophosphorylation +Syk(a~Y).Syk(a~Y) -> Syk(a~Y).Syk(a~pY) pss1 +Syk(a~pY).Syk(a~Y) -> Syk(a~pY).Syk(a~pY) pss2 + +# LAT phosphorylation by Syk +Syk(tSH2!1).FCR(s~d,g~pY!1) + LAT(s~d,p~Y) -> Syk(tSH2!1).FCR(s~d,g~pY!1) + LAT(s~d,p~pY) psl +Syk(tSH2!1).FCR(s~o,g~pY!1) + LAT(s~o,p~Y) -> Syk(tSH2!1).FCR(s~o,g~pY!1) + LAT(s~o,p~pY) psl + +# Receptor dephosphorylation +FCR(s~d,b~pY) -> FCR(s~d,b~Y) db +FCR(s~d,g~pY) -> FCR(s~d,g~Y) dg +FCR(s~o,b~pY) -> FCR(s~o,b~Y) z*db +FCR(s~o,g~pY) -> FCR(s~o,g~Y) z*dg + +# Syk dephosphorylation (at membrane) +FCR(s~d,g~pY!1).Syk(tSH2!1,a~pY) -> FCR(s~d,g~pY!1).Syk(tSH2!1,a~Y) ds +FCR(s~o,g~pY!1).Syk(tSH2!1,a~pY) -> FCR(s~o,g~pY!1).Syk(tSH2!1,a~Y) z*ds + +# Syk dephosphorylation (at cytosol) +Syk(tSH2,a~pY) -> Syk(tSH2,a~Y) ds + +# LAT dephosphorylation +LAT(s~d,p~pY) -> LAT(s~d,p~Y) dl +LAT(s~o,p~pY) -> LAT(s~o,p~Y) z*dl + +# Raft - non-raft transition +FCR(s~d,a,b~Y) <-> FCR(s~o,a,b~Y) r_o, r_d +FCR(s~d,a,b~pY) <-> FCR(s~o,a,b~pY) r_o, r_d +FCR(s~d,a!1,b~Y).L(l!1,l) <-> FCR(s~o,a!1,b~Y).L(l!1,l) r_o, r_d +FCR(s~d,a!1,b~pY).L(l!1,l) <-> FCR(s~o,a!1,b~pY).L(l!1,l) r_o, r_d + +Lyn(s~d,U,SH2) <-> Lyn(s~o,U,SH2) l_o, l_d + +FCR(s~d,a,b~Y!1).Lyn(s~d,U!1) <-> FCR(s~o,a,b~Y!1).Lyn(s~o,U!1) l_o, l_d +FCR(s~d,a,b~pY!1).Lyn(s~d,SH2!1) <-> FCR(s~o,a,b~pY!1).Lyn(s~o,SH2!1) l_o, l_d +FCR(s~d,a!1,b~Y!2).L(l!1,l).Lyn(s~d,U!2) <-> FCR(s~o,a!1,b~Y!2).L(l!1,l).Lyn(s~o,U!2) l_o, l_d +FCR(s~d,a!1,b~pY!2).L(l!1,l).Lyn(s~d,SH2!2) <-> FCR(s~o,a!1,b~pY!2).L(l!1,l).Lyn(s~o,SH2!2) l_o, l_d + +FCR(s~d,a!1,b~Y).L(l!1,l!2).FCR(s~d,a!2,b~Y) <-> FCR(s~o,a!1,b~Y).L(l!1,l!2).FCR(s~o,a!2,b~Y) rdimer_o, rdimer_d +FCR(s~d,a!1,b~pY).L(l!1,l!2).FCR(s~d,a!2,b~Y) <-> FCR(s~o,a!1,b~pY).L(l!1,l!2).FCR(s~o,a!2,b~Y) rdimer_o, rdimer_d +FCR(s~d,a!1,b~pY).L(l!1,l!2).FCR(s~d,a!2,b~pY) <-> FCR(s~o,a!1,b~pY).L(l!1,l!2).FCR(s~o,a!2,b~pY) rdimer_o, rdimer_d + +FCR(s~d,a!1,b~Y!3).L(l!1,l!2).FCR(s~d,a!2,b~Y).Lyn(s~d,U!3) <->\ + FCR(s~o,a!1,b~Y!3).L(l!1,l!2).FCR(s~o,a!2,b~Y).Lyn(s~o,U!3) l_o, l_d +FCR(s~d,a!1,b~Y!3).L(l!1,l!2).FCR(s~d,a!2,b~pY).Lyn(s~d,U!3) <->\ + FCR(s~o,a!1,b~Y!3).L(l!1,l!2).FCR(s~o,a!2,b~pY).Lyn(s~o,U!3) l_o, l_d +FCR(s~d,a!1,b~pY!3).L(l!1,l!2).FCR(s~d,a!2,b~Y).Lyn(s~d,SH2!3) <->\ + FCR(s~o,a!1,b~pY!3).L(l!1,l!2).FCR(s~o,a!2,b~Y).Lyn(s~o,SH2!3) l_o, l_d +FCR(s~d,a!1,b~pY!3).L(l!1,l!2).FCR(s~d,a!2,b~pY).Lyn(s~d,SH2!3) <->\ + FCR(s~o,a!1,b~pY!3).L(l!1,l!2).FCR(s~o,a!2,b~pY).Lyn(s~o,SH2!3) l_o, l_d + +FCR(s~d,a!1,b~Y!3).L(l!1,l!2).FCR(s~d,a!2,b~Y!4).Lyn(s~d,U!3).Lyn(s~d,U!4) <->\ + FCR(s~o,a!1,b~Y!3).L(l!1,l!2).FCR(s~o,a!2,b~Y!4).Lyn(s~o,U!3).Lyn(s~o,U!4) l_o, l_d +FCR(s~d,a!1,b~pY!3).L(l!1,l!2).FCR(s~d,a!2,b~Y!4).Lyn(s~d,SH2!3).Lyn(s~d,U!4) <->\ + FCR(s~o,a!1,b~pY!3).L(l!1,l!2).FCR(s~o,a!2,b~Y!4).Lyn(s~o,SH2!3).Lyn(s~o,U!4) l_o, l_d +FCR(s~d,a!1,b~pY!3).L(l!1,l!2).FCR(s~d,a!2,b~pY!4).Lyn(s~d,SH2!3).Lyn(s~d,SH2!4) <->\ + FCR(s~o,a!1,b~pY!3).L(l!1,l!2).FCR(s~o,a!2,b~pY!4).Lyn(s~o,SH2!3).Lyn(s~o,SH2!4) l_o, l_d + +LAT(s~d) <-> LAT(s~o) t_o, t_d +end reaction rules + +begin observables +Molecules pBeta FCR(b~pY!?) +Molecules pGamma FCR(g~pY!?) +Molecules pSyk Syk(tSH2!+,a~pY) +Molecules pLAT LAT(p~pY!?) +end observables + +generate_network({overwrite=>1}); +simulate_ode({t_end=>3600, n_steps=>3600,atoll=>1e-08,rtol=>1e-08,sparse=>1}); \ No newline at end of file diff --git a/Published/BaruaFceRI2012/README.md b/Published/BaruaFceRI2012/README.md new file mode 100644 index 00000000..539efc07 --- /dev/null +++ b/Published/BaruaFceRI2012/README.md @@ -0,0 +1,21 @@ +# BaruaFceRI 2012 + +FcεRI signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- BaruaFceRI_2012.bngl + +## Tags + +published, immunology, baruafceri, 2012, r_o, rdimer_o, l_o, t_o, l, fcr, lyn, syk diff --git a/Published/BaruaFceRI2012/metadata.yaml b/Published/BaruaFceRI2012/metadata.yaml new file mode 100644 index 00000000..148a704c --- /dev/null +++ b/Published/BaruaFceRI2012/metadata.yaml @@ -0,0 +1,22 @@ +id: "BaruaFceRI_2012" +name: "BaruaFceRI 2012" +description: "FcεRI signaling" +tags: ["published", "immunology", "baruafceri", "2012", "r_o", "rdimer_o", "l_o", "t_o", "l", "fcr", "lyn", "syk"] +category: "immunology" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/immune-signaling/BaruaFceRI_2012.bngl" +playground: + visible: false + gallery_category: "immunology" + featured: false + difficulty: "advanced" diff --git a/Published/Blinov2006/Blinov_2006.bngl b/Published/Blinov2006/Blinov_2006.bngl new file mode 100644 index 00000000..009eebe4 --- /dev/null +++ b/Published/Blinov2006/Blinov_2006.bngl @@ -0,0 +1,171 @@ +begin model +begin parameters + egf_tot 1.2e6 # molecule counts + egfr_tot 1.8e5 + Grb2_tot 1.0e5 + Shc_tot 2.7e5 + Sos_tot 1.3e4 + Grb2_Sos_tot 4.9e4 + + kp1 1.667e-06 # ligand-monomer binding (scaled), units: /molecule/s + km1 0.06 # ligand-monomer dissociation, units: /s + + kp2 5.556e-06 # aggregation of bound monomers (scaled) + km2 0.1 # dissociation of bound monomers + + kp3 0.5 # dimer transphosphorylation + km3 4.505 # dimer dephosphorylation + + kp14 3 # Shc transphosphorylation + km14 0.03 # Shc dephosphorylation + + km16 0.005 # Shc cytosolic dephosphorylation + + kp9 8.333e-07 # binding of Grb2 to receptor (scaled) + km9 0.05 # dissociation of Grb2 from receptor + + kp10 5.556e-06 # binding of Sos to receptor (scaled) + km10 0.06 # dissociation of Sos from receptor + + kp11 1.25e-06 # binding of Grb2-Sos to receptor (scaled) + km11 0.03 # diss. of Grb2-Sos from receptor + + kp13 2.5e-05 # binding of Shc to receptor (scaled) + km13 0.6 # diss. of Shc from receptor + + kp15 2.5e-07 # binding of ShcP to receptor (scaled) + km15 0.3 # diss. of ShcP from receptor + + kp17 1.667e-06 # binding of Grb2 to RP-ShcP (scaled) + km17 0.1 # diss. of Grb2 from RP-ShcP + + kp18 2.5e-07 # binding of ShcP-Grb2 to receptor (scaled) + km18 0.3 # diss. of ShcP-Grb2 from receptor + + kp19 5.556e-06 # binding of Sos to RP-ShcP-Grb2 (scaled) + km19 0.0214 # diss. of Sos from RP-ShcP-Grb2 + + kp20 6.667e-08 # binding of ShcP-Grb2-Sos to receptor (scaled) + km20 0.12 # diss. of ShcP-Grb2-Sos from receptor + + kp24 5e-06 # binding of Grb2-Sos to RP-ShcP (scaled) + km24 0.0429 # diss. of Grb2-Sos from RP-ShcP + + kp21 1.667e-06 # binding of ShcP to Grb2 in cytosol (scaled) + km21 0.01 # diss. of Grb2 and SchP in cytosol + + kp23 1.167e-05 # binding of ShcP to Grb2-Sos in cytosol (scaled) + km23 0.1 # diss. of Grb2-Sos and SchP in cytosol + + kp12 5.556e-08 # binding of Grb2 to Sos in cytosol (scaled) + km12 0.0015 # diss. of Grb2 and Sos in cytosol + + kp22 1.667e-05 # binding of ShcP-Grb2 to Sos in cytosol (scaled) + km22 0.064 # diss. of ShcP-Grb2 and Sos in cytosol + + # check detailed balanced + loop1 = (kp9/km9)*(kp10/km10)/((kp11/km11)*(kp12/km12)) + loop2 = (kp15/km15)*(kp17/km17)/((kp21/km21)*(kp18/km18)) + loop3 = (kp18/km18)*(kp19/km19)/((kp22/km22)*(kp20/km20)) + loop4 = (kp12/km12)*(kp23/km23)/((kp22/km22)*(kp21/km21)) + loop5 = (kp15/km15)*(kp24/km24)/((kp20/km20)*(kp23/km23)) +end parameters + +begin molecule types + egf(r) + egfr(l,r,Y1068~Y~pY,Y1148~Y~pY) + Shc(PTB,Y317~Y~pY) + Grb2(SH2,SH3) + Sos(dom) +end molecule types + +begin seed species + egf(r) egf_tot + Grb2(SH2,SH3) Grb2_tot + Shc(PTB,Y317~Y) Shc_tot + Sos(dom) Sos_tot + egfr(l,r,Y1068~Y,Y1148~Y) egfr_tot + Grb2(SH2,SH3!1).Sos(dom!1) Grb2_Sos_tot +end seed species + +begin reaction rules + # Ligand-receptor binding + egfr(l,r) + egf(r) <-> egfr(l!1,r).egf(r!1) kp1, km1 #ligand-monomer + + # Note changed multiplicity + # Receptor-aggregation + egfr(l!+,r) + egfr(l!+,r) <-> egfr(l!+,r!3).egfr(l!+,r!3) kp2,km2 + + # Transphosphorylation of egfr by RTK + egfr(r!+,Y1068~Y) -> egfr(r!+,Y1068~pY) kp3 + egfr(r!+,Y1148~Y) -> egfr(r!+,Y1148~pY) kp3 + + #Dephosphorylayion + egfr(Y1068~pY) -> egfr(Y1068~Y) km3 + egfr(Y1148~pY) -> egfr(Y1148~Y) km3 + + # Shc transphosph + egfr(r!+,Y1148~pY!1).Shc(PTB!1,Y317~Y) -> egfr(r!+,Y1148~pY!1).Shc(PTB!1,Y317~pY) kp14 + Shc(PTB!+,Y317~pY) -> Shc(PTB!+,Y317~Y) km14 + + # Y1068 activity + egfr(Y1068~pY) + Grb2(SH2,SH3) <-> egfr(Y1068~pY!1).Grb2(SH2!1,SH3) kp9,km9 + egfr(Y1068~pY) + Grb2(SH2,SH3!+) <-> egfr(Y1068~pY!1).Grb2(SH2!1,SH3!+) kp11,km11 + egfr(Y1068~pY!1).Grb2(SH2!1,SH3) + Sos(dom) <-> egfr(Y1068~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) kp10,km10 + + # Y1148 activity + egfr(Y1148~pY) + Shc(PTB,Y317~Y) <-> egfr(Y1148~pY!1).Shc(PTB!1,Y317~Y) kp13,km13 + egfr(Y1148~pY) + Shc(PTB,Y317~pY) <-> egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY) kp15,km15 + egfr(Y1148~pY) + Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3) <-> \ + egfr(Y1148~pY!2).Shc(PTB!2,Y317~pY!1).Grb2(SH2!1,SH3) kp18,km18 + egfr(Y1148~pY) + Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3!3).Sos(dom!3) <-> \ + egfr(Y1148~pY!2).Shc(PTB!2,Y317~pY!1).Grb2(SH2!1,SH3!3).Sos(dom!3) kp20,km20 + + egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY) + Grb2(SH2,SH3) <-> \ + egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY!2).Grb2(SH2!2,SH3) kp17,km17 + + egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY) + Grb2(SH2,SH3!3).Sos(dom!3) <-> \ + egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) kp24,km24 + + Shc(PTB!+,Y317~pY!2).Grb2(SH2!2,SH3) + Sos(dom) <-> \ + Shc(PTB!+,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) kp19,km19 + + # Cytosolic + Shc(PTB,Y317~pY) + Grb2(SH2,SH3) <-> Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3) kp21,km21 + Shc(PTB,Y317~pY) + Grb2(SH2,SH3!+) <-> Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3!+) kp23,km23 + Shc(PTB,Y317~pY) -> Shc(PTB,Y317~Y) km16 + Grb2(SH2,SH3) + Sos(dom) <-> Grb2(SH2,SH3!1).Sos(dom!1) kp12,km12 + Shc(PTB,Y317~pY!2).Grb2(SH2!2,SH3) + Sos(dom) <-> \ + Shc(PTB,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) kp22,km22 +end reaction rules + +begin observables + Molecules Dimers egfr.egfr + Molecules Sos_act Shc(PTB!+,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3), egfr(Y1068~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) + Molecules RP egfr(Y1068~pY!?), egfr(Y1148~pY!?) + Molecules Shc_Grb Shc(Y317~pY!1).Grb2(SH2!1) + Molecules Shc_Grb_Sos Shc(Y317~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) + Molecules R_Grb2 egfr(Y1068~pY!1).Grb2(SH2!1) + Molecules R_Shc egfr(Y1148~pY!1).Shc(PTB!1,Y317~Y) + Molecules R_ShcP egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY!?) + Molecules ShcP Shc(Y317~pY!?) + Molecules R_G_S egfr(Y1068~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) + # Strong differences are seen for R_G_S in comparison with path model + Molecules R_S_G_S egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) + + Molecules Efgr_total egfr + Molecules Shc_total Shc + Molecules Sos_total Sos + Molecules Grb2_total Grb2 +end observables +end model + +## actions ## +generate_network({overwrite=>1}) +# Equilibration +setConcentration("egf(r)",0) +simulate_ode({t_end=>100000,n_steps=>10,sparse=>1,steady_state=>1}) +# Kinetics +setConcentration("egf(r)","egf_tot") +writeSBML({}) +simulate_ode({t_end=>120,n_steps=>120,atol=>1e-8,rtol=>1e-8,sparse=>1}) \ No newline at end of file diff --git a/Published/Blinov2006/README.md b/Published/Blinov2006/README.md new file mode 100644 index 00000000..e1cc573d --- /dev/null +++ b/Published/Blinov2006/README.md @@ -0,0 +1,21 @@ +# Blinov 2006 + +Phosphotyrosine signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Blinov_2006.bngl + +## Tags + +published, blinov, 2006, egf, egfr, shc, grb2, sos diff --git a/Published/Blinov2006/metadata.yaml b/Published/Blinov2006/metadata.yaml new file mode 100644 index 00000000..e0cf6248 --- /dev/null +++ b/Published/Blinov2006/metadata.yaml @@ -0,0 +1,22 @@ +id: "Blinov_2006" +name: "Blinov 2006" +description: "Phosphotyrosine signaling" +tags: ["published", "blinov", "2006", "egf", "egfr", "shc", "grb2", "sos"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/complex-models/Blinov_2006.bngl" +playground: + visible: true + gallery_category: "signaling" + featured: false + difficulty: "intermediate" diff --git a/Published/Blinovegfr/Blinov_egfr.bngl b/Published/Blinovegfr/Blinov_egfr.bngl new file mode 100644 index 00000000..7cb69b48 --- /dev/null +++ b/Published/Blinovegfr/Blinov_egfr.bngl @@ -0,0 +1,59 @@ +begin model + +begin compartments +Cyt 3 1 +EC 3 1 +M 2 1 +end compartments + +begin parameters +end parameters + +begin molecule types +EGFR(ecd,tmd,y1068~u~p,y1173~u~p) +EGF(rb) +Grb2(sh2,sos) +Shc(sh3,Y773~p~u) +end molecule types + +begin anchors +EGFR(M) +EGF(M,EC) +end anchors + +begin seed species +1 @EC:EGF(rb) 680.0 +2 @M:EGFR(ecd,tmd,y1068~u,y1173~u) 602.0 +3 @Cyt:Shc(sh3,Y773~u) 150.0 +end seed species + +begin observables +Molecules EGFR_tot @M:EGFR() +Molecules EGF_EC @EC:EGF() +Molecules Shc_cyt @Cyt:Shc() +Molecules Dimers @M:EGFR(tmd!+) +Molecules Y1068_phosp @M:EGFR(y1068~p!?) +Molecules Y1173_phosp @M:EGFR(y1173~p!?) +Molecules Total_phosp @M:EGFR(y1068~p!?) @M:EGFR(y1173~p!?) +Molecules ShcP_Cyt @Cyt:Shc(Y773~p!?) +end observables + +begin functions +end functions + +begin reaction rules +r00_lig_bind: @EC:EGF(rb) + @M:EGFR(ecd,tmd) <-> @M:EGF(rb!1).EGFR(ecd!1,tmd) 0.003, 0.06 +r01_dimer: @M:EGFR(ecd!+,tmd)%1 + @M:EGFR(ecd!+,tmd)%2 <-> @M:EGFR(ecd!+,tmd!1)%1.EGFR(ecd!+,tmd!1)%2 0.001, 0.01 +r04_dephosp: @M:EGFR(y1173~p) -> @M:EGFR(y1173~u) 4.505 +r03_phosp: @M:EGFR(tmd!+,y1068~u) -> @M:EGFR(tmd!+,y1068~p) 0.01 +r02_phosp: @M:EGFR(tmd!+,y1173~u) -> @M:EGFR(tmd!+,y1173~p) 0.01 +r05_deposp: @M:EGFR(y1068~p) -> @M:EGFR(y1068~u) 4.505 +r08_shcU_bind: @M:EGFR(y1173~p) + @Cyt:Shc(sh3,Y773~u) <-> @M:EGFR(y1173~p!1).Shc(sh3!1,Y773~u) 0.045, 0.6 +r09_shc_phosp: @M:EGFR(y1173~p!1).Shc(sh3!1,Y773~u) <-> @M:EGFR(y1173~p!1).Shc(sh3!1,Y773~p) 3.0, 0.03 +r14_shc_dephosp: @Cyt:Shc(sh3,Y773~p) -> @Cyt:Shc(sh3,Y773~u) 0.005 +r08_shcP_bind: @M:EGFR(y1173~p) + @Cyt:Shc(sh3,Y773~p) <-> @M:EGFR(y1173~p!1).Shc(sh3!1,Y773~p) 4.5E-4, 0.3 +end reaction rules + +end model + +simulate_nf({t_end=>120.0,n_steps=>240}) \ No newline at end of file diff --git a/Published/Blinovegfr/README.md b/Published/Blinovegfr/README.md new file mode 100644 index 00000000..33d39564 --- /dev/null +++ b/Published/Blinovegfr/README.md @@ -0,0 +1,21 @@ +# Blinov egfr + +EGFR signaling model + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: nf +- Imported from: published + +## Files + +- Blinov_egfr.bngl + +## Tags + +published, nfsim, blinov, egfr, egf, grb2, shc, simulate_nf diff --git a/Published/Blinovegfr/metadata.yaml b/Published/Blinovegfr/metadata.yaml new file mode 100644 index 00000000..ff4c244b --- /dev/null +++ b/Published/Blinovegfr/metadata.yaml @@ -0,0 +1,22 @@ +id: "Blinov_egfr" +name: "Blinov egfr" +description: "EGFR signaling model" +tags: ["published", "nfsim", "blinov", "egfr", "egf", "grb2", "shc", "simulate_nf"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["nf"] + uses_compartments: true + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/growth-factor-signaling/Blinov_egfr.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/Blinovran/Blinov_ran.bngl b/Published/Blinovran/Blinov_ran.bngl new file mode 100644 index 00000000..293a8142 --- /dev/null +++ b/Published/Blinovran/Blinov_ran.bngl @@ -0,0 +1,54 @@ +begin model + +begin compartments +nuc 3 1 +cyt 3 1 +EC 3 1 +pm 2 1 +nm 2 1 +end compartments + +begin parameters +end parameters + +begin molecule types +Ran(cargo) +C(site,Y1~u~p,Y2~u~p,Y3~u~p) +RCC1(site) +end molecule types + +begin anchors +RCC1(nuc) +end anchors + +begin seed species +1 @nuc:Ran(cargo!1).C(site!1,Y1~u,Y2~u,Y3~u) 1000.0 +2 @nuc:RCC1(site) 1000.0 +end seed species + +begin observables +Molecules Ran_cyt @cyt:Ran() +Molecules Cargo_cyt @cyt:C() +Molecules RCC1_nuc @nuc:RCC1() +Molecules Cargo_phosp_cyt_total @nuc:C(Y1~p!?) @nuc:C(Y2~p!?) @nuc:C(Y3~p!?) +Molecules Cargo_nuc @nuc:C() +Molecules Cargo_phosp_cyt @cyt:C(Y1~p!?,Y2~p!?,Y3~p!?) +Molecules Ran_bound_cyt @cyt:Ran(cargo!+) +end observables + +begin functions +end functions + +begin reaction rules +Transport: @nuc:Ran(cargo!+) <-> @cyt:Ran(cargo!+) 2.0 * 602.0, 0.0 +Ran_C_bind_cyt: @cyt:Ran(cargo!1).C(site!1) <-> @cyt:Ran(cargo) + @cyt:C(site) 1.0, 100.0 +C_p1: @cyt:C(Y3~u!?) <-> @cyt:C(Y3~p!?) 10.0, 1.0 +C_p2: @cyt:C(Y2~u!?) <-> @cyt:C(Y2~p!?) 10.0, 1.0 +C_p3: @cyt:C(Y1~u!?) <-> @cyt:C(Y1~p!?) 10.0, 1.0 +Ran_RCC1_bind: @nuc:Ran(cargo) + @nuc:RCC1(site) <-> @nuc:Ran(cargo!1).RCC1(site!1) 1.0, 100.0 +Ran_C_bind_nuc: @nuc:Ran(cargo!1).C(site!1) <-> @nuc:Ran(cargo) + @nuc:C(site) 1.0, 100.0 +end reaction rules + +end model + +simulate_nf({t_end=>10.0,n_steps=>200}) \ No newline at end of file diff --git a/Published/Blinovran/README.md b/Published/Blinovran/README.md new file mode 100644 index 00000000..71edb47c --- /dev/null +++ b/Published/Blinovran/README.md @@ -0,0 +1,21 @@ +# Blinov ran + +Ran GTPase cycle + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: nf +- Imported from: published + +## Files + +- Blinov_ran.bngl + +## Tags + +published, nfsim, blinov, ran, c, rcc1, simulate_nf diff --git a/Published/Blinovran/metadata.yaml b/Published/Blinovran/metadata.yaml new file mode 100644 index 00000000..e92f3b24 --- /dev/null +++ b/Published/Blinovran/metadata.yaml @@ -0,0 +1,22 @@ +id: "Blinov_ran" +name: "Blinov ran" +description: "Ran GTPase cycle" +tags: ["published", "nfsim", "blinov", "ran", "c", "rcc1", "simulate_nf"] +category: "regulation" +compatibility: + bng2_compatible: false + simulation_methods: ["nf"] + uses_compartments: true + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/cell-regulation/Blinov_ran.bngl" +playground: + visible: false + gallery_category: "regulation" + featured: false + difficulty: "advanced" diff --git a/Published/Chattaraj2021/Chattaraj_2021.bngl b/Published/Chattaraj2021/Chattaraj_2021.bngl new file mode 100644 index 00000000..c02a3e14 --- /dev/null +++ b/Published/Chattaraj2021/Chattaraj_2021.bngl @@ -0,0 +1,74 @@ +# Clustering of three signaling molecules - Nephrin, Nck and NWASP +# References: +# 1. A. Chattaraj, M. L. Blinov and L. M. Loew. "The solubility product extends the buffering concept +# to heterotypic biomolecular condensates." eLife 2021, Vol. 10 Pages e67176, DOI: 10.7554/eLife.67176 (Figure 6) +# 2. A. Chattaraj and L. M. Loew. "The maximum solubility product marks the threshold for condensation +# of multivalent biomolecules". bioRxiv 2022, DOI: 10.1101/2022.10.04.510809 (Figure 6B) + +begin model + +begin parameters +# 1: Nephrin, 2: Nck, 3: NWASP +# Kd: binding affinity, kon: binding rate constant, koff: unbinding rate constant +kd_12 3500 +kd_23 3500 +koff_23 1000 +kon_23 koff_23/kd_23 +koff_12 1000 +kon_12 koff_12/kd_12 +end parameters + +begin molecule types +Nephrin(pY1,pY2,pY3) +Nck(S1,S2,S3,Sh2) +NWASP(p1,p2,p3,p4,p5,p6) +end molecule types + +begin seed species +1 Nephrin(pY1,pY2,pY3) 300 +2 Nck(S1,S2,S3,Sh2) 900 +3 NWASP(p1,p2,p3,p4,p5,p6) 450 +end seed species + +begin observables +Molecules tot_Nck Nck() +Molecules free_Nck Nck(S1,S2,S3,Sh2) +Molecules tot_NWASP NWASP() +Molecules free_NWASP NWASP(p1,p2,p3,p4,p5,p6) +Molecules tot_Nephrin Nephrin() +Molecules free_Nephrin Nephrin(pY1,pY2,pY3) +Molecules fully_bound_Nephrin Nephrin(pY1!+,pY2!+,pY3!+) +Molecules fully_bound_Nck Nck(S1!+,S2!+,S3!+,Sh2!+) +Molecules fully_bound_NWASP NWASP(p1!+,p2!+,p3!+,p4!+,p5!+,p6!+) +Molecules cluster_neph_nck_nw Nephrin().Nck().NWASP() +Molecules cluster_nck_nw Nck().NWASP() +end observables + + +begin reaction rules +_01_S1_P1: Nck(S1) + NWASP(p1) <-> Nck(S1!1).NWASP(p1!1) kon_23, koff_23 +_02_S2_P1: Nck(S2) + NWASP(p1) <-> Nck(S2!1).NWASP(p1!1) kon_23, koff_23 +_03_S3_P1: Nck(S3) + NWASP(p1) <-> Nck(S3!1).NWASP(p1!1) kon_23, koff_23 +_06_S3_P2: Nck(S3) + NWASP(p2) <-> Nck(S3!1).NWASP(p2!1) kon_23, koff_23 +_05_S2_P2: Nck(S2) + NWASP(p2) <-> Nck(S2!1).NWASP(p2!1) kon_23, koff_23 +_04_S1_P2: Nck(S1) + NWASP(p2) <-> Nck(S1!1).NWASP(p2!1) kon_23, koff_23 +_08_S2_P3: Nck(S2) + NWASP(p3) <-> Nck(S2!1).NWASP(p3!1) kon_23, koff_23 +_07_S1_P3: Nck(S1) + NWASP(p3) <-> Nck(S1!1).NWASP(p3!1) kon_23, koff_23 +_09_S3_P3: Nck(S3) + NWASP(p3) <-> Nck(S3!1).NWASP(p3!1) kon_23, koff_23 +_10_S1_P4: Nck(S1) + NWASP(p4) <-> Nck(S1!1).NWASP(p4!1) kon_23, koff_23 +_11_S2_P4: Nck(S2) + NWASP(p4) <-> Nck(S2!1).NWASP(p4!1) kon_23, koff_23 +_12_S3_P4: Nck(S3) + NWASP(p4) <-> Nck(S3!1).NWASP(p4!1) kon_23, koff_23 +_13_S1_P5: Nck(S1) + NWASP(p5) <-> Nck(S1!1).NWASP(p5!1) kon_23, koff_23 +_14_S2_P5: Nck(S2) + NWASP(p5) <-> Nck(S2!1).NWASP(p5!1) kon_23, koff_23 +_15_S3_P5: Nck(S3) + NWASP(p5) <-> Nck(S3!1).NWASP(p5!1) kon_23, koff_23 +_16_S1_P6: Nck(S1) + NWASP(p6) <-> Nck(S1!1).NWASP(p6!1) kon_23, koff_23 +_17_S3_P6: Nck(S3) + NWASP(p6) <-> Nck(S3!1).NWASP(p6!1) kon_23, koff_23 +_18_S2_P6: Nck(S2) + NWASP(p6) <-> Nck(S2!1).NWASP(p6!1) kon_23, koff_23 +_19_pY1_sh2: Nephrin(pY1) + Nck(Sh2) <-> Nephrin(pY1!1).Nck(Sh2!1) kon_12, koff_12 +_20_pY2_sh2: Nephrin(pY2) + Nck(Sh2) <-> Nephrin(pY2!1).Nck(Sh2!1) kon_12, koff_12 +_21_pY3_sh2: Nephrin(pY3) + Nck(Sh2) <-> Nephrin(pY3!1).Nck(Sh2!1) kon_12, koff_12 +end reaction rules + +end model + +writeXML() \ No newline at end of file diff --git a/Published/Chattaraj2021/README.md b/Published/Chattaraj2021/README.md new file mode 100644 index 00000000..882f9e32 --- /dev/null +++ b/Published/Chattaraj2021/README.md @@ -0,0 +1,21 @@ +# Chattaraj 2021 + +NFkB oscillations + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Chattaraj_2021.bngl + +## Tags + +published, chattaraj, 2021, nephrin, nck, nwasp, writexml diff --git a/Published/Chattaraj2021/metadata.yaml b/Published/Chattaraj2021/metadata.yaml new file mode 100644 index 00000000..3092abb8 --- /dev/null +++ b/Published/Chattaraj2021/metadata.yaml @@ -0,0 +1,22 @@ +id: "Chattaraj_2021" +name: "Chattaraj 2021" +description: "NFkB oscillations" +tags: ["published", "chattaraj", "2021", "nephrin", "nck", "nwasp", "writexml"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/complex-models/Chattaraj_2021.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/CheemalavaguJAKSTAT/Cheemalavagu_JAK_STAT.bngl b/Published/CheemalavaguJAKSTAT/Cheemalavagu_JAK_STAT.bngl new file mode 100644 index 00000000..d4b5a334 --- /dev/null +++ b/Published/CheemalavaguJAKSTAT/Cheemalavagu_JAK_STAT.bngl @@ -0,0 +1,229 @@ +# reaction rules: 29 +# unknown parameters: 44 +begin model +begin parameters + # IL-6 constants + il6_il6r_binding 1 + il6_il6r_unbinding 1 + il6r_gp130_binding 1 + il6r_gp130_unbinding 1 + il6_complex_jak1_binding 1 + il6_complex_jak1_unbinding 1 + il6_complex_jak2_binding 1 + il6_complex_jak2_unbinding 1 + + SOCS3_il6r_binding 1 + SOCS3_il6r_unbinding 1 + SOCS3_gp130_binding 1 + SOCS3_gp130_unbinding 1 + + il6_jak1_med_STAT3_act 1 + il6_jak1_med_STAT1_act 1 + il6_jak2_med_STAT3_act 1 + il6_jak2_med_STAT1_act 1 + + # IL-10 constants + il10_il10r1_binding 1 + il10_il10r1_unbinding 1 + il10r1_il10r2_binding 1 + il10r1_il10r2_unbinding 1 + il10_complex_jak1_binding 1 + il10_complex_jak1_unbinding 1 + il10_jak1_med_STAT3_act 1 + il10_jak1_med_STAT1_act 1 + + # common constants + SOCS1_jak1_binding 1 + SOCS1_jak1_unbinding 1 + pSTAT3_rec_dissoc 1 + pSTAT1_rec_dissoc 1 + + # STAT parameters + PTP_med_STAT3_deact 1 + PTP_med_STAT1_deact 1 + STAT3_SOCS3_ind 1 + STAT3_SOCS1_ind 1 + STAT1_SOCS3_ind 1 + STAT1_SOCS1_ind 1 + + # initial ligand concentrations + L1_0 100 + L2_0 0 + + # initial receptor concentrations + IL6R_0 1 + GP130_0 1 + IL10R1_0 1 + IL10R2_0 1 + + # initial jak concentrations + JAK1_0 1 + JAK2_0 1 + + # negtaive regulators + SOCS3_0 0 + SOCS1_0 0 + PTP3_0 1 + PTP1_0 1 + + SOCS3_degrad 1 + SOCS1_degrad 1 + + # initial unphosphorylated STAT3 + S3_0 1 + S1_0 1 +end parameters + +begin molecule types + L1(il6r) + IL6R(l1,gp130,jak1,socs3,stat) + GP130(il6r,jak2,socs3,stat) + + L2(il10r1) + IL10R1(l2,il10r2,jak1,stat) + IL10R2(il10r1) + + JAK1(rec,socs1) + JAK2(gp130) + + SOCS3(il6r,gp130) + SOCS1(jak1) + + PTP3() + PTP1() + + S3(Y~0~P) + S1(Y~0~P) +end molecule types + +begin seed species + L1(il6r) L1_0 + IL6R(l1,gp130,jak1,socs3,stat) IL6R_0 + GP130(il6r,jak2,socs3,stat) GP130_0 + + L2(il10r1) L2_0 + IL10R1(l2,il10r2,jak1,stat) IL10R1_0 + IL10R2(il10r1) IL10R2_0 + + JAK1(rec,socs1) JAK1_0 + JAK2(gp130) JAK2_0 + + SOCS3(il6r,gp130) SOCS3_0 + SOCS1(jak1) SOCS1_0 + + PTP3() PTP3_0 + PTP1() PTP1_0 + + S3(Y~0) S3_0 + S1(Y~0) S1_0 +end seed species + +begin observables + Molecules total_pS3 IL6R(l1!1,gp130!2,jak1!3,socs3,stat!8).L1(il6r!1).GP130(il6r!2).JAK1(rec!3,socs1).S3(Y~P!8),S3(Y~P),IL6R(l1!1,gp130!2).L1(il6r!1).GP130(il6r!2,jak2!4,socs3,stat!10).JAK2(gp130!4).S3(Y~P!10),IL10R1(l2!1,il10r2!2,jak1!3,stat!5).L2(il10r1!1).IL10R2(il10r1!2).JAK1(rec!3,socs1).S3(Y~P!5) + Molecules total_pS1 IL6R(l1!1,gp130!2,jak1!3,socs3,stat!9).L1(il6r!1).GP130(il6r!2).JAK1(rec!3,socs1).S1(Y~P!9),S1(Y~P),IL6R(l1!1,gp130!2).L1(il6r!1).GP130(il6r!2,jak2!4,socs3,stat!11).JAK2(gp130!4).S1(Y~P!11),IL10R1(l2!1,il10r2!2,jak1!3,stat!6).L2(il10r1!1).IL10R2(il10r1!2).JAK1(rec!3,socs1).S1(Y~P!6) +end observables + +begin reaction rules + # IL-6 binds to receptor + IL6R(l1,gp130,jak1,socs3,stat) + L1(il6r) <-> IL6R(l1!1,gp130,jak1,socs3,stat).L1(il6r!1) il6_il6r_binding,il6_il6r_unbinding + + # IL-6 receptor complex forms + IL6R(l1!1,gp130,jak1,socs3,stat).L1(il6r!1) + GP130(il6r,jak2,socs3,stat) <-> IL6R(l1!1,gp130!2,jak1,socs3,stat).L1(il6r!1).GP130(il6r!2,jak2,socs3,stat) il6r_gp130_binding,il6r_gp130_unbinding + + # IL-6 receptor complex binds jak1 (this can happen before/after jak2) + IL6R(l1!1,gp130!2,jak1,socs3,stat).L1(il6r!1).GP130(il6r!2) + JAK1(rec,socs1) <-> IL6R(l1!1,gp130!2,jak1!3,socs3,stat).L1(il6r!1).GP130(il6r!2).JAK1(rec!3,socs1) il6_complex_jak1_binding,il6_complex_jak1_unbinding + + # IL-6 receptor complex binds jak2 (this can happen before/after jak1) + IL6R(l1!1,gp130!2).L1(il6r!1).GP130(il6r!2,jak2,socs3,stat) + JAK2(gp130) <-> IL6R(l1!1,gp130!2).L1(il6r!1).GP130(il6r!2,jak2!4,socs3,stat).JAK2(gp130!4) il6_complex_jak2_binding,il6_complex_jak2_unbinding + + # SOCS3-mediated Jak1 inhibition + IL6R(l1!1,gp130!2,jak1!3,socs3,stat).L1(il6r!1).GP130(il6r!2).JAK1(rec!3,socs1) + SOCS3(il6r,gp130) <-> IL6R(l1!1,gp130!2,jak1!3,socs3!5,stat).L1(il6r!1).GP130(il6r!2).JAK1(rec!3,socs1).SOCS3(il6r!5,gp130) SOCS3_il6r_binding,SOCS3_il6r_unbinding + + # SOCS3-mediated Jak2 inhibition + IL6R(l1!1,gp130!2).L1(il6r!1).GP130(il6r!2,jak2!4,socs3,stat).JAK2(gp130!4) + SOCS3(il6r,gp130) <-> IL6R(l1!1,gp130!2).L1(il6r!1).GP130(il6r!2,jak2!4,socs3!6,stat).JAK2(gp130!4).SOCS3(il6r,gp130!6) SOCS3_gp130_binding,SOCS3_gp130_unbinding + + # SOCS1-mediated IL-6-Jak1 inhibition + IL6R(l1!1,gp130!2,jak1!3,socs3,stat).L1(il6r!1).GP130(il6r!2).JAK1(rec!3,socs1) + SOCS1(jak1) <-> IL6R(l1!1,gp130!2,jak1!3,socs3,stat).L1(il6r!1).GP130(il6r!2).JAK1(rec!3,socs1!7).SOCS1(jak1!7) SOCS1_jak1_binding,SOCS1_jak1_unbinding + + # IL-6/Jak1-mediated STAT3 activation + # this rule means that STAT will always get phosphorylated when it binds; only dissociates to induce SOCS + IL6R(l1!1,gp130!2,jak1!3,socs3,stat).L1(il6r!1).GP130(il6r!2).JAK1(rec!3,socs1) + S3(Y~0) -> IL6R(l1!1,gp130!2,jak1!3,socs3,stat!8).L1(il6r!1).GP130(il6r!2).JAK1(rec!3,socs1).S3(Y~P!8) il6_jak1_med_STAT3_act + + # IL-6/Jak1 activated pSTAT3 unbinding + IL6R(l1!1,gp130!2,jak1!3,socs3,stat!8).L1(il6r!1).GP130(il6r!2).JAK1(rec!3,socs1).S3(Y~P!8) -> IL6R(l1!1,gp130!2,jak1!3,socs3,stat).L1(il6r!1).GP130(il6r!2).JAK1(rec!3,socs1) + S3(Y~P) pSTAT3_rec_dissoc + + # IL-6/Jak1-mediated STAT1 activation + # this rule means that STAT will always get phosphorylated when it binds; only dissociates to induce SOCS + IL6R(l1!1,gp130!2,jak1!3,socs3,stat).L1(il6r!1).GP130(il6r!2).JAK1(rec!3,socs1) + S1(Y~0) -> IL6R(l1!1,gp130!2,jak1!3,socs3,stat!9).L1(il6r!1).GP130(il6r!2).JAK1(rec!3,socs1).S1(Y~P!9) il6_jak1_med_STAT1_act + + # IL-6/Jak1 activated pSTAT1 unbinding + IL6R(l1!1,gp130!2,jak1!3,socs3,stat!9).L1(il6r!1).GP130(il6r!2).JAK1(rec!3,socs1).S1(Y~P!9) -> IL6R(l1!1,gp130!2,jak1!3,socs3,stat).L1(il6r!1).GP130(il6r!2).JAK1(rec!3,socs1) + S1(Y~P) pSTAT1_rec_dissoc + + # IL-6/Jak2-mediated STAT3 activation + # this rule means that STAT will always get phosphorylated when it binds; only dissociates to induce SOCS + IL6R(l1!1,gp130!2).L1(il6r!1).GP130(il6r!2,jak2!4,socs3,stat).JAK2(gp130!4) + S3(Y~0) -> IL6R(l1!1,gp130!2).L1(il6r!1).GP130(il6r!2,jak2!4,socs3,stat!10).JAK2(gp130!4).S3(Y~P!10) il6_jak2_med_STAT3_act + + # IL-6/Jak2 activated pSTAT3 unbinding + IL6R(l1!1,gp130!2).L1(il6r!1).GP130(il6r!2,jak2!4,socs3,stat!10).JAK2(gp130!4).S3(Y~P!10) -> IL6R(l1!1,gp130!2).L1(il6r!1).GP130(il6r!2,jak2!4,socs3,stat).JAK2(gp130!4) + S3(Y~P) pSTAT3_rec_dissoc + + # IL-6/Jak2-mediated STAT1 activation + # this rule means that STAT will always get phosphorylated when it binds; only dissociates to induce SOCS + IL6R(l1!1,gp130!2).L1(il6r!1).GP130(il6r!2,jak2!4,socs3,stat).JAK2(gp130!4) + S1(Y~0) -> IL6R(l1!1,gp130!2).L1(il6r!1).GP130(il6r!2,jak2!4,socs3,stat!11).JAK2(gp130!4).S1(Y~P!11) il6_jak2_med_STAT1_act + + # IL-6/Jak2 activated pSTAT1 unbinding + IL6R(l1!1,gp130!2).L1(il6r!1).GP130(il6r!2,jak2!4,socs3,stat!11).JAK2(gp130!4).S1(Y~P!11) -> IL6R(l1!1,gp130!2).L1(il6r!1).GP130(il6r!2,jak2!4,socs3,stat).JAK2(gp130!4) + S1(Y~P) pSTAT1_rec_dissoc + + # IL-10 binds to receptor + IL10R1(l2,il10r2,jak1,stat) + L2(il10r1) <-> IL10R1(l2!1,il10r2,jak1,stat).L2(il10r1!1) il10_il10r1_binding,il10_il10r1_unbinding + + # IL-10 receptor complex forms + IL10R1(l2!1,il10r2,jak1,stat).L2(il10r1!1) + IL10R2(il10r1) <-> IL10R1(l2!1,il10r2!2,jak1,stat).L2(il10r1!1).IL10R2(il10r1!2) il10r1_il10r2_binding,il10r1_il10r2_unbinding + + # IL-10 receptor complex binds jak1 + IL10R1(l2!1,il10r2!2,jak1,stat).L2(il10r1!1).IL10R2(il10r1!2) + JAK1(rec,socs1) <-> IL10R1(l2!1,il10r2!2,jak1!3,stat).L2(il10r1!1).IL10R2(il10r1!2).JAK1(rec!3,socs1) il10_complex_jak1_binding,il10_complex_jak1_unbinding + + # SOCS1-mediated IL-10-Jak1 inhibition + IL10R1(l2!1,il10r2!2,jak1!3,stat).L2(il10r1!1).IL10R2(il10r1!2).JAK1(rec!3,socs1) + SOCS1(jak1) <-> IL10R1(l2!1,il10r2!2,jak1!3,stat).L2(il10r1!1).IL10R2(il10r1!2).JAK1(rec!3,socs1!4).SOCS1(jak1!4) SOCS1_jak1_binding,SOCS1_jak1_unbinding + + # IL-10/Jak1-mediated STAT3 activation + IL10R1(l2!1,il10r2!2,jak1!3,stat).L2(il10r1!1).IL10R2(il10r1!2).JAK1(rec!3,socs1) + S3(Y~0) -> IL10R1(l2!1,il10r2!2,jak1!3,stat!5).L2(il10r1!1).IL10R2(il10r1!2).JAK1(rec!3,socs1).S3(Y~P!5) il10_jak1_med_STAT3_act + + # IL-10/Jak1 activated pSTAT3 unbinding + IL10R1(l2!1,il10r2!2,jak1!3,stat!5).L2(il10r1!1).IL10R2(il10r1!2).JAK1(rec!3,socs1).S3(Y~P!5) -> IL10R1(l2!1,il10r2!2,jak1!3,stat).L2(il10r1!1).IL10R2(il10r1!2).JAK1(rec!3,socs1) + S3(Y~P) pSTAT3_rec_dissoc + + # IL-10/Jak1-mediated STAT1 activation + IL10R1(l2!1,il10r2!2,jak1!3,stat).L2(il10r1!1).IL10R2(il10r1!2).JAK1(rec!3,socs1) + S1(Y~0) -> IL10R1(l2!1,il10r2!2,jak1!3,stat!6).L2(il10r1!1).IL10R2(il10r1!2).JAK1(rec!3,socs1).S1(Y~P!6) il10_jak1_med_STAT1_act + + # IL-10/Jak1 activated pSTAT1 unbinding + IL10R1(l2!1,il10r2!2,jak1!3,stat!6).L2(il10r1!1).IL10R2(il10r1!2).JAK1(rec!3,socs1).S1(Y~P!6) -> IL10R1(l2!1,il10r2!2,jak1!3,stat).L2(il10r1!1).IL10R2(il10r1!2).JAK1(rec!3,socs1) + S1(Y~P) pSTAT1_rec_dissoc + + # PTP3-mediated STAT3 deactivation + PTP3() + S3(Y~P) -> PTP3() + S3(Y~0) PTP_med_STAT3_deact + + # PTP1-mediated STAT1 deactivation + PTP1() + S1(Y~P) -> PTP1() + S1(Y~0) PTP_med_STAT1_deact + + # STAT3 SOCS3 protein production + S3(Y~P) -> S3(Y~P) + SOCS3(il6r,gp130) STAT3_SOCS3_ind + + # STAT3 SOCS1 protein production + S3(Y~P) -> S3(Y~P) + SOCS1(jak1) STAT3_SOCS1_ind + + # STAT1 SOCS3 protein production + S1(Y~P) -> S1(Y~P) + SOCS3(il6r,gp130) STAT1_SOCS3_ind + + # STAT1 SOCS1 protein production + S1(Y~P) -> S1(Y~P) + SOCS1(jak1) STAT1_SOCS1_ind + + # SOCS3 protein degradation + SOCS3(il6r,gp130) -> 0 SOCS3_degrad + + # SOCS1 protein degradation + SOCS1(jak1) -> 0 SOCS1_degrad +end reaction rules +end model + +# actions +generate_network({overwrite=>1}) +writeMexfile({t_start=>0,t_end=>90,n_steps=>91,atol=>1e-10}) +simulate({method=>"ode",t_start=>0, t_end=>90,n_steps=>91,print_functions=>1}) diff --git a/Published/CheemalavaguJAKSTAT/README.md b/Published/CheemalavaguJAKSTAT/README.md new file mode 100644 index 00000000..fc8f2478 --- /dev/null +++ b/Published/CheemalavaguJAKSTAT/README.md @@ -0,0 +1,21 @@ +# Cheemalavagu 2024 + +JAK-STAT signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- Cheemalavagu_JAK_STAT.bngl + +## Tags + +published, literature, signaling, cheemalavagu, jak, stat, l1, il6r, gp130, l2, il10r1, il10r2, jak1, jak2 diff --git a/Published/CheemalavaguJAKSTAT/metadata.yaml b/Published/CheemalavaguJAKSTAT/metadata.yaml new file mode 100644 index 00000000..5689cd4c --- /dev/null +++ b/Published/CheemalavaguJAKSTAT/metadata.yaml @@ -0,0 +1,22 @@ +id: "Cheemalavagu_JAK_STAT" +name: "Cheemalavagu 2024" +description: "JAK-STAT signaling" +tags: ["published", "literature", "signaling", "cheemalavagu", "jak", "stat", "l1", "il6r", "gp130", "l2", "il10r1", "il10r2", "jak1", "jak2"] +category: "other" +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-web-simulator" + source_path: "published-models/literature/Cheemalavagu_JAK_STAT.bngl" +playground: + visible: true + gallery_category: "other" + featured: false + difficulty: "intermediate" diff --git a/Published/ChylekFceRI2014/ChylekFceRI_2014.bngl b/Published/ChylekFceRI2014/ChylekFceRI_2014.bngl new file mode 100644 index 00000000..5838b9d4 --- /dev/null +++ b/Published/ChylekFceRI2014/ChylekFceRI_2014.bngl @@ -0,0 +1,746 @@ +# References: +# Xu K, Goldstein B, Holowka D, Baird B. Kinetics of multivalent antigen DNP-BSA binding to IgE-Fc epsilon RI in relationship to the stimulated tyrosine phosphorylation of Fc epsilon RI. J Immunol. (1998) 160:3225-35. +# Faeder JR, Hlavacek WS, Reischl I, Blinov ML, Metzger H, Redondo A, Wofsy C, Goldstein B. Investigation of early events in Fc epsilon RI-mediated signaling using a detailed mathematical model. J Immunol. (2003) 170:3769-81. +# Barua D, Hlavacek WS, Lipniacki T. A computational model for early events in B cell antigen receptor signaling: analysis of the roles of Lyn and Fyn. J Immunol. (2012) 189:646-58. +# Lenoci L, Duvernay M, Satchell S, DiBenedetto E, Hamm HE. Mathematical model of PAR1-mediated activation of human platelets. Mol Biosyst.7:1129-37. (2011) + + +begin molecule types + +# Residue numbers, where applicable, are given for rat proteins. + +# The ligand is DNP-BSA and is taken to have two virtual haptens. +# Each hapten has two possible states, buried (b) or exposed (e). +Lig(hap~b~e,hap~b~e) + +# The receptor is a complex of FceRI and an IgE antibody. +# The "fab" components represent the two fab arms of hapten-specific IgE. +# b_Y218 and b_Y224 are tyrosines in the ITAM of the beta subunit. +# b_Y224 is non-canonical, located between the two canonical tyrosines of the ITAM. +# Y65 and Y76 are tyrosines in the ITAM of the gamma subunit and are lumped as a single site. +# Only one (of the two) gamma chains is considered, as a simplification. +Rec(fab,fab,b_Y218~0~P,b_Y224~0~P,g_Y65_Y76~0~P) + +# Lyn is an SFK with a unique domain (U), an SH2 domain, and an SH3 domain. +# Y397 is located in the kinase activation loop, and Y508 is the inhibitory C-terminal tyrosine. +Lyn(U,SH3,SH2,Y397~0~P,Y508~0~P) + +# Fyn is an SFK with a unique domain (U), an SH2 domain, and an SH3 domain. +# Y420 is located in the kinase activation loop, and Y531 is the inhibitory C-terminal tyrosine. +Fyn(U,SH3,SH2,PTK,Y420~0~P,Y531~0~P) + +# Syk is a kinase with tandem SH2 domains, which are lumped as a single site. +# Y346 is located in Interdomain B. +# Y519 and Y520 are located in the activation loop of the kinase domain. These tyrosines are lumped as a single site. +Syk(tSH2,Y346~0~P,PTK,Y519_Y520~0~P) + +# Pag1 is an adaptor protein with two proline-rich sequences (PRS1 and PRS2) and multiple phosphosites. +# Y165 and Y183 are lumped as a single site, as are Y386 and Y409. +# PRS1 represents the PRIP motif starting at P136. +# PRS2 represents the PPVP motif starting at P255. +Pag1(PRS1,Y165_Y183~0~P,PRS2,Y317~0~P,Y386_Y409~0~P) + +# Csk is a kinase with an SH2 domain. +Csk(SH2) + +# Lat is an adaptor protein with multiple tyrosine residues that undergo phosphorylation, of which we focus on Y136 and Y175 +Lat(Y136~0~P,Y175~0~P) + +# Phospholipase C gamma 1 (Plcg1) +Plcg1(SH2,SH3,PLC,Y783~0~P) + +# Grb2 is an adaptor protein with an SH2 domain and two SH3 domains, of which we consider the C-terminal domain. +Grb2(SH2,cSH3) + +# Gab2 is an adaptor protein +Gab2(PRS,Y441~0~P) + +# Grap2 is an adaptor protein +Grap2(SH2,SH3) + +# Lcp2 is an adaptor protein +Lcp2(RxxK,PRS) + +# PI 3-kinase is a heterodimeric lipid kinase that can phosphorylate the 3 position of an inositol ring. +# Its p85 subunit contains an SH2 domain. +Pi3k(p85_SH2,PI3Kc) + +# Btk is a Tec family kinase +Btk(PH,PTK) + +# Inpp5d is an inositol phosphatase. It is also known as Ship1. +# It contains an SH2 domain, a C2 domain that can bind lipid species, and an inositol polyphosphate phosphatase catalytic domain (IPP) +Inpp5d(SH2,IPP,C2) + +# Phosphatidylinositol 3,4-bisphosphate, or PtdIns(3,4)P2, is a phospholipid. +# The "bind" component is a virtual site for protein interactions. +PI34P2(bind) + +# Phosphatidylinositol 4,5-bisphosphate, or PtdIns(4,5)P2, is a phospholipid. +# The "bind" component is a virtual site for protein interactions. +PI45P2(bind) + +# Phosphatidylinositol 3,4,5-trisphosphate, or PtdIns(3,4,5)P3, is a phospholipid. +# The "bind" component is a virtual site for protein interactions. +PI345P3(bind) + +# Inositol 1,4,5-trisphosphate +IP3() + +# Diacyl glycerol +DAG() + +# Sink +Sink() + +PI4P() +end molecule types + + +begin parameters +NA 6.022e23 # Avogadro's number; molecules/mole. +celldensity 1e9 # Cells/L +Fx 0.02 # Fraction of cell volume to simuate; unitless. +ECFvol 1/(celldensity) # Extracellular volume; L/cell. +simECFvol ECFvol*Fx # Simulated fraction of extracellular volume; L. +Cellvol 1.4e-12 # Cytoplasmic volume; L. Value from Faeder et al. +simCellvol Cellvol*Fx # Simulated fraction of cell volume; L. +ProteinTot 3e5 # Protein copy number per cell. +SimProteinTot Fx*ProteinTot # Simulated fraction of protein copy number. +LigTot 5e4 +SimLigTot Fx*LigTot + + +# Exposure of hapten, forward rate constant. (Xu et al, Table I.) +lambda_p 1.7e-2 # /s + +# Exposure of hapten, reverse rate constant. +# From lambda_p and ratio of forward and reverse rate constants. (Xu et al.) +lambda_m 5.4e-2 # /s + +# Ligand binding from solution, forward rate constant (Xu et al.). Set in rnf file. +kfl 0 # 8e6/(NA*simECFvol) /M/s + +# Crosslinking by ligand, forward rate constant (Xu et al.). +kxl 1.3/SimProteinTot #/M/s + +# Ligand binding, reverse rate constant. (Xu et al.) +krl 1.4e-1 #/s + +# Lyn binding receptor through unique domain, forward rate constant (Faeder et al.) +kfRecLyn1 4.2e7/(NA*simCellvol) #/M/s + +# Lyn binding receptor through unique domain, reverse rate constant (Faeder et al.) +krRecLyn1 20 #/s + +# Lyn binding through SH2 domain, forward rate constant (Faeder et al.) +kfRecLyn2 kfRecLyn1 #/M/s + +# Lyn binding through SH2 domain, reverse rate constant (Faeder et al.) +krRecLyn2 0.12 #/s + +# Receptor phosphorylation (beta chain) by Lyn (Faeder et al.) +kpLynB1 30 #/s + +# Receptor phosphorylation (beta chain) by activated Lyn (Faeder et al.) +kpLynB2 100 #/s + +# Receptor phosphorylation (gamma chain) by Lyn (Faeder et al.) +kpLynG1 1 #/s + +# Receptor phosphorylation (gamma chain) by activated Lyn (Faeder et al.) +kpLynG2 3 #/s + +# Autoinhibitory Lyn intramolecular bond, forward rate constant (Barua et al.) +kfLynIn 10 #/s + +# Autoinhibitory Lyn intramolecular bond, reverse rate constant (Barua et al.) +krLynIn 3e-4 #/s + +# Binding of Syk SH2 domains to dually-phosphorylated ITAM, forward rate constant (Faeder et al.) +kfRecSyk 5.1e7/(NA*simCellvol) #/M/s + +# Binding of Syk SH2 domains to dually-phosphorylated ITAM, reverse rate constant (Faeder et al.) +krRecSyk 0.13 #/s + + +kpSykSyk0 100 +kpSykSykP 200 +kpLynSyk1 30 +kpLynSyk2 100 +kfPagLynSH3 8.4e6/(NA*simCellvol) +krPagLynSH3 30 +kfPagLynSH3_2 1e3 +kfPagLynSH2 2.5e7/(NA*simCellvol) +kfPagLynSH2_2 1e3 +krPagLyn2point 30 +kpLynPag 1000 +kfCskPag 2.5e4/(NA*simCellvol) +krCskPag 3e-3 +kpCskLyn 1000 +eff 5 +kfRecFyn1 kfRecLyn1 +krRecFyn1 krRecLyn1 +kfRecFyn2 kfRecLyn2 +krRecFyn2 krRecLyn2 +kfFynIn kfLynIn +krFynIn krLynIn +kpFynB1 kpLynB1/eff +kpFynB2 kpLynB2/eff +kpFynG1 kpLynG1/eff +kpFynG2 kpLynG2/eff +kpFynSyk1 kpLynSyk1/eff +kpFynSyk2 kpLynSyk2/eff +kfPagFynSH3 kfPagLynSH3 +krPagFynSH3 krPagLynSH3 +kfPagFynSH3_2 kfPagLynSH3_2 +kfPagFynSH2 kfPagLynSH2 +kfPagFynSH2_2 kfPagLynSH2_2 +krPagFyn2point krPagLyn2point +kpFynPag kpLynPag/eff +kpCskFyn kpCskLyn + +kfSykLat kfRecLyn1 +krSykLat krRecLyn1 +kpSykLat1 kpSykSyk0 + +kpSykLat2 kpSykSykP + +KD_LatPlcg 62e-9 +krLatPlcg krRecLyn2 +kfLatPlcg (krLatPlcg/KD_LatPlcg)/(NA*simCellvol) + + +# Parameters for IP3 generation are taken from Lenoci et al (2011) +kfPlcgPip2 1e9/(NA*simCellvol) +krPlcgPip2 1 +kcPlcgP 3.2e2 +kcPlcg0 kcPlcgP/50 + + +krLatGrb2 krRecLyn2 +kfLatGrb2 2.5e8/(NA*simCellvol) + +KD_Grb2Gab2 8e-6 +krGrb2Gab2 krRecLyn2 +kfGrb2Gab2 (krGrb2Gab2/KD_Grb2Gab2)/(NA*simCellvol) + +kfFynGab2 kfSykLat +krFynGab2 krSykLat +kpFynGab2 kpFynB1 + +kfGab2Pi3k kfRecLyn2 +krGab2Pi3k krRecLyn2 + +kfPi3kPip2 kfPlcgPip2 +krPi3kPip2 krPlcgPip2 +kpPi3k kcPlcgP +kfBtkPip3 1.4e6/(NA*simCellvol) +krBtkPip3 1 +kfBtkPlcg kfSykLat +krBtkPlcg krSykLat +kpBtkPlcg kpSykSykP +kfShipRec kfRecLyn2/5 +krShipRec krRecLyn2/5 +kfShipPip3 kfPlcgPip2 +krShipPip3 krPlcgPip2 +kdpShipPip3 kcPlcgP +kfShipPip2 kfBtkPip3 +krShipPip2 krBtkPip3 +kfLatGrap2 6.6e6/(NA*simCellvol) +krLatGrap2 1 + +KD_Grb2Gab2 8e-6 +krGrb2Gab2 1 +kfGrb2Gab2 (1/KD_Grb2Gab2)/(NA*simCellvol) + +kfGrap2Lcp2 9.5e6/(NA*simCellvol) +krGrap2Lcp2 0.06 + +KD_Lcp2Plcg1 1e-6 +krLcp2Plcg1 1 +kfLcp2Plcg1 (krLcp2Plcg1/KD_Lcp2Plcg1)/(NA*simCellvol) + +kPten 1 + +kfP5 1 +krP5 1 +p 1e-3 +dp 5 +end parameters + +begin seed species +Lig(hap~b,hap~b) SimLigTot +Rec(fab,fab,b_Y218~0,b_Y224~0,g_Y65_Y76~0) SimProteinTot +Lyn(U,SH2,SH3,Y397~0,Y508~0) SimProteinTot +Fyn(U,SH2,SH3,Y420~0,PTK,Y531~0) SimProteinTot +Syk(tSH2,Y346~0,PTK,Y519_Y520~0) SimProteinTot +Pag1(PRS1,PRS2,Y317~0,Y165_Y183~0,Y386_Y409~0) SimProteinTot +Csk(SH2) SimProteinTot +Lat(Y136~0,Y175~0) SimProteinTot +Plcg1(SH2,SH3,PLC,Y783~0) SimProteinTot +Grb2(SH2,cSH3) SimProteinTot +Gab2(PRS,Y441~0) SimProteinTot +PI45P2(bind) SimProteinTot +Pi3k(PI3Kc,p85_SH2) SimProteinTot +Btk(PH,PTK) SimProteinTot +Inpp5d(SH2,C2,IPP) SimProteinTot +Grap2(SH2,SH3) SimProteinTot +Lcp2(RxxK,PRS) SimProteinTot +PI4P() SimProteinTot +Sink() SimProteinTot +end seed species + +begin reaction rules + + +# Haptens are transiently exposed. +Lig(hap~b) <-> Lig(hap~e) lambda_p,lambda_m + +# Binding from solution when a hapten is exposed. Does not depend on state of second hapten. +Lig(hap~e,hap~e) + Rec(fab) -> Lig(hap~e,hap~e!1).Rec(fab!1) kfl +Lig(hap~b,hap~e) + Rec(fab) -> Lig(hap~b,hap~e!1).Rec(fab!1) kfl + +# Receptor crosslinking when both haptens are exposed. +Lig(hap~e,hap~e!1).Rec(fab!1) + Rec(fab) -> \ +Lig(hap~e!2,hap~e!1).Rec(fab!1).Rec(fab!2) kxl + +# Dissociation of hapten from receptor site +Lig(hap~e!1).Rec(fab!1) -> Lig(hap~e) + Rec(fab) krl + +# Lyn unique domain binds receptor +Rec(b_Y218~0) + Lyn(U,SH3,SH2) -> \ +Rec(b_Y218~0!1).Lyn(U!1,SH3,SH2) kfRecLyn1 + +# Lyn unique domain dissociates from receptor +Rec(b_Y218~0!1).Lyn(U!1) -> \ +Rec(b_Y218~0) + Lyn(U) krRecLyn1 + +# Lyn SH2 domain binds receptor +Rec(b_Y218~P) + Lyn(U,SH3,SH2) -> \ +Rec(b_Y218~P!1).Lyn(U,SH3,SH2!1) kfRecLyn2 + +# Lyn SH2 domain dissociates from receptor +Rec(b_Y218~P!1).Lyn(SH2!1) ->\ +Rec(b_Y218~P) + Lyn(SH2) krRecLyn2 + +# Lyn SH2 domain binds Lyn pY508, forming an intramolecular bond +Lyn(U,SH3,SH2,Y508~P) -> \ +Lyn(U,SH3,SH2!1,Y508~P!1) kfLynIn + +# Lyn SH2 dissociates from Lyn pY508 +Lyn(SH2!1,Y508~P!1) -> \ +Lyn(SH2,Y508~P) krLynIn + +## Lyn phosphorylates Y218 in the beta subunit of the receptor. +# Lyn bound by its unqiue domain +Lyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218~0) -> \ +Lyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218~P) kpLynB1 + +# Lyn bound by its SH2 domain +Lyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218~0) -> \ +Lyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218~P) kpLynB2 + +## Lyn phosphorylates Y224 in the beta subunit of the receptor. +# Lyn bound by its unqiue domain +Lyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y224~0) ->\ +Lyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y224~P) kpLynB1 + +# Lyn bound by its SH2 domain +Lyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y224~0) ->\ +Lyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y224~P) kpLynB2 + +## Lyn phosphorylates Y65 and Y76 in the gamma subunit of the receptor. +# Lyn bound by its unqiue domain +Lyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~0) ->\ +Lyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P) kpLynG1 + +# Lyn bound by its SH2 domain +Lyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~0) ->\ +Lyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P) kpLynG2 + +# Syk binds the dually phosphorylated gamma subunit of the receptor +Syk(tSH2) + Rec(g_Y65_Y76~P) <-> Syk(tSH2!1).Rec(g_Y65_Y76~P!1) kfRecSyk,krRecSyk + +## Lyn phosphorylates Syk +# Lyn bound by its unique domain +Lyn(U!1).Rec(fab!2,b_Y218~0!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y346~0) ->\ +Lyn(U!1).Rec(fab!2,b_Y218~0!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y346~P) kpLynSyk1 + +# Lyn bound by its SH2 domain +Lyn(SH2!1).Rec(fab!2,b_Y218~P!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y346~0) ->\ +Lyn(SH2!1).Rec(fab!2,b_Y218~P!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y346~P) kpLynSyk2 + +## Syk trans-phosphorylates the activation loop tyrosine of another Syk molecule +# Syk unphosphorlyated on activation loop +Syk(tSH2!1,Y519_Y520~0).Rec(fab!2,g_Y65_Y76~P!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y519_Y520~0) ->\ +Syk(tSH2!1,Y519_Y520~0).Rec(fab!2,g_Y65_Y76~P!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y519_Y520~P) kpSykSyk0 + +# Syk phosphorylated on activation loop +Syk(tSH2!1,Y519_Y520~P).Rec(fab!2,g_Y65_Y76~P!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y519_Y520~0) ->\ +Syk(tSH2!1,Y519_Y520~P).Rec(fab!2,g_Y65_Y76~P!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y519_Y520~P) kpSykSykP + +## SH3 domain of Lyn binds PRS2 in Pag1 +# Association when Lyn is free +Lyn(U,SH3,SH2) + Pag1(PRS2,Y386_Y409) -> \ +Lyn(U,SH3!1,SH2).Pag1(PRS2!1,Y386_Y409) kfPagLynSH3 + +# Association when Lyn is tethered to Pag1 by an SH2 domain-pY interaction +# Lyn, already tethered in Pag1 by SH2, binds Pag1 via SH3 domain +Lyn(U,SH3,SH2!2).Pag1(PRS2,Y386_Y409~P!2) -> \ +Lyn(U,SH3!1,SH2!2).Pag1(PRS2!1,Y386_Y409~P!2) kfPagLynSH3_2 + +# Dissociation of Lyn SH3 +Lyn(SH3!1,SH2).Pag1(PRS2!1,Y386_Y409) -> \ +Lyn(SH3,SH2) + Pag1(PRS2,Y386_Y409) krPagLynSH3 + + +# SH2 domain of Lyn binds a pY docking site in Pag1 +# Association when Lyn is free +Lyn(U,SH3,SH2) + Pag1(PRS2,Y386_Y409~P) -> \ +Lyn(U,SH3,SH2!2).Pag1(PRS2,Y386_Y409~P!2) kfPagLynSH2 + +# Association when Lyn is tethered to Pag1 via an SH3 domain-PRS interaction +Lyn(U,SH3!1,SH2).Pag1(PRS2!1,Y386_Y409~P) -> \ +Lyn(U,SH3!1,SH2!2).Pag1(PRS2!1,Y386_Y409~P!2) kfPagLynSH2_2 + +# Dissociation of Lyn from Pag1, breaking two-point attachment +# Because association of the Lyn SH3 domain with Pag1 PRS2 is rapid (relative to the lifetime of a pY-SH2 bond) when Lyn is tethered by its SH2 domain, +# we omit dissociation of the SH2 domain alone, as a simplification. +Lyn(SH3!1,SH2!2).Pag1(PRS2!1,Y386_Y409~P!2) -> \ +Lyn(SH3,SH2) + Pag1(PRS2,Y386_Y409~P) krPagLyn2point + +# Lyn phosphorylates Y386 and Y409 in Pag1 +Lyn(SH3!1,Y508).Pag1(PRS2!1,Y386_Y409~0) -> \ +Lyn(SH3!1,Y508).Pag1(PRS2!1,Y386_Y409~P) kpLynPag + +# Lyn phosphorylates Y165 and Y183 in Pag1 +Lyn(SH3,SH2!1,Y508).Pag1(Y165_Y183~0,Y386_Y409~P!1) -> \ +Lyn(SH3,SH2!1,Y508).Pag1(Y165_Y183~P,Y386_Y409~P!1) kpLynPag + +Lyn(SH3!2,SH2!1,Y508).Pag1(PRS2!2,Y165_Y183~0,Y386_Y409~P!1) -> \ +Lyn(SH3!2,SH2!1,Y508).Pag1(PRS2!2,Y165_Y183~P,Y386_Y409~P!1) kpLynPag + +Lyn(SH3!1,SH2,Y508).Pag1(PRS2!1,Y165_Y183~0) -> \ +Lyn(SH3!1,SH2,Y508).Pag1(PRS2!1,Y165_Y183~P) kpLynPag + +Lyn(SH2!1,Y508).Pag1(Y317~0,Y386_Y409~P!1) -> \ +Lyn(SH2!1,Y508).Pag1(Y317~P,Y386_Y409~P!1) kpLynPag + +# Lyn phosphorylates Y317 in Pag1 +Lyn(SH3,SH2!1,Y508).Pag1(Y317~0,Y386_Y409~P!1) -> \ +Lyn(SH3,SH2!1,Y508).Pag1(Y317~P,Y386_Y409~P!1) kpLynPag + +Lyn(SH3!2,SH2!1,Y508).Pag1(PRS2!2,Y317~0,Y386_Y409~P!1) -> \ +Lyn(SH3!2,SH2!1,Y508).Pag1(PRS2!2,Y317~P,Y386_Y409~P!1) kpLynPag + +Lyn(SH3!1,SH2,Y508).Pag1(PRS2!1,Y317~0) -> \ +Lyn(SH3!1,SH2,Y508).Pag1(PRS2!1,Y317~P) kpLynPag + + +# SH2 domain of Csk binds pY317 docking site in Pag1 +Csk(SH2) + Pag1(Y317~P) <-> \ +Csk(SH2!3).Pag1(Y317~P!3) kfCskPag,krCskPag + +# Csk cis phosphorylates Y508 in Lyn +Lyn(SH3,SH2!1,Y508~0).Pag1(Y386_Y409~P!1,Y317~P!2).Csk(SH2!2) ->\ +Lyn(SH3,SH2!1,Y508~P).Pag1(Y386_Y409~P!1,Y317~P!2).Csk(SH2!2) kpCskLyn + +Lyn(SH3!1,SH2,Y508~0).Pag1(PRS2!1,Y317~P!2).Csk(SH2!2) ->\ +Lyn(SH3!1,SH2,Y508~P).Pag1(PRS2!1,Y317~P!2).Csk(SH2!2) kpCskLyn + +Lyn(SH3!1,SH2!3,Y508~0).Pag1(PRS2!1,Y386_Y409~P!3,Y317~P!2).Csk(SH2!2) ->\ +Lyn(SH3!1,SH2!3,Y508~P).Pag1(PRS2!1,Y386_Y409~P!3,Y317~P!2).Csk(SH2!2) kpCskLyn + +# Fyn unique domain binds receptor +Rec(b_Y218~0) + Fyn(U,SH3,SH2) ->\ +Rec(b_Y218~0!1).Fyn(U!1,SH3,SH2) kfRecFyn1 + +# Fyn unique domain dissociates from receptor +Rec(b_Y218~0!1).Fyn(U!1) ->\ +Rec(b_Y218~0) + Fyn(U) krRecFyn1 + +# Fyn SH2 domain binds receptor +Rec(b_Y218~P) + Fyn(U,SH3,SH2) ->\ +Rec(b_Y218~P!1).Fyn(U,SH3,SH2!1) kfRecFyn2 + +# Fyn SH2 domain dissociates from receptor +Rec(b_Y218~P!1).Fyn(SH2!1) ->\ +Rec(b_Y218~P) + Fyn(SH2) krRecFyn2 + +# Fyn SH2 domain binds Fyn pY531, forming an intramolecular bond +Fyn(U,SH3,SH2,Y531~P) -> Fyn(U,SH3,SH2!1,Y531~P!1) kfFynIn + +# Fyn SH2 domain dissociates from pY531 +Fyn(SH2!1,Y531~P!1) ->\ +Fyn(SH2,Y531~P) krFynIn + +# Fyn phosphorylates Y218 in the beta subunit of the receptor +# Fyn bound by its unique domain +Fyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218~0) ->\ +Fyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218~P) kpFynB1 + +# Fyn bound by its SH2 domain +Fyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218~0) -> Fyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218~P) kpFynB2 + +# Fyn phosphorylates Y224 in the beta subunit of the receptor +# Fyn bound by its unique domain +Fyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y224~0) ->\ +Fyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y224~P) kpFynB1 + +# Fyn bound by its SH2 domain +Fyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y224~0) -> Fyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y224~P) kpFynB2 + +# Fyn phosphorylates Y65 and Y76 in the gamma subunit of the receptor +# Fyn bound by its unique domain +Fyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~0) ->\ +Fyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P) kpFynG1 + +# Fyn bound by its SH2 domain +Fyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~0) ->\ +Fyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P) kpFynG2 + +## Fyn phosphorylates Syk +# Fyn bound by its unique domain +Fyn(U!1).Rec(fab!2,b_Y218~0!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y346~0) ->\ +Fyn(U!1).Rec(fab!2,b_Y218~0!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y346~P) kpFynSyk1 + +# Fyn bound by its SH2 domain +Fyn(SH2!1).Rec(fab!2,b_Y218~P!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y346~0) ->\ +Fyn(SH2!1).Rec(fab!2,b_Y218~P!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y346~P) kpFynSyk2 + +## SH3 domain of Fyn binds PRS1 in Pag1 +# Association when Fyn is free +Fyn(U,SH3,SH2) + Pag1(PRS1,Y165_Y183) -> \ +Fyn(U,SH3!1,SH2).Pag1(PRS1!1,Y165_Y183) kfPagFynSH3 + +# Association when Fyn is tethered to Pag1 via an SH2 domain-pY interaction +Fyn(U,SH3,SH2!2).Pag1(PRS1,Y165_Y183~P!2) -> \ +Fyn(U,SH3!1,SH2!2).Pag1(PRS1!1,Y165_Y183~P!2) kfPagFynSH3_2 + +# Dissociation of Fyn SH3 +Fyn(SH3!1,SH2).Pag1(PRS1!1,Y165_Y183) -> \ +Fyn(SH3,SH2) + Pag1(PRS1,Y165_Y183) krPagFynSH3 + +## SH2 domain of Fyn binds a pY in Pag1 +# Association when Fyn is free +Fyn(U,SH3,SH2) + Pag1(PRS1,Y165_Y183~P) -> \ +Fyn(U,SH3,SH2!2).Pag1(PRS1,Y165_Y183~P!2) kfPagFynSH2 + +# Association when Fyn is tethered to Pag1 via SH3 domain-PRS interaction +Fyn(U,SH3!1,SH2).Pag1(PRS1!1,Y165_Y183~P) -> \ +Fyn(U,SH3!1,SH2!2).Pag1(PRS1!1,Y165_Y183~P!2) kfPagFynSH2_2 + +# Dissociation of Fyn from Pag1, breaking two-point attachment +Fyn(SH3!1,SH2!2).Pag1(PRS1!1,Y165_Y183~P!2) -> \ +Fyn(SH3,SH2) + Pag1(PRS1,Y165_Y183~P) krPagFyn2point + +# Fyn phosphorylates Y386 and Y409 in Pag1 +Fyn(SH3,SH2!1,Y531).Pag1(Y386_Y409~0,Y165_Y183~P!1) -> \ +Fyn(SH3,SH2!1,Y531).Pag1(Y386_Y409~P,Y165_Y183~P!1) kpFynPag + +Fyn(SH3!2,SH2!1,Y531).Pag1(PRS1!2,Y386_Y409~0,Y165_Y183~P!1) -> \ +Fyn(SH3!2,SH2!1,Y531).Pag1(PRS1!2,Y386_Y409~P,Y165_Y183~P!1) kpFynPag + +Fyn(SH3!1,SH2,Y531).Pag1(PRS1!1,Y386_Y409~0) -> \ +Fyn(SH3!1,SH2,Y531).Pag1(PRS1!1,Y386_Y409~P) kpFynPag + +# Fyn phosphorylates Y317 in Pag1 +Fyn(SH3,SH2!1,Y531).Pag1(Y317~0,Y165_Y183~P!1) -> \ +Fyn(SH3,SH2!1,Y531).Pag1(Y317~P,Y165_Y183~P!1) kpFynPag + +Fyn(SH3!2,SH2!1,Y531).Pag1(PRS1!2,Y317~0,Y165_Y183~P!1) -> \ +Fyn(SH3!2,SH2!1,Y531).Pag1(PRS1!2,Y317~P,Y165_Y183~P!1) kpFynPag + +Fyn(SH3!1,SH2,Y531).Pag1(PRS1!1,Y317~0) -> \ +Fyn(SH3!1,SH2,Y531).Pag1(PRS1!1,Y317~P) kpFynPag + +# Csk cis phosphorylates Y531 in Fyn +Fyn(SH3,SH2!1,Y531~0).Pag1(Y165_Y183~P!1,Y317~P!2).Csk(SH2!2) ->\ +Fyn(SH3,SH2!1,Y531~P).Pag1(Y165_Y183~P!1,Y317~P!2).Csk(SH2!2) kpCskFyn + +Fyn(SH3!1,SH2,Y531~0).Pag1(PRS1!1,Y317~P!2).Csk(SH2!2) ->\ +Fyn(SH3!1,SH2,Y531~P).Pag1(PRS1!1,Y317~P!2).Csk(SH2!2) kpCskFyn + +Fyn(SH3!1,SH2!3,Y531~0).Pag1(PRS1!1,Y165_Y183~P!3,Y317~P!2).Csk(SH2!2) ->\ +Fyn(SH3!1,SH2!3,Y531~P).Pag1(PRS1!1,Y165_Y183~P!3,Y317~P!2).Csk(SH2!2) kpCskFyn + + +# Syk phosphorylates Lat Y136 +Syk(tSH2!+,PTK) + Lat(Y136~0) -> Syk(tSH2!+,PTK!1).Lat(Y136~0!1) kfSykLat +Syk(PTK!1).Lat(Y136~0!1) -> Syk(PTK) + Lat(Y136~0) krSykLat +Syk(PTK!1,Y519_Y520~P).Lat(Y136~0!1) -> Syk(PTK,Y519_Y520~P) + Lat(Y136~P) kpSykLat2 +Syk(PTK!1,Y519_Y520~0).Lat(Y136~0!1) -> Syk(PTK,Y519_Y520~0) + Lat(Y136~P) kpSykLat1 + + +# Lat pY136 binds Plcg1 +Lat(Y136~P) + Plcg1(SH2) <-> Lat(Y136~P!1).Plcg1(SH2!1) kfLatPlcg,krLatPlcg + +# Syk phosphorylates Lat Y175 +Syk(tSH2!+,PTK) + Lat(Y175~0) -> Syk(tSH2!+,PTK!1).Lat(Y175~0!1) kfSykLat +Syk(PTK!1).Lat(Y175~0!1) -> Syk(PTK) + Lat(Y175~0) krSykLat +Syk(PTK!1,Y519_Y520~P).Lat(Y175~0!1) -> Syk(PTK,Y519_Y520~P) + Lat(Y175~P) kpSykLat2 +Syk(PTK!1,Y519_Y520~0).Lat(Y175~0!1) -> Syk(PTK,Y519_Y520~0) + Lat(Y175~P) kpSykLat1 + +# Lat pY175 binds Grb2 +Lat(Y175~P) + Grb2(SH2) <-> Lat(Y175~P!1).Grb2(SH2!1) kfLatGrb2,krLatGrb2 + +# Lat pY175 binds Grap2 +Lat(Y175~P) + Grap2(SH2) <-> Lat(Y175~P!1).Grap2(SH2!1) kfLatGrap2,krLatGrap2 + +# Grap2 binds Lcp2 +Grap2(SH3) + Lcp2(RxxK) <-> Grap2(SH3!1).Lcp2(RxxK!1) kfGrap2Lcp2,krGrap2Lcp2 + +# Grb2 binds Gab2 +Grb2(cSH3) + Gab2(PRS) <-> Grb2(cSH3!1).Gab2(PRS!1) kfGrb2Gab2,krGrb2Gab2 + +# Lcp2 binds Plcg1 +Lcp2(PRS) + Plcg1(SH3) <-> Lcp2(PRS!1).Plcg1(SH3!1) kfLcp2Plcg1,krLcp2Plcg1 + +# Fyn phosphorylates Gab2 +Fyn(U!+,SH2,PTK) + Lat(Y175~P!1).Grb2(SH2!1,cSH3!2).Gab2(PRS!2,Y441~0) ->\ +Fyn(U!+,SH2,PTK!3).Lat(Y175~P!1).Grb2(SH2!1,cSH3!2).Gab2(PRS!2,Y441~0!3) kfFynGab2 + +Rec(b_Y218~P!4).Fyn(U,SH2!4,PTK) + Lat(Y175~P!1).Grb2(SH2!1,cSH3!2).Gab2(PRS!2,Y441~0) ->\ +Rec(b_Y218~P!4).Fyn(U,SH2!4,PTK!3).Lat(Y175~P!1).Grb2(SH2!1,cSH3!2).Gab2(PRS!2,Y441~0!3) kfFynGab2 + +Fyn(PTK!1).Gab2(Y441~0!1) -> Fyn(PTK) + Gab2(Y441~0) krFynGab2 + +Fyn(PTK!1).Gab2(Y441~0!1) -> Fyn(PTK) + Gab2(Y441~P) kpFynGab2 + +# Gab2 binds PI 3-kinase +Gab2(Y441~P) + Pi3k(p85_SH2) <-> Gab2(Y441~P!1).Pi3k(p85_SH2!1) kfGab2Pi3k,krGab2Pi3k + +# PI 3-kinase generates PIP3 +Lat(Y175~P!1).Grb2(SH2!1,cSH3!2).Gab2(PRS!2,Y441~P!3).Pi3k(p85_SH2!3,PI3Kc) + PI45P2(bind) ->\ +Lat(Y175~P!1).Grb2(SH2!1,cSH3!2).Gab2(PRS!2,Y441~P!3).Pi3k(p85_SH2!3,PI3Kc!4).PI45P2(bind!4) kfPi3kPip2 + +Pi3k(PI3Kc!1).PI45P2(bind!1) -> Pi3k(PI3Kc) + PI45P2(bind) krPi3kPip2 + +Pi3k(PI3Kc!1).PI45P2(bind!1) -> Pi3k(PI3Kc) + PI345P3(bind) + PI45P2(bind) kpPi3k +Pi3k(PI3Kc!1).PI45P2(bind!1) -> Pi3k(PI3Kc) + PI345P3(bind) kpPi3k DeleteMolecules + + +# Btk binds PIP3 +Btk(PH) + PI345P3(bind) <-> Btk(PH!1).PI345P3(bind!1) kfBtkPip3,krBtkPip3 + +# Btk phosphorylates Plcg1 +Btk(PH!+,PTK) + Plcg1(SH2!+,Y783~0) -> Btk(PH!+,PTK!1).Plcg1(SH2!+,Y783~0!1) kfBtkPlcg +Btk(PTK!1).Plcg1(Y783~0!1) -> Btk(PTK) + Plcg1(Y783~0) krBtkPlcg +Btk(PTK!1).Plcg1(Y783~0!1) -> Btk(PTK) + Plcg1(Y783~P) kpBtkPlcg + +# Inpp5d binds phosphorylated Y224 in the beta subunit of the receptor +Inpp5d(SH2,C2) + Rec(b_Y224~P) -> Inpp5d(SH2!1,C2).Rec(b_Y224~P!1) kfShipRec +Inpp5d(IPP,C2!+) + Rec(b_Y224~P) -> Inpp5d(IPP!1,C2!+).Rec(b_Y224~P!1) 100*kfShipRec +Inpp5d(SH2!1).Rec(b_Y224~P!1) -> Inpp5d(SH2) + Rec(b_Y224~P) krShipRec + +Inpp5d(SH2!+,IPP) + PI345P3(bind) <-> Inpp5d(SH2!+,IPP!1).PI345P3(bind!1) kfShipPip3,krShipPip3 +Inpp5d(SH2!+,IPP!1).PI345P3(bind!1) -> Inpp5d(SH2!+,IPP) 0.01*kdpShipPip3 DeleteMolecules + +PI345P3(bind) + Sink() -> Sink() 0.001*kdpShipPip3 DeleteMolecules + +# Other lipid reactions +PI345P3(bind) -> PI45P2(bind) kPten DeleteMolecules +PI4P() -> PI45P2(bind) kfP5 DeleteMolecules +PI45P2(bind) -> PI4P() krP5 DeleteMolecules +# Nonspecific phosphorylation and dephosphorylation + +Rec(b_Y218~0) -> Rec(b_Y218~P) p +Rec(b_Y218~P) -> Rec(b_Y218~0) dp + +Rec(b_Y224~0) -> Rec(b_Y224~P) p +Rec(b_Y224~P) -> Rec(b_Y224~0) dp + +Rec(g_Y65_Y76~0) -> Rec(g_Y65_Y76~P) p +Rec(g_Y65_Y76~P) -> Rec(g_Y65_Y76~0) dp + +Lyn(Y508~0) -> Lyn(Y508~P) p +Lyn(Y508~P) -> Lyn(Y508~0) dp + +Fyn(Y531~0) -> Fyn(Y531~P) p +Fyn(Y531~P) -> Fyn(Y531~0) dp + +Syk(Y346~0) -> Syk(Y346~P) p +Syk(Y346~P) -> Syk(Y346~0) dp + +Syk(Y519_Y520~0) -> Syk(Y519_Y520~P) p +Syk(Y519_Y520~P) -> Syk(Y519_Y520~0) dp + +Pag1(Y317~0) -> Pag1(Y317~P) p +Pag1(Y317~P) -> Pag1(Y317~0) dp + +Pag1(Y165_Y183~0) -> Pag1(Y165_Y183~P) p +Pag1(Y165_Y183~P) -> Pag1(Y165_Y183~0) dp + +Pag1(Y386_Y409~0) -> Pag1(Y386_Y409~P) p +Pag1(Y386_Y409~P) -> Pag1(Y386_Y409~0) dp + +Gab2(Y441~0) -> Gab2(Y441~P) p +Gab2(Y441~P) -> Gab2(Y441~0) dp + +Lat(Y136~0) -> Lat(Y136~P) p +Lat(Y136~P) -> Lat(Y136~0) dp + +Lat(Y175~0) -> Lat(Y175~P) p +Lat(Y175~P) -> Lat(Y175~0) dp + +Plcg1(Y783~0) -> Plcg1(Y783~P) p +Plcg1(Y783~P) -> Plcg1(Y783~0) dp + + +end reaction rules + +begin observables +Molecules Lat_pY136 Lat(Y136~P!?) +Molecules Lat_pY175 Lat(Y175~P!?) +Molecules Rec_pY218 Rec(b_Y218~P!?) +Molecules Rec_pY224 Rec(b_Y224~P!?) +Molecules Rec_pY65_Y76 Rec(g_Y65_Y76~P!?) +Molecules Syk_pY346 Syk(Y346~P!?) +Molecules Gab2_pY441 Gab2(Y441~P!?) +Molecules PI3K_recruited Lat(Y175~P!1).Grb2(SH2!1,cSH3!2).Gab2(PRS!2,Y441~P!3).Pi3k(p85_SH2!3) +Molecules PI345P3 PI345P3(bind!?) + +Molecules Plcg1_pY783 Plcg1(Y783~P!?) +Molecules LynUbound Lyn(U!+) +Molecules LynSH2bound Lyn(SH2!+) +Molecules Shipbound Inpp5d(SH2!+) +Molecules Plc_pip2 Plcg1(PLC!1).PI45P2(bind!1) +Molecules Lat_Plc Lat(Y136~P!1).Plcg1(SH2!1) + + +Molecules IP3 IP3() +Molecules PI34P2 PI34P2(bind!?) +Molecules PI45P2 PI45P2(bind!?) + +Molecules Pag_Y165 Pag1(Y165_Y183~P!?) +Molecules Pag_Y409 Pag1(Y386_Y409~P!?) +Molecules LynIn Lyn(SH2!1,Y508~P!1) +Molecules FynIn Fyn(SH2!1,Y531~P!1) +Molecules Lyn_pY508 Lyn(Y508~P!?) +Molecules Fyn_pY508 Fyn(Y531~P!?) + +Molecules Btk_recruited Btk(PH!+) +# Free ligand +Molecules LigFree Lig(hap,hap) + +# Crosslinked receptor dimer +Molecules Crosslinks Lig(hap~e!1,hap~e!2).Rec(fab!1).Rec(fab!2) + +# Ligand with both haptens buried +Molecules DNP_exposed_0_of_2 Lig(hap~b!?,hap~b!?) + +# Ligand with one hapten exposed +Molecules DNP_exposed_1_of_2 Lig(hap~b!?,hap~e!?) + +# Ligand with both haptens exposed +Molecules DNP_exposed_2_of_2 Lig(hap~e!?,hap~e!?) + +# Total ligand +Molecules LigTotal Lig(hap!?,hap!?) + +Molecules Syk_pY519_520 Syk(Y519_Y520~P) + +end observables + +writeXML(); \ No newline at end of file diff --git a/Published/ChylekFceRI2014/README.md b/Published/ChylekFceRI2014/README.md new file mode 100644 index 00000000..0b541df6 --- /dev/null +++ b/Published/ChylekFceRI2014/README.md @@ -0,0 +1,21 @@ +# Chylek 2014 (FceRI) + +FceRI signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- ChylekFceRI_2014.bngl + +## Tags + +published, immunology, chylekfceri, 2014, lig, rec, lyn, fyn, syk, pag1, csk, lat diff --git a/Published/ChylekFceRI2014/metadata.yaml b/Published/ChylekFceRI2014/metadata.yaml new file mode 100644 index 00000000..de4078e3 --- /dev/null +++ b/Published/ChylekFceRI2014/metadata.yaml @@ -0,0 +1,22 @@ +id: "ChylekFceRI_2014" +name: "Chylek 2014 (FceRI)" +description: "FceRI signaling" +tags: ["published", "immunology", "chylekfceri", "2014", "lig", "rec", "lyn", "fyn", "syk", "pag1", "csk", "lat"] +category: "immunology" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/immune-signaling/ChylekFceRI_2014.bngl" +playground: + visible: false + gallery_category: "immunology" + featured: false + difficulty: "advanced" diff --git a/Published/ChylekTCR2014/ChylekTCR_2014.bngl b/Published/ChylekTCR2014/ChylekTCR_2014.bngl new file mode 100644 index 00000000..1174f558 --- /dev/null +++ b/Published/ChylekTCR2014/ChylekTCR_2014.bngl @@ -0,0 +1,607 @@ +# Supplementary File A in File S1 +# "Phosphorylation site dynamics of early T-cell receptor signaling" +# L.A. Chylek, V. Akimov, J. Dengjel, K.T.G. Rigbolt, B. Hu, W.S. Hlavacek, B. Blagoev +# This file is an encoding of the TCR signaling model in BNGL. For a description of BNGL, see: +# Faeder JR, Blinov ML, Hlavacek WS, Rule-based modeling of biochemical systems with BioNetGen. Methods Mol. Biol. 500, 113-167 (2009). +# This file can be processed by BNGL-compatible tools, such as BioNetGen (http://bionetgen.org/) and NFsim (http://emonet.biology.yale.edu/nfsim/). + +# This file is meant to be used in conjunction with Supplementary File B in File S1, which is a simulation protocol for NFsim in the form of an RNF (Run NFsim) script. + +# This file should be named FileA.bngl (to ensure proper processing by BioNetGen and subsequent processing of the output by NFsim) + +begin parameters + +NA 6.022e23 # Avogadro's number; molecules/mole +celldensity 9.7e10 # Cell density; cells/L +Fx 0.02 # Scaling factor representing the fraction of a cell to consider in simulations + # Use of a subvolume speeds simulation, see Faeder et al. (2009) +ECFvol 1/(celldensity) # Extracellular volume; L/cell +simECFvol ECFvol*Fx # Simulated fraction of extracellular volume +Cellvol 1.0e-12 # Cell volume; L +simCellvol Cellvol*Fx # Simulated fraction of cell volume + +# Units and descriptions of parameters below are given in Supplementary Table S2 (Excel spreadsheet of parameter values) + +kfLckCd28 2.5e7/(NA*simCellvol) +krLckCd28 36 + +kfItkCd28 kfLckCd28 +krItkCd28 0.002 + +act 2 +kpLckLck1 10 +kpLckLck2 act*kpLckLck1 + +kpLckItk1 3 +kpLckItk2 act*kpLckItk1 + +kpLckTcrz1 2 +kpLckTcrz2 2 +kpLckCd3e1 2 +kpLckCd3e2 2 +kpLckCd3g 6 +kpLckCd3d 6 + +kfZapTcr 4.5e7/(NA*simCellvol) +krZapTcr 0.25 + +kfZapCd3e kfZapTcr +krZapCd3e 10*krZapTcr + +kpLckZap 6 + +kfPtpTcr kfZapTcr +krPtpTcr krZapTcr + +kdpLck192 7 +kdpLck394 60 + +kpLckPtp1 100 +kpLckPtp2 act*kpLckPtp1 + +kfLckPtp 3.5e5/(NA*simCellvol) +krLckPtp 0.004 + +kfLckPtp2 3.5e4/(NA*simCellvol) +krLckPtp2 0.04 + +kfPagCsk 2.4e7/(NA*simCellvol) +krPagCsk 10 + +kfPagLck 1.2e7/(NA*simCellvol) +krPagLck 100 + +kpLckPag 1000 + +kpCskLck kpLckPag + +kfPagPtp 8e6/(NA*simCellvol) +cyt 0.1 +kfPagPtp_cyt cyt*kfPagPtp +krPagPtp 100 +kdpPag 66 + +kfDok1Ptp 10.4e6/(NA*simCellvol) +krDok1Ptp krPagPtp + +kdpDok1 kdpLck394 + +kfDok2Ptp kfPagPtp +krDok2Ptp krPagPtp + +kdpDok2 kdpLck394 + +kfTcrFyn 3e5/(NA*simCellvol) +krTcrFyn 1 + +kfWasNck 2.4e5/(NA*simCellvol) +krWasNck 7.4e-2 + +kfTcrNck 1.8e3/(NA*simCellvol) +krTcrNck krWasNck + +kpWas 35 + + +kfZapLat132 7.2e6/(NA*simCellvol) +kfZapLat191 2.16e7/(NA*simCellvol) +krZapLat 30 +kpZapLat2 200 + +kfPlcgLat 1.61e7/(NA*simCellvol) +krPlcgLat 1 + +kfLatGrap 6.6e6/(NA*simCellvol) +krLatGrap krPlcgLat + +kfNckLcp 1.19e6/(NA*simCellvol) +krNckLcp 1 + +kfGrapLcp 9.5e6/(NA*simCellvol) +krGrapLcp 0.06 + +kpZapLcp2 kpZapLat2 + +kfWasFyn kfZapLat191 +krWasFyn krZapLat + +kfPlcgLcp 10*kfGrapLcp +krPlcgLcp 10*krGrapLcp + +kfLcpItk kfNckLcp +krLcpItk 0.1 + +kfZapLcp 1.44e8/(NA*simCellvol) +krZapLcp 3 + +kpPlcg kpLckPag + +kp1 5e-3 +kp2 1e-2 +kp3 5e-2 +kp4 2e-3 + +kdp1 10 +kdp2 1 +kdp3 1e-2 +kdp4 2 +kdp5 3e-2 + +kfl 0 # set in RNF file: 7.45e5[/M/s]/(NA*simECFvol) = 6e-6 +krl 2e-3 +kfl_m 0 # set in RNF file: 7.45e7[/M/s]/(NA*simECFvol) = 6e-4 + +Ligtot 8.0707e+04*Fx + +# Protein copy numbers are given on a per cell basis +Proteintot 200000*Fx +TCRtot 100000*Fx +CD28tot 10000*Fx + +end parameters +begin molecule types + +# Descriptions of molecule types can be found in the Supplementary Text (model guide, File S3) + +Lig1(aCD28,aCD28) +Lig2(aCD28,aCD3) +Lig3(aCD3,aCD3) +TCR(epitope,Y149_D~0~P,Y171_G~0~P,Y111~0~P,Y123~0~P,fynbind,PRS_E,Y188_E~0~P,Y199_E~0~P) +CD28(epitope,PRS1,PRS2) +LCK(SH2,SH3,Y192~0~P,Y424~0~P,Y505~0~P) +ITK(SH3,SH2,PTK,Y512~0~P) +ZAP70(SH2,PTK,Y493~0~P) +PTPN6(SH2,PTP,Y566~0~P) +PAG1(Y163~0~P,Y317~0~P) +CSK(SH2) +DOK1(Y449~0~P) +DOK2(Y299~0~P) +FYN(unique,PTK) +NCK(SH3_1,SH3_3,SH2) +WAS(PRS,Y291~0~P) +LAT(Y132~0~P,Y191~0~P) +PLCG1(SH2,SH3,Y783~0~P) +GRAP2(SH2,SH3) +LCP2(RxxK,Y113_Y128~0~P,PRS,Y145~0~P) + +end molecule types + +begin seed species + +# Seed species are used to initialize a simulation. Following each molecule is parameter that specifies copy number + +Lig1(aCD28,aCD28) Ligtot +Lig2(aCD28,aCD3) Ligtot +Lig3(aCD3,aCD3) Ligtot +CD28(epitope,PRS1,PRS2) CD28tot +TCR(epitope,Y149_D~0,Y171_G~0,Y111~0,Y123~0,fynbind,PRS_E,Y188_E~0,Y199_E~0) TCRtot +LCK(SH2,SH3,Y192~0,Y424~0,Y505~0) Proteintot +ITK(SH3,SH2,PTK,Y512~0) Proteintot +ZAP70(SH2,PTK,Y493~0) Proteintot +PAG1(Y163~0,Y317~0) Proteintot +CSK(SH2) Proteintot +DOK1(Y449~0) Proteintot +DOK2(Y299~0) Proteintot +FYN(unique,PTK) Proteintot +NCK(SH3_1,SH3_3,SH2) Proteintot +WAS(PRS,Y291~0) Proteintot +LAT(Y132~0,Y191~0) Proteintot +PLCG1(SH2,SH3,Y783~0) Proteintot +GRAP2(SH2,SH3) Proteintot + +# To simulate PTPN6 knockdown, the copy number of PTPN6 was set to 0. +PTPN6(SH2,PTP,Y566~0) Proteintot + +# To simulate LCP2 knockdown, the copy number of LCP2 was set to 0. +LCP2(RxxK,Y113_Y128~0,PRS,Y145~0) Proteintot + +end seed species + +begin reaction rules + +# Rules are numbered to correspond to entries in Supplementary Text (model guide), where rules are annotated + +# Rule 1a +Lig1(aCD28,aCD28) + CD28(epitope) <-> Lig1(aCD28!1,aCD28).CD28(epitope!1) kfl,krl + +# Rule 1b +Lig1(aCD28!1,aCD28).CD28(epitope!1) + CD28(epitope) <-> Lig1(aCD28!1,aCD28!2).CD28(epitope!1).CD28(epitope!2) kfl_m,krl + +# Rule 2a +Lig3(aCD3,aCD3) + TCR(epitope) <-> Lig3(aCD3!1,aCD3).TCR(epitope!1) kfl,krl + +# Rule 2b +Lig3(aCD3!1,aCD3).TCR(epitope!1) + TCR(epitope) <-> Lig3(aCD3!1,aCD3!2).TCR(epitope!1).TCR(epitope!2) kfl_m,krl + +# Rule 3a +Lig2(aCD28,aCD3) + CD28(epitope) <-> Lig2(aCD28!1,aCD3).CD28(epitope!1) kfl,krl + +# Rule 3b +Lig2(aCD28!1,aCD3).CD28(epitope!1) + TCR(epitope) <-> Lig2(aCD28!1,aCD3!2).CD28(epitope!1).TCR(epitope!2) kfl_m,krl + +# Rule 3c +Lig2(aCD28,aCD3) + TCR(epitope) <-> Lig2(aCD28,aCD3!1).TCR(epitope!1) kfl,krl + +# Rule 3d +Lig2(aCD28,aCD3!1).TCR(epitope!1) + CD28(epitope) <-> Lig2(aCD28!2,aCD3!1).TCR(epitope!1).CD28(epitope!2) kfl_m,krl + +# Rule 4 +LCK(SH3) + CD28(PRS1) <-> LCK(SH3!1).CD28(PRS1!1) kfLckCd28,krLckCd28 + +# Rule 5 +CD28(PRS2) + ITK(SH3) <-> CD28(PRS2!1).ITK(SH3!1) kfItkCd28, krItkCd28 + +# Rule 6 +TCR(fynbind) + FYN(unique) <-> TCR(fynbind!1).FYN(unique!1) kfTcrFyn,krTcrFyn + +# Rule 7a +NCK(SH3_1) + TCR(Y188_E~0,PRS_E) <-> NCK(SH3_1!1).TCR(Y188_E~0,PRS_E!1) kfWasNck,krWasNck + +# Rule 7b +NCK(SH3_1!1).TCR(Y188_E~P,PRS_E!1) -> NCK(SH3_1) + TCR(Y188_E~P,PRS_E) 1e5*krWasNck + +# Rule 8 +TCR(Y111~P) + ZAP70(SH2) <-> TCR(Y111~P!1).ZAP70(SH2!1) kfZapTcr,krZapTcr + +# Rule 9 +TCR(Y123~P) + ZAP70(SH2) <-> TCR(Y123~P!1).ZAP70(SH2!1) kfZapTcr,krZapTcr + +# Rule 10 +TCR(Y199_E~P) + ZAP70(SH2) <-> TCR(Y199_E~P!1).ZAP70(SH2!1) kfZapCd3e,krZapCd3e + +# Rule 11 +TCR(Y188_E~P) + ZAP70(SH2) <-> TCR(Y188_E~P!1).ZAP70(SH2!1) kfZapCd3e,krZapCd3e + +# Rule 12 +PTPN6(SH2) + TCR(Y149_D~P) <-> PTPN6(SH2!1).TCR(Y149_D~P!1) kfPtpTcr,krPtpTcr + +# Rule 13 +PTPN6(SH2) + TCR(Y171_G~P) <-> PTPN6(SH2!1).TCR(Y171_G~P!1) kfPtpTcr,krPtpTcr + +# Rule 14 +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y188_E~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y188_E~P) kpLckCd3e1 + +# Rule 15 +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y199_E~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y199_E~P) kpLckCd3e2 + +# Rule 16 +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~P) kpLckCd3d + +# Rule 17 +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~P) kpLckCd3g + +# Rule 18 +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y111~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y111~P) kpLckTcrz1 + +# Rule 19 +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y123~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y123~P) kpLckTcrz1 + +# Rule 20a +LCK(SH3!1,Y505~P).CD28(PRS1!1,epitope!2).Lig1(aCD28!2,aCD28!3).CD28(epitope!3,PRS1!4).LCK(SH3!4,Y424~0) ->\ +LCK(SH3!1,Y505~P).CD28(PRS1!1,epitope!2).Lig1(aCD28!2,aCD28!3).CD28(epitope!3,PRS1!4).LCK(SH3!4,Y424~P) kpLckLck1 + +# Rule 20b +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig1(aCD28!2,aCD28!3).CD28(epitope!3,PRS1!4).LCK(SH3!4,Y424~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig1(aCD28!2,aCD28!3).CD28(epitope!3,PRS1!4).LCK(SH3!4,Y424~P) kpLckLck2 + +# Rule 21a +LCK(SH3!1,Y505~P).CD28(PRS1!1,epitope!2).Lig1(aCD28!2,aCD28!3).CD28(epitope!3,PRS2!4).ITK(SH3!4,Y512~0) ->\ +LCK(SH3!1,Y505~P).CD28(PRS1!1,epitope!2).Lig1(aCD28!2,aCD28!3).CD28(epitope!3,PRS2!4).ITK(SH3!4,Y512~P) kpLckItk1 + +# Rule 21b +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig1(aCD28!2,aCD28!3).CD28(epitope!3,PRS2!4).ITK(SH3!4,Y512~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig1(aCD28!2,aCD28!3).CD28(epitope!3,PRS2!4).ITK(SH3!4,Y512~P) kpLckItk2 + +# Rule 22a +TCR(epitope!3,Y111~P!1).ZAP70(Y493~0,SH2!1).Lig2(aCD28!2,aCD3!3).CD28(epitope!2,PRS1!4).LCK(SH3!4,Y505~0) ->\ +TCR(epitope!3,Y111~P!1).ZAP70(Y493~P,SH2!1).Lig2(aCD28!2,aCD3!3).CD28(epitope!2,PRS1!4).LCK(SH3!4,Y505~0) kpLckZap + +# Rule 22b +TCR(epitope!3,Y123~P!1).ZAP70(Y493~0,SH2!1).Lig2(aCD28!2,aCD3!3).CD28(epitope!2,PRS1!4).LCK(SH3!4,Y505~0) ->\ +TCR(epitope!3,Y123~P!1).ZAP70(Y493~P,SH2!1).Lig2(aCD28!2,aCD3!3).CD28(epitope!2,PRS1!4).LCK(SH3!4,Y505~0) kpLckZap + +# Rule 22c +TCR(epitope!3,Y188_E~P!1).ZAP70(Y493~0,SH2!1).Lig2(aCD28!2,aCD3!3).CD28(epitope!2,PRS1!4).LCK(SH3!4,Y505~0) ->\ +TCR(epitope!3,Y188_E~P!1).ZAP70(Y493~P,SH2!1).Lig2(aCD28!2,aCD3!3).CD28(epitope!2,PRS1!4).LCK(SH3!4,Y505~0) kpLckZap + +# Rule 22d +TCR(epitope!3,Y199_E~P!1).ZAP70(Y493~0,SH2!1).Lig2(aCD28!2,aCD3!3).CD28(epitope!2,PRS1!4).LCK(SH3!4,Y505~0) ->\ +TCR(epitope!3,Y199_E~P!1).ZAP70(Y493~P,SH2!1).Lig2(aCD28!2,aCD3!3).CD28(epitope!2,PRS1!4).LCK(SH3!4,Y505~0) kpLckZap + +# Rule 23a +LCK(SH3!1,Y505~P).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~P!4).PTPN6(SH2!4,Y566~0) ->\ +LCK(SH3!1,Y505~P).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~P!4).PTPN6(SH2!4,Y566~P) kpLckPtp1 + +# Rule 23b +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~P!4).PTPN6(SH2!4,Y566~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~P!4).PTPN6(SH2!4,Y566~P) kpLckPtp2 + +# Rule 23c +LCK(SH3!1,Y505~P).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~P!4).PTPN6(SH2!4,Y566~0) ->\ +LCK(SH3!1,Y505~P).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~P!4).PTPN6(SH2!4,Y566~P) kpLckPtp1 + +# Rule 23d +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~P!4).PTPN6(SH2!4,Y566~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~P!4).PTPN6(SH2!4,Y566~P) kpLckPtp2 + +# Rule 24a +LCK(SH2,Y192~0) + PTPN6(Y566~P) <-> LCK(SH2!1,Y192~0).PTPN6(Y566~P!1) kfLckPtp,krLckPtp + +# Rule 24b +LCK(SH2,Y192~P) + PTPN6(Y566~P) <-> LCK(SH2!1,Y192~P).PTPN6(Y566~P!1) kfLckPtp2,krLckPtp2 + +# Rule 25 +PAG1(Y317~P) + CSK(SH2) <-> PAG1(Y317~P!1).CSK(SH2!1) kfPagCsk,krPagCsk + +# Rule 26 +PAG1(Y163~P) + LCK(SH2) <-> PAG1(Y163~P!1).LCK(SH2!1) kfPagLck,krPagLck + +# Rule 27 +PAG1(Y317~0,Y163~P!1).LCK(SH2!1) -> PAG1(Y317~P,Y163~P!1).LCK(SH2!1) kpLckPag + +# Rule 28 +PAG1(Y317~P!2,Y163~P!1).LCK(SH2!1,Y505~0).CSK(SH2!2) -> PAG1(Y317~P!2,Y163~P!1).LCK(SH2!1,Y505~P).CSK(SH2!2) kpCskLck + +# Rule 29a +LCK(SH3!1,Y192~P).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~P!4).PTPN6(SH2!4,Y566~P!?) ->\ +LCK(SH3!1,Y192~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~P!4).PTPN6(SH2!4,Y566~P!?) kdpLck192 + +# Rule 29b +LCK(SH3!1,Y192~P).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~P!4).PTPN6(SH2!4,Y566~P!?) ->\ +LCK(SH3!1,Y192~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~P!4).PTPN6(SH2!4,Y566~P!?) kdpLck192 + +# Rule 30a +LCK(SH3!1,Y424~P).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~P!4).PTPN6(SH2!4,Y566~P!?) ->\ +LCK(SH3!1,Y424~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~P!4).PTPN6(SH2!4,Y566~P!?) kdpLck394 + +# Rule 30b +LCK(SH3!1,Y424~P).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~P!4).PTPN6(SH2!4,Y566~P!?) ->\ +LCK(SH3!1,Y424~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~P!4).PTPN6(SH2!4,Y566~P!?) kdpLck394 + +# Rule 30c +PTPN6(Y566~P!1).LCK(SH2!1,Y424~P) -> PTPN6(Y566~P!1).LCK(SH2!1,Y424~0) kdpLck394 + +# Rule 31a +PAG1(Y163~P) + PTPN6(SH2!2,PTP).TCR(Y149_D~P!2) ->\ +PAG1(Y163~P!1).PTPN6(SH2!2,PTP!1).TCR(Y149_D~P!2) kfPagPtp + +# Rule 31b +PAG1(Y163~P) + PTPN6(SH2!2,PTP).TCR(Y171_G~P!2) ->\ +PAG1(Y163~P!1).PTPN6(SH2!2,PTP!1).TCR(Y171_G~P!2) kfPagPtp + +# Rule 31c +PTPN6(PTP,SH2) + PAG1(Y163~P) -> PTPN6(PTP!1,SH2).PAG1(Y163~P!1) kfPagPtp_cyt + +# Rule 31d +PAG1(Y163~P!1).PTPN6(PTP!1) -> PAG1(Y163~P) + PTPN6(PTP) krPagPtp + +# Rule 31e +PAG1(Y163~P!1).PTPN6(PTP!1,Y566~P!?) -> PAG1(Y163~0) + PTPN6(PTP,Y566~P!?) kdpPag + +# Rule 32a +DOK1(Y449~P) + PTPN6(SH2!2,PTP).TCR(Y149_D~P!2) -> DOK1(Y449~P!1).PTPN6(SH2!2,PTP!1).TCR(Y149_D~P!2) kfDok1Ptp + +# Rule 32b +DOK1(Y449~P) + PTPN6(SH2!2,PTP).TCR(Y171_G~P!2) -> DOK1(Y449~P!1).PTPN6(SH2!2,PTP!1).TCR(Y171_G~P!2) kfDok1Ptp + +# Rule 32c +DOK1(Y449~P!1).PTPN6(PTP!1) -> DOK1(Y449~P) + PTPN6(PTP) krDok1Ptp + +# Rule 32d +DOK1(Y449~P!1).PTPN6(PTP!1,Y566~P!?) -> DOK1(Y449~0) + PTPN6(PTP,Y566~P!?) kdpDok1 + +# Rule 33a +DOK2(Y299~P) + PTPN6(SH2!2,PTP).TCR(Y149_D~P!2) -> DOK2(Y299~P!1).PTPN6(SH2!2,PTP!1).TCR(Y149_D~P!2) kfDok2Ptp + +# Rule 33b +DOK2(Y299~P) + PTPN6(SH2!2,PTP).TCR(Y171_G~P!2) -> DOK2(Y299~P!1).PTPN6(SH2!2,PTP!1).TCR(Y171_G~P!2) kfDok2Ptp + +# Rule 33c +DOK2(Y299~P!1).PTPN6(PTP!1) -> DOK2(Y299~P) + PTPN6(PTP) krDok2Ptp + +# Rule 33d +DOK2(Y299~P!1).PTPN6(PTP!1,Y566~P!?) -> DOK2(Y299~0) + PTPN6(PTP,Y566~P!?) kdpDok2 + +# Rule 34 +WAS(PRS) + NCK(SH3_3) <-> WAS(PRS!1).NCK(SH3_3!1) kfWasNck,krWasNck + +# Rule 35a +TCR(epitope!3,fynbind!1).FYN(unique!1).Lig3(aCD3!2,aCD3!3).TCR(epitope!2,PRS_E!4).NCK(SH3_1!4,SH3_3!5).WAS(Y291~0,PRS!5) ->\ +TCR(epitope!3,fynbind!1).FYN(unique!1).Lig3(aCD3!2,aCD3!3).TCR(epitope!2,PRS_E!4).NCK(SH3_1!4,SH3_3!5).WAS(Y291~P,PRS!5) kpWas + +# Rule 35b +LAT(Y191~P!1).GRAP2(SH2!1,SH3!2).LCP2(RxxK!2,Y113_Y128~P!3).NCK(SH2!3,SH3_3!4).WAS(PRS!4,Y291~0) + FYN(unique!+,PTK) ->\ +LAT(Y191~P!1).GRAP2(SH2!1,SH3!2).LCP2(RxxK!2,Y113_Y128~P!3).NCK(SH2!3,SH3_3!4).WAS(PRS!4,Y291~0!5).FYN(unique!+,PTK!5) kfWasFyn + +# Rule 35c +WAS(Y291~0!5).FYN(PTK!5) -> WAS(Y291~P) + FYN(PTK) kpWas + +# Rule 35d +WAS(Y291~0!1).FYN(PTK!1) -> WAS(Y291~0) + FYN(PTK) krWasFyn + +# Rule 36a +ZAP70(SH2!+,PTK) + LAT(Y132~0) -> ZAP70(SH2!+,PTK!1).LAT(Y132~0!1) kfZapLat132 + +# Rule 36b +ZAP70(PTK!1).LAT(Y132~0!1) -> ZAP70(PTK) + LAT(Y132~0) krZapLat + +# Rule 36c +ZAP70(PTK!1,Y493~P).LAT(Y132~0!1) -> ZAP70(PTK,Y493~P) + LAT(Y132~P) kpZapLat2 + +# Rule 37a +ZAP70(SH2!+,PTK) + LAT(Y191~0) -> ZAP70(SH2!+,PTK!1).LAT(Y191~0!1) kfZapLat191 + +# Rule 37b +ZAP70(PTK!1).LAT(Y191~0!1) -> ZAP70(PTK) + LAT(Y191~0) krZapLat + +# Rule 37c +ZAP70(PTK!1,Y493~P).LAT(Y191~0!1) -> ZAP70(PTK,Y493~P) + LAT(Y191~P) kpZapLat2 + +# Rule 38 +PLCG1(SH2) + LAT(Y132~P) <-> PLCG1(SH2!1).LAT(Y132~P!1) kfPlcgLat,krPlcgLat + +# Rule 39 +LAT(Y191~P) + GRAP2(SH2) <-> LAT(Y191~P!1).GRAP2(SH2!1) kfLatGrap,krLatGrap + +# Rule 40 +GRAP2(SH3) + LCP2(RxxK) <-> GRAP2(SH3!1).LCP2(RxxK!1) kfGrapLcp, krGrapLcp + +# Rule 41 +NCK(SH2) + LCP2(Y113_Y128~P) <-> NCK(SH2!1).LCP2(Y113_Y128~P!1) kfNckLcp,krNckLcp + +# Rule 42a +LAT(Y191~P!1).GRAP2(SH2!1,SH3!2).LCP2(RxxK!2,Y113_Y128~0) + ZAP70(SH2!+,PTK) ->\ +LAT(Y191~P!1).GRAP2(SH2!1,SH3!2).LCP2(RxxK!2,Y113_Y128~0!3).ZAP70(SH2!+,PTK!3) kfZapLcp + +# Rule 42b +ZAP70(PTK!1).LCP2(Y113_Y128~0!1) -> ZAP70(PTK) + LCP2(Y113_Y128~0) krZapLcp + +# Rule 42c +LCP2(Y113_Y128~0!3).ZAP70(PTK!3,Y493~P) -> LCP2(Y113_Y128~P) + ZAP70(PTK,Y493~P) kpZapLcp2 + +# Rule 43 +PLCG1(SH3) + LCP2(PRS) <-> PLCG1(SH3!1).LCP2(PRS!1) kfPlcgLcp,krPlcgLcp + +# Rule 44 +LCP2(Y145~P) + ITK(SH2) <-> LCP2(Y145~P!1).ITK(SH2!1) kfLcpItk,krLcpItk + +# Rule 45a +LAT(Y191~P!1).GRAP2(SH2!1,SH3!2).LCP2(RxxK!2,Y145~0) + ZAP70(SH2!+,PTK) ->\ +LAT(Y191~P!1).GRAP2(SH2!1,SH3!2).LCP2(RxxK!2,Y145~0!3).ZAP70(SH2!+,PTK!3) kfZapLcp + +# Rule 45b +ZAP70(PTK!1).LCP2(Y145~0!1) -> ZAP70(PTK) + LCP2(Y145~0) krZapLcp + +# Rule 45c +LCP2(Y145~0!3).ZAP70(PTK!3,Y493~P) -> LCP2(Y145~P) + ZAP70(PTK,Y493~P) kpZapLcp2 + +# Rule 46 +PLCG1(SH3!1,SH2!+,Y783~0).LCP2(PRS!1,Y145~P!2).ITK(SH2!2) -> PLCG1(SH3!1,SH2!+,Y783~P).LCP2(PRS!1,Y145~P!2).ITK(SH2!2) kpPlcg + +# The following rules account for phosphorylation and dephosphorylation in the basal state, and are not discussed in the model guide + +TCR(Y149_D~0) -> TCR(Y149_D~P) kp1 +TCR(Y149_D~P) -> TCR(Y149_D~0) kdp1 + +TCR(Y171_G~0) -> TCR(Y171_G~P) kp1 +TCR(Y171_G~P) -> TCR(Y171_G~0) kdp1 + +TCR(Y111~0) -> TCR(Y111~P) kp1 +TCR(Y111~P) -> TCR(Y111~0) kdp4 + +TCR(Y123~0) -> TCR(Y123~P) kp1 +TCR(Y123~P) -> TCR(Y123~0) kdp4 + +TCR(Y199_E~0) -> TCR(Y199_E~P) kp1 +TCR(Y199_E~P) -> TCR(Y199_E~0) kdp1 + +TCR(Y188_E~0) -> TCR(Y188_E~P) kp1 +TCR(Y188_E~P) -> TCR(Y188_E~0) kdp1 + +LCK(Y192~0) -> LCK(Y192~P) kp2 +LCK(Y192~P) -> LCK(Y192~0) kdp3 + +LCK(Y424~0) -> LCK(Y424~P) kp2 +LCK(Y424~P) -> LCK(Y424~0) kdp2 + +LCK(Y505~0) -> LCK(Y505~P) kp2 +LCK(Y505~P) -> LCK(Y505~0) kdp5 + +PTPN6(Y566~0) -> PTPN6(Y566~P) kp2 +PTPN6(Y566~P) -> PTPN6(Y566~0) kdp4 + +ZAP70(Y493~0) -> ZAP70(Y493~P) kp1 +ZAP70(Y493~P) -> ZAP70(Y493~0) kdp2 + +LAT(Y132~0) -> LAT(Y132~P) kp2 +LAT(Y132~P) -> LAT(Y132~0) kdp2 + +LAT(Y191~0) -> LAT(Y191~P) kp2 +LAT(Y191~P) -> LAT(Y191~0) kdp2 + +ITK(Y512~0) -> ITK(Y512~P) kp2 +ITK(Y512~P) -> ITK(Y512~0) kdp2 + +PLCG1(Y783~0) -> PLCG1(Y783~P) kp1 +PLCG1(Y783~P) -> PLCG1(Y783~0) kdp1 + +LCP2(Y113_Y128~0) -> LCP2(Y113_Y128~P) kp2 +LCP2(Y113_Y128~P) -> LCP2(Y113_Y128~0) kdp2 + +LCP2(Y145~0) -> LCP2(Y145~P) kp2 +LCP2(Y145~P) -> LCP2(Y145~0) kdp2 + +PAG1(Y163~0) -> PAG1(Y163~P) kp4 +PAG1(Y163~P) -> PAG1(Y163~0) kdp3 + +PAG1(Y317~0) -> PAG1(Y317~P) kp4 +PAG1(Y317~P) -> PAG1(Y317~0) kdp4 + +DOK1(Y449~0) -> DOK1(Y449~P) kp4 +DOK1(Y449~P) -> DOK1(Y449~0) kdp3 + +DOK2(Y299~0) -> DOK2(Y299~P) kp4 +DOK2(Y299~P) -> DOK2(Y299~0) kdp3 + +WAS(Y291~0) -> WAS(Y291~P) kp2 +WAS(Y291~P) -> WAS(Y291~0) kdp2 + +end reaction rules + +begin observables + +# Beside each observable is noted the figure(s) in which the observable is plotted. + +Molecules TCR_pY149_D TCR(Y149_D~P!?) # Fig. 2 and Fig. S6 +Molecules TCR_pY171_G TCR(Y171_G~P!?) # Fig. 2 and Fig. S6 +Molecules TCR_pY111 TCR(Y111~P!?) # Fig. 2 and Fig. S6 +Molecules TCR_pY123 TCR(Y123~P!?) # Fig. 2 and Fig. S6 +Molecules TCR_pY188_E TCR(Y188_E~P!?) # Fig. 2 and Fig. S6 +Molecules TCR_pY199_E TCR(Y199_E~P!?) # Fig. 2 and Fig. S6 +Molecules ZAP70_pY493 ZAP70(Y493~P!?) # Figs. 2, 3 and Fig. S6 +Molecules LCK_pY424 LCK(Y424~P!?) # Fig. 2 and Fig. S6 +Molecules LCK_pY192 LCK(Y192~P!?) # Fig. 2, 3 and Fig. S6 +Molecules ITK_pY512 ITK(Y512~P!?) # Fig. 2 and Fig. S6 +Molecules PTPN6_pY566 PTPN6(Y566~P!?) # Fig. 2, 3 and Fig. S6 +Molecules WAS_pY291 WAS(Y291~P!?) # Fig. 2, 4 and Fig. S6 +Molecules PAG1_pY163 PAG1(Y163~P!?) # Fig. 2 and Fig. S6 +Molecules DOK2_pY299 DOK2(Y299~P!?) # Fig. 2 and Fig. S6 +Molecules DOK1_pY449 DOK1(Y449~P!?) # Fig. 2 and Fig. S6 +Molecules PLCG1_pY783 PLCG1(Y783~P!?) # Fig. 2, 4 and Fig. S6 +Molecules LAT_pY191 LAT(Y191~P!?) # Fig. 3 +Molecules LCK_pY505 LCK(Y505~P!?) # Fig. 3 +Molecules NCK_TCR TCR(PRS_E!1).NCK(SH3_1!1) # Fig. S7 +Molecules NCK_LCP2 LCP2(Y113_Y128~P!3).NCK(SH2!3) # Fig. S7 + + +end observables + +# The following command generates an XML file that is further processed using the .rnf file, in which simulation protocols are given. + +writeXML(); \ No newline at end of file diff --git a/Published/ChylekTCR2014/README.md b/Published/ChylekTCR2014/README.md new file mode 100644 index 00000000..e112b37d --- /dev/null +++ b/Published/ChylekTCR2014/README.md @@ -0,0 +1,21 @@ +# Chylek 2014 (TCR) + +TCR signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- ChylekTCR_2014.bngl + +## Tags + +published, immunology, chylektcr, 2014, lig1, lig2, lig3, tcr, cd28, lck, itk, zap70 diff --git a/Published/ChylekTCR2014/metadata.yaml b/Published/ChylekTCR2014/metadata.yaml new file mode 100644 index 00000000..9de38d06 --- /dev/null +++ b/Published/ChylekTCR2014/metadata.yaml @@ -0,0 +1,22 @@ +id: "ChylekTCR_2014" +name: "Chylek 2014 (TCR)" +description: "TCR signaling" +tags: ["published", "immunology", "chylektcr", "2014", "lig1", "lig2", "lig3", "tcr", "cd28", "lck", "itk", "zap70"] +category: "immunology" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/immune-signaling/ChylekTCR_2014.bngl" +playground: + visible: false + gallery_category: "immunology" + featured: false + difficulty: "advanced" diff --git a/Published/Dolan2015/Dolan_2015.bngl b/Published/Dolan2015/Dolan_2015.bngl new file mode 100644 index 00000000..ba40671b --- /dev/null +++ b/Published/Dolan2015/Dolan_2015.bngl @@ -0,0 +1,3020 @@ +# combined model, p53 (Carole) and NHEJ + +# parameters +begin parameters + +kp53mRNAsyn 0.06 # Rate of p53 mRNA Synthesis +kp53mRNAdeg 0.006 # Rate of p53 mRNA Degradation +kp53syn 0.36 # Rate of p53 Synthesis +kp53deg 4.95e-5 # Rate of p53 Degradation +kp53degMDM2dep 0.0495 # Rate of p53 Degradation-MDM2 Dependant +kp53phos 0.36 # Rate of p53 Phosphorylation +kp53dphos 30 # Rate of p53 Dephosphorylation +kMDM2mRNAsyn 0.006 # Rate of MDM2 mRNA Synthesis +kMDM2mRNAdeg 0.006 # Rate of MDM2 mRNA Degradation +kMDM2syn 0.0297 # Rate of MDM2 Synthesis +kMDM2deg 0.02598 # Rate of MDM2 Degradation +kMDM2pdeg 0.024 # Rate of Phosphorylated MDM2 Degradation +kMDM2phos 120 # Rate of MDM2 Phosphorylation +kMDM2dphos 30 # Rate of p53 Dephosphorylation +kp53MDM2bind 0.0693 # Rate of p53 MDM2 Binding +kp53MDM2dis 0.0000693 # Rate of p53 MDM2 Dissociation +kp21mRNAsyn 0.0000036 # Rate of p21 mRNA Synthesis (p53) +kp21mRNAsynp 0.00036 # Rate of p21 mRNA Synthesis (Phosphorylated p53) +kp21mRNAdeg 0.00144 # Rate of p21 mRNA Degradation +kp21synstep1 0.024 # Rate of p21 Synthesis Step 1 +kp21synstep2 0.0024 # Rate of p21 Synthesis Step 2 +kp21synstep3 0.0024 # Rate of p21 Synthesis Step 3 +kp21deg 0.0114 # Rate of p21 Degradation +kGADD45act 0.00024 # Rate of GADD45 Activation/Production +kGADD45deg 0.0006 # Rate of GADD45 Degradation +kp38phos 0.48 # Rate of p38 Phosphorylation +kp38dphos 6 # Rate of p38 Dephosphorylation +kROSgen 1.5 # Rate of ROS Generation by p38 + +kIR 80 + +kROS 50 # Constant rate of ROS production +kdROS 5 # ROS degradation rate +kdam1 0.000006 # Rate of simple damage production by ROS +kdam2 0.000006 # Rate of complex damage production by ROS +kdku1 0.5 # Rate of Ku dissociation from a simple break +kdku2 0.5 # Rate of Ku dissociation from a complex break +kdku3 5 # Rate of oxidised Ku dissociation from a simple break +kdku4 5 # Rate of oxidised Ku dissociation from a complex break +kdnapk1 0.033 # Rate of DNAPK simple break complex formation +kdnapk2 0.0017 # Rate of DNAPK complex break complex formation +kddnapk1 0.02 # Rate of DNAPK simple break complex dissociation +kddnapk2 0.02 # Rate of DNAPK complex break complex dissociation +kdnapkphos1 0.28 # Rate pd DNAPK phosphorylation in a DNAPK complex of a simple break +kdnapkphos2 0.28 # Rate pd DNAPK phosphorylation in a DNAPK complex of a complex break +kliIV1 0.00071 # Rate of LigaseIV binding to a simple break complex +kliIV2 0.00046 # Rate of LigaseIV binding to a complex break complex +kdliIV1 0.0001 # Rate of LigaseIV dissociation from a simple break complex +kdliIV2 0.0001 # Rate of LigaseIV dissociation from a complex break complex +kfixIV1 0.0285 # Rate of DNA repair by LigaseIV of a simple break +kfixIV2 0.0285 # Rate of DNA repair by LigaseIV of a complex break +kPARP1 0.000077 # Rate of PARP binding to simple break +kPARP2 0.000065 # Rate of PARP binding to complex break +kdPARP1 0.02 # Rate of PARP dissociation from a simple break +kdPARP2 0.02 # Rate of PARP dissociation from a complex break +kliIII1 0.0015 # Rate of LigaseIII binding to a simple break +kliIII2 0.00024 # Rate of LigaseIII binding to a complex break +kdliIII1 0.0001 # Rate of LigaseIII dissociation from a simple break +kdliIII2 0.0001 # Rate of LigaseIII dissociation from a complex break +kfixIII1 0.0006 # Rate of DNA accurate repair by LigaseIII for a simple break +kfixIII2 0.0006 # Rate of DNA accurate repair by LigaseIII for a complex break +kfixIII3 0.0009 # Rate of DNA inaccurate repair by LigaseIII for a simple break +kfixIII4 0.0009 # Rate of dna inaccurate repair by LigaseIII for a complex break +kATMact 0.0012 # Rate of ATM Activation +kATMinact 0.03 # Rate of ATM Inactivation +kh2axp1 0.1 # Phosphorylation of h2ax via ATM +kh2axp2 0.5 # Phosphorylation of h2ax via DNA-PKcs +kh2axu 0.01 # Dephosphorylation of h2ax +kh2axfoc 0.5 # Creation of damage foci +kfocback 0.03 # Resolution of damage foci +kh2axfull 0.1 # Creation of complete damage foci +kfocfin 0.03 # Resolution of complete damage foci + +kox 0.000025 # Rate of oxidisation of Ku +kred 0.002 # Rate of reduction of Ku +ksen 100 # Activation of senescent state + +end parameters + + +# molecules +begin molecule types + +Time() +T() +P() +E() +IR() +D() +p53_mRNA() +p53(Site1~u~p) +MDM2(Site1~u~p) +MDM2_mRNA() +p21_mRNA() +p21(step~1~2~3) +p38(Site1~u~p) +GADD45() +Sink() + +ATM(state~0~1~2~3~4~5~6~7~8~9~10~11~12~13~14~15~16~17~18~19~20~21~22~23~24~25~26~27~28~29~30~31~32~33~34~35~36~37~38~39~40~41~42~43~44~45~46~47~48~49~50,h2ax) + +DNA1(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA2(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA3(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA4(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA5(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA6(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA7(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA8(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA9(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA10(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA11(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA12(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA13(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA14(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA15(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA16(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA17(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA18(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA19(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA20(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA21(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA22(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA23(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA24(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA25(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA26(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA27(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA28(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA29(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA30(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA31(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA32(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA33(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA34(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA35(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA36(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA37(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA38(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA39(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA40(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA41(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA42(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA43(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA44(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA45(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA46(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA47(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA48(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA49(site~ok~sdsb~cdsb,h2ax~u~p~foc) +DNA50(site~ok~sdsb~cdsb,h2ax~u~p~foc) +ROS() +Ku(dna,cs,cys~red~ox) +DNAPKcs(ku,liIV,psite~u~p) +LiIII(PARP) +LiIV(cs) +PARP(dna,liIII) +I() + +Sen(int~1~10~PLUS~MINUS,State~normal~sen) + +end molecule types + +# species +begin species + +Time() 0 +P() 1 +T() 1 +E() 1 +IR() 0 +D() 10 +p53_mRNA() 10 +p53(Site1~u) 5 +MDM2_mRNA() 10 +MDM2(Site1~u) 5 +p53(Site1!1~u).MDM2(Site1!1~u) 95 +p21_mRNA() 1 +p21(step~1) 0 +p38(Site1~u) 100 +$Sink() 0 + +ATM(state~0,h2ax) 200 + +DNA1(site~ok,h2ax~u) 1 +DNA2(site~ok,h2ax~u) 1 +DNA3(site~ok,h2ax~u) 1 +DNA4(site~ok,h2ax~u) 1 +DNA5(site~ok,h2ax~u) 1 +DNA6(site~ok,h2ax~u) 1 +DNA7(site~ok,h2ax~u) 1 +DNA8(site~ok,h2ax~u) 1 +DNA9(site~ok,h2ax~u) 1 +DNA10(site~ok,h2ax~u) 1 +DNA11(site~ok,h2ax~u) 1 +DNA12(site~ok,h2ax~u) 1 +DNA13(site~ok,h2ax~u) 1 +DNA14(site~ok,h2ax~u) 1 +DNA15(site~ok,h2ax~u) 1 +DNA16(site~ok,h2ax~u) 1 +DNA17(site~ok,h2ax~u) 1 +DNA18(site~ok,h2ax~u) 1 +DNA19(site~ok,h2ax~u) 1 +DNA20(site~ok,h2ax~u) 1 +DNA21(site~ok,h2ax~u) 1 +DNA22(site~ok,h2ax~u) 1 +DNA23(site~ok,h2ax~u) 1 +DNA24(site~ok,h2ax~u) 1 +DNA25(site~ok,h2ax~u) 1 +DNA26(site~ok,h2ax~u) 1 +DNA27(site~ok,h2ax~u) 1 +DNA28(site~ok,h2ax~u) 1 +DNA29(site~ok,h2ax~u) 1 +DNA30(site~ok,h2ax~u) 1 +DNA31(site~ok,h2ax~u) 1 +DNA32(site~ok,h2ax~u) 1 +DNA33(site~ok,h2ax~u) 1 +DNA34(site~ok,h2ax~u) 1 +DNA35(site~ok,h2ax~u) 1 +DNA36(site~ok,h2ax~u) 1 +DNA37(site~ok,h2ax~u) 1 +DNA38(site~ok,h2ax~u) 1 +DNA39(site~ok,h2ax~u) 1 +DNA40(site~ok,h2ax~u) 1 +DNA41(site~ok,h2ax~u) 1 +DNA42(site~ok,h2ax~u) 1 +DNA43(site~ok,h2ax~u) 1 +DNA44(site~ok,h2ax~u) 1 +DNA45(site~ok,h2ax~u) 1 +DNA46(site~ok,h2ax~u) 1 +DNA47(site~ok,h2ax~u) 1 +DNA48(site~ok,h2ax~u) 1 +DNA49(site~ok,h2ax~u) 1 +DNA50(site~ok,h2ax~u) 1 +ROS() 0 +Ku(dna,cs,cys~red) 450 +Ku(dna,cs,cys~ox) 50 +DNAPKcs(ku,liIV,psite~u) 250 +LiIII(PARP) 300 +LiIV(cs) 300 +PARP(dna,liIII) 500 +I() 1 + +Sen(int~1,State~normal) 1 + + +end species + +# observables +begin observables + +Molecules Time Time() +Molecules p53 p53() +Molecules p53_Bound p53(Site1!1~u).MDM2(Site1!1~u) +Molecules p53_Phos p53(Site1~p) +Molecules p53_Unphos p53(Site1~u) +Molecules p21 p21(step~3) +Molecules p38p p38(Site1~p) +Molecules p38u p38(Site1~u) +Molecules ROS ROS() +Molecules p53_mRNA p53_mRNA() +Molecules MDM2_Phos MDM2(Site1~p) +Molecules MDM2_Unphos MDM2(Site1~u) +Molecules MDM2_mRNA MDM2_mRNA() +Molecules p21_mRNA p21_mRNA() +Molecules GADD45 GADD45() + + +Molecules ATM0 ATM(state~0) +Molecules ATM1 ATM(state~1) +Molecules ATM2 ATM(state~2) +Molecules ATM3 ATM(state~3) +Molecules ATM4 ATM(state~4) +Molecules ATM5 ATM(state~5) +Molecules ATM6 ATM(state~6) +Molecules ATM7 ATM(state~7) +Molecules ATM8 ATM(state~8) +Molecules ATM9 ATM(state~9) +Molecules ATM10 ATM(state~10) +Molecules ATM11 ATM(state~11) +Molecules ATM12 ATM(state~12) +Molecules ATM13 ATM(state~13) +Molecules ATM14 ATM(state~14) +Molecules ATM15 ATM(state~15) +Molecules ATM16 ATM(state~16) +Molecules ATM17 ATM(state~17) +Molecules ATM18 ATM(state~18) +Molecules ATM19 ATM(state~19) +Molecules ATM20 ATM(state~20) +Molecules ATM21 ATM(state~21) +Molecules ATM22 ATM(state~22) +Molecules ATM23 ATM(state~23) +Molecules ATM24 ATM(state~24) +Molecules ATM25 ATM(state~25) +Molecules ATM26 ATM(state~26) +Molecules ATM27 ATM(state~27) +Molecules ATM28 ATM(state~28) +Molecules ATM29 ATM(state~29) +Molecules ATM30 ATM(state~30) +Molecules ATM31 ATM(state~31) +Molecules ATM32 ATM(state~32) +Molecules ATM33 ATM(state~33) +Molecules ATM34 ATM(state~34) +Molecules ATM35 ATM(state~35) +Molecules ATM36 ATM(state~36) +Molecules ATM37 ATM(state~37) +Molecules ATM38 ATM(state~38) +Molecules ATM39 ATM(state~39) +Molecules ATM40 ATM(state~40) +Molecules ATM41 ATM(state~41) +Molecules ATM42 ATM(state~42) +Molecules ATM43 ATM(state~43) +Molecules ATM44 ATM(state~44) +Molecules ATM45 ATM(state~45) +Molecules ATM46 ATM(state~46) +Molecules ATM47 ATM(state~47) +Molecules ATM48 ATM(state~48) +Molecules ATM49 ATM(state~49) +Molecules ATM50 ATM(state~50) + + +Molecules Damage_Foci_1 DNA1(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_1 DNA1(h2ax!1~foc).ATM(state~1,h2ax!1) +Molecules Damage_Foci_2 DNA2(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_2 DNA2(h2ax!1~foc).ATM(state~2,h2ax!1) +Molecules Damage_Foci_3 DNA3(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_3 DNA3(h2ax!1~foc).ATM(state~3,h2ax!1) +Molecules Damage_Foci_4 DNA4(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_4 DNA4(h2ax!1~foc).ATM(state~4,h2ax!1) +Molecules Damage_Foci_5 DNA5(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_5 DNA5(h2ax!1~foc).ATM(state~5,h2ax!1) +Molecules Damage_Foci_6 DNA6(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_6 DNA6(h2ax!1~foc).ATM(state~6,h2ax!1) +Molecules Damage_Foci_7 DNA7(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_7 DNA7(h2ax!1~foc).ATM(state~7,h2ax!1) +Molecules Damage_Foci_8 DNA8(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_8 DNA8(h2ax!1~foc).ATM(state~8,h2ax!1) +Molecules Damage_Foci_9 DNA9(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_9 DNA9(h2ax!1~foc).ATM(state~9,h2ax!1) +Molecules Damage_Foci_10 DNA10(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_10 DNA10(h2ax!1~foc).ATM(state~10,h2ax!1) +Molecules Damage_Foci_11 DNA11(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_11 DNA11(h2ax!1~foc).ATM(state~11,h2ax!1) +Molecules Damage_Foci_12 DNA12(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_12 DNA12(h2ax!1~foc).ATM(state~12,h2ax!1) +Molecules Damage_Foci_13 DNA13(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_13 DNA13(h2ax!1~foc).ATM(state~13,h2ax!1) +Molecules Damage_Foci_14 DNA14(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_14 DNA14(h2ax!1~foc).ATM(state~14,h2ax!1) +Molecules Damage_Foci_15 DNA15(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_15 DNA15(h2ax!1~foc).ATM(state~15,h2ax!1) +Molecules Damage_Foci_16 DNA16(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_16 DNA16(h2ax!1~foc).ATM(state~16,h2ax!1) +Molecules Damage_Foci_17 DNA17(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_17 DNA17(h2ax!1~foc).ATM(state~17,h2ax!1) +Molecules Damage_Foci_18 DNA18(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_18 DNA18(h2ax!1~foc).ATM(state~18,h2ax!1) +Molecules Damage_Foci_19 DNA19(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_19 DNA19(h2ax!1~foc).ATM(state~19,h2ax!1) +Molecules Damage_Foci_20 DNA20(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_20 DNA20(h2ax!1~foc).ATM(state~20,h2ax!1) +Molecules Damage_Foci_21 DNA21(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_21 DNA21(h2ax!1~foc).ATM(state~21,h2ax!1) +Molecules Damage_Foci_22 DNA22(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_22 DNA22(h2ax!1~foc).ATM(state~22,h2ax!1) +Molecules Damage_Foci_23 DNA23(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_23 DNA23(h2ax!1~foc).ATM(state~23,h2ax!1) +Molecules Damage_Foci_24 DNA24(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_24 DNA24(h2ax!1~foc).ATM(state~24,h2ax!1) +Molecules Damage_Foci_25 DNA25(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_25 DNA25(h2ax!1~foc).ATM(state~25,h2ax!1) +Molecules Damage_Foci_26 DNA26(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_26 DNA26(h2ax!1~foc).ATM(state~26,h2ax!1) +Molecules Damage_Foci_27 DNA27(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_27 DNA27(h2ax!1~foc).ATM(state~27,h2ax!1) +Molecules Damage_Foci_28 DNA28(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_28 DNA28(h2ax!1~foc).ATM(state~28,h2ax!1) +Molecules Damage_Foci_29 DNA29(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_29 DNA29(h2ax!1~foc).ATM(state~29,h2ax!1) +Molecules Damage_Foci_30 DNA30(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_30 DNA30(h2ax!1~foc).ATM(state~30,h2ax!1) +Molecules Damage_Foci_31 DNA31(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_31 DNA31(h2ax!1~foc).ATM(state~31,h2ax!1) +Molecules Damage_Foci_32 DNA32(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_32 DNA32(h2ax!1~foc).ATM(state~32,h2ax!1) +Molecules Damage_Foci_33 DNA33(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_33 DNA33(h2ax!1~foc).ATM(state~33,h2ax!1) +Molecules Damage_Foci_34 DNA34(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_34 DNA34(h2ax!1~foc).ATM(state~34,h2ax!1) +Molecules Damage_Foci_35 DNA35(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_35 DNA35(h2ax!1~foc).ATM(state~35,h2ax!1) +Molecules Damage_Foci_36 DNA36(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_36 DNA36(h2ax!1~foc).ATM(state~36,h2ax!1) +Molecules Damage_Foci_37 DNA37(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_37 DNA37(h2ax!1~foc).ATM(state~37,h2ax!1) +Molecules Damage_Foci_38 DNA38(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_38 DNA38(h2ax!1~foc).ATM(state~38,h2ax!1) +Molecules Damage_Foci_39 DNA39(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_39 DNA39(h2ax!1~foc).ATM(state~39,h2ax!1) +Molecules Damage_Foci_40 DNA40(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_40 DNA40(h2ax!1~foc).ATM(state~40,h2ax!1) +Molecules Damage_Foci_41 DNA41(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_41 DNA41(h2ax!1~foc).ATM(state~41,h2ax!1) +Molecules Damage_Foci_42 DNA42(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_42 DNA42(h2ax!1~foc).ATM(state~42,h2ax!1) +Molecules Damage_Foci_43 DNA43(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_43 DNA43(h2ax!1~foc).ATM(state~43,h2ax!1) +Molecules Damage_Foci_44 DNA44(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_44 DNA44(h2ax!1~foc).ATM(state~44,h2ax!1) +Molecules Damage_Foci_45 DNA45(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_45 DNA45(h2ax!1~foc).ATM(state~45,h2ax!1) +Molecules Damage_Foci_46 DNA46(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_46 DNA46(h2ax!1~foc).ATM(state~46,h2ax!1) +Molecules Damage_Foci_47 DNA47(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_47 DNA47(h2ax!1~foc).ATM(state~47,h2ax!1) +Molecules Damage_Foci_48 DNA48(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_48 DNA48(h2ax!1~foc).ATM(state~48,h2ax!1) +Molecules Damage_Foci_49 DNA49(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_49 DNA49(h2ax!1~foc).ATM(state~49,h2ax!1) +Molecules Damage_Foci_50 DNA50(site!?~?,h2ax~foc) +Molecules Complete_Damage_Foci_50 DNA50(h2ax!1~foc).ATM(state~50,h2ax!1) + +Molecules Ku Ku(dna,cs,cys~?) +Molecules PARP PARP(dna,liIII) +Molecules Ku_Red Ku(dna,cs,cys~red) +Molecules Ku_Ox Ku(dna,cs,cys~ox) +Molecules DNA_PKcs DNAPKcs(ku,liIV,psite~u) +Molecules LiIII LiIII(PARP) +Molecules LiIV LiIV(cs) + +Molecules Senescent_Counter Sen(int~?,State~sen) +Molecules Sen_Min Sen(int~1,State~?) +Molecules Sink Sink() + + +end observables + +# functions +begin functions + +kku1() = if(Senescent_Counter>0,0.000000034,0.00034) +kku2() = if(Senescent_Counter>0,0.000000021,0.00021) +kplus() = if(p21>15,0.04,0) +kminus() = if(p21<=15&&Sen_Min<1,0.5,0) +kKuDown() = if(Senescent_Counter==1,0.01,0) +kKustop() = if(Ku<=250,0,1) +kParpDown() = if(Senescent_Counter==1,0.01,0) +kParpstop() = if(PARP<=5,0,1) +#Irrad()= if(Time<180&&Time>174,2000,0) +#IRoff()= if(Time>=180,1000,0) +#Timeoff()= if(Time>=200,0,1) +kDelete()= if(Sink<=5,0,10000) + + +end functions + +# reaction rules +begin reaction rules + +# Time +#T()-> T() + Time() Timeoff() + +# Irradiation Event +#E() -> E() + IR() Irrad() + +# Irradiation Off +#IR() -> Sink() IRoff() + +#Empty the Sink +D() + Sink() -> D() kDelete() DeleteMolecules + +# p53 mRNA Synthesis +P() -> p53_mRNA() + P() kp53mRNAsyn + +# p53 mRNA degredation +p53_mRNA() -> Sink() kp53mRNAdeg + +# p53 Synthesis +p53_mRNA() -> p53_mRNA() + p53(Site1~u) kp53syn + +# p53 Degradation +p53(Site1~u) -> Sink() kp53deg +p53(Site1~p) -> Sink() kp53deg +p53(Site1!1~u).MDM2(Site1!1~u) -> MDM2(Site1~u) kp53degMDM2dep DeleteMolecules + +# p53 Phosporylation +p53(Site1~u) + ATM(state~1,h2ax!?) -> p53(Site1~p) + ATM(state~1,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~2,h2ax!?) -> p53(Site1~p) + ATM(state~2,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~3,h2ax!?) -> p53(Site1~p) + ATM(state~3,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~4,h2ax!?) -> p53(Site1~p) + ATM(state~4,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~5,h2ax!?) -> p53(Site1~p) + ATM(state~5,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~6,h2ax!?) -> p53(Site1~p) + ATM(state~6,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~7,h2ax!?) -> p53(Site1~p) + ATM(state~7,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~8,h2ax!?) -> p53(Site1~p) + ATM(state~8,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~9,h2ax!?) -> p53(Site1~p) + ATM(state~9,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~10,h2ax!?) -> p53(Site1~p) + ATM(state~10,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~11,h2ax!?) -> p53(Site1~p) + ATM(state~11,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~12,h2ax!?) -> p53(Site1~p) + ATM(state~12,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~13,h2ax!?) -> p53(Site1~p) + ATM(state~13,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~14,h2ax!?) -> p53(Site1~p) + ATM(state~14,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~15,h2ax!?) -> p53(Site1~p) + ATM(state~15,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~16,h2ax!?) -> p53(Site1~p) + ATM(state~16,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~17,h2ax!?) -> p53(Site1~p) + ATM(state~17,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~18,h2ax!?) -> p53(Site1~p) + ATM(state~18,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~19,h2ax!?) -> p53(Site1~p) + ATM(state~19,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~20,h2ax!?) -> p53(Site1~p) + ATM(state~20,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~21,h2ax!?) -> p53(Site1~p) + ATM(state~21,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~22,h2ax!?) -> p53(Site1~p) + ATM(state~22,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~23,h2ax!?) -> p53(Site1~p) + ATM(state~23,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~24,h2ax!?) -> p53(Site1~p) + ATM(state~24,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~25,h2ax!?) -> p53(Site1~p) + ATM(state~25,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~26,h2ax!?) -> p53(Site1~p) + ATM(state~26,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~27,h2ax!?) -> p53(Site1~p) + ATM(state~27,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~28,h2ax!?) -> p53(Site1~p) + ATM(state~28,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~29,h2ax!?) -> p53(Site1~p) + ATM(state~29,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~30,h2ax!?) -> p53(Site1~p) + ATM(state~30,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~31,h2ax!?) -> p53(Site1~p) + ATM(state~31,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~32,h2ax!?) -> p53(Site1~p) + ATM(state~32,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~33,h2ax!?) -> p53(Site1~p) + ATM(state~33,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~34,h2ax!?) -> p53(Site1~p) + ATM(state~34,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~35,h2ax!?) -> p53(Site1~p) + ATM(state~35,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~36,h2ax!?) -> p53(Site1~p) + ATM(state~36,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~37,h2ax!?) -> p53(Site1~p) + ATM(state~37,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~38,h2ax!?) -> p53(Site1~p) + ATM(state~38,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~39,h2ax!?) -> p53(Site1~p) + ATM(state~39,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~40,h2ax!?) -> p53(Site1~p) + ATM(state~40,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~41,h2ax!?) -> p53(Site1~p) + ATM(state~41,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~42,h2ax!?) -> p53(Site1~p) + ATM(state~42,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~43,h2ax!?) -> p53(Site1~p) + ATM(state~43,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~44,h2ax!?) -> p53(Site1~p) + ATM(state~44,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~45,h2ax!?) -> p53(Site1~p) + ATM(state~45,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~46,h2ax!?) -> p53(Site1~p) + ATM(state~46,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~47,h2ax!?) -> p53(Site1~p) + ATM(state~47,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~48,h2ax!?) -> p53(Site1~p) + ATM(state~48,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~49,h2ax!?) -> p53(Site1~p) + ATM(state~49,h2ax!?) kp53phos +p53(Site1~u) + ATM(state~50,h2ax!?) -> p53(Site1~p) + ATM(state~50,h2ax!?) kp53phos + +# p53 Dehosporylation +p53(Site1~p) -> p53(Site1~u) kp53dphos + +# MDM2 mRNA Synthesis + +p53(Site1~u) -> MDM2_mRNA() + p53(Site1~u) kMDM2mRNAsyn +p53(Site1~p) -> MDM2_mRNA() + p53(Site1~p) kMDM2mRNAsyn + +# MDM2 mRNA degredation +MDM2_mRNA() -> Sink() kMDM2mRNAdeg + +# MDM2 Synthesis +MDM2_mRNA() -> MDM2_mRNA() + MDM2(Site1~u) kMDM2syn + +# MDM2 Degradation +MDM2(Site1~u) -> Sink() kMDM2deg +MDM2(Site1~p) -> Sink() kMDM2pdeg + +# MDM2 Phosporylation +MDM2(Site1~u) + ATM(state~1,h2ax!?) -> MDM2(Site1~p) + ATM(state~1,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~2,h2ax!?) -> MDM2(Site1~p) + ATM(state~2,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~3,h2ax!?) -> MDM2(Site1~p) + ATM(state~3,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~4,h2ax!?) -> MDM2(Site1~p) + ATM(state~4,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~5,h2ax!?) -> MDM2(Site1~p) + ATM(state~5,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~6,h2ax!?) -> MDM2(Site1~p) + ATM(state~6,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~7,h2ax!?) -> MDM2(Site1~p) + ATM(state~7,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~8,h2ax!?) -> MDM2(Site1~p) + ATM(state~8,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~9,h2ax!?) -> MDM2(Site1~p) + ATM(state~9,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~10,h2ax!?) -> MDM2(Site1~p) + ATM(state~10,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~11,h2ax!?) -> MDM2(Site1~p) + ATM(state~11,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~12,h2ax!?) -> MDM2(Site1~p) + ATM(state~12,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~13,h2ax!?) -> MDM2(Site1~p) + ATM(state~13,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~14,h2ax!?) -> MDM2(Site1~p) + ATM(state~14,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~15,h2ax!?) -> MDM2(Site1~p) + ATM(state~15,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~16,h2ax!?) -> MDM2(Site1~p) + ATM(state~16,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~17,h2ax!?) -> MDM2(Site1~p) + ATM(state~17,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~18,h2ax!?) -> MDM2(Site1~p) + ATM(state~18,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~19,h2ax!?) -> MDM2(Site1~p) + ATM(state~19,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~20,h2ax!?) -> MDM2(Site1~p) + ATM(state~20,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~21,h2ax!?) -> MDM2(Site1~p) + ATM(state~21,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~22,h2ax!?) -> MDM2(Site1~p) + ATM(state~22,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~23,h2ax!?) -> MDM2(Site1~p) + ATM(state~23,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~24,h2ax!?) -> MDM2(Site1~p) + ATM(state~24,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~25,h2ax!?) -> MDM2(Site1~p) + ATM(state~25,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~26,h2ax!?) -> MDM2(Site1~p) + ATM(state~26,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~27,h2ax!?) -> MDM2(Site1~p) + ATM(state~27,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~28,h2ax!?) -> MDM2(Site1~p) + ATM(state~28,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~29,h2ax!?) -> MDM2(Site1~p) + ATM(state~29,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~30,h2ax!?) -> MDM2(Site1~p) + ATM(state~30,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~31,h2ax!?) -> MDM2(Site1~p) + ATM(state~31,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~32,h2ax!?) -> MDM2(Site1~p) + ATM(state~32,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~33,h2ax!?) -> MDM2(Site1~p) + ATM(state~33,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~34,h2ax!?) -> MDM2(Site1~p) + ATM(state~34,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~35,h2ax!?) -> MDM2(Site1~p) + ATM(state~35,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~36,h2ax!?) -> MDM2(Site1~p) + ATM(state~36,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~37,h2ax!?) -> MDM2(Site1~p) + ATM(state~37,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~38,h2ax!?) -> MDM2(Site1~p) + ATM(state~38,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~39,h2ax!?) -> MDM2(Site1~p) + ATM(state~39,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~40,h2ax!?) -> MDM2(Site1~p) + ATM(state~40,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~41,h2ax!?) -> MDM2(Site1~p) + ATM(state~41,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~42,h2ax!?) -> MDM2(Site1~p) + ATM(state~42,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~43,h2ax!?) -> MDM2(Site1~p) + ATM(state~43,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~44,h2ax!?) -> MDM2(Site1~p) + ATM(state~44,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~45,h2ax!?) -> MDM2(Site1~p) + ATM(state~45,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~46,h2ax!?) -> MDM2(Site1~p) + ATM(state~46,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~47,h2ax!?) -> MDM2(Site1~p) + ATM(state~47,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~48,h2ax!?) -> MDM2(Site1~p) + ATM(state~48,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~49,h2ax!?) -> MDM2(Site1~p) + ATM(state~49,h2ax!?) kMDM2phos +MDM2(Site1~u) + ATM(state~50,h2ax!?) -> MDM2(Site1~p) + ATM(state~50,h2ax!?) kMDM2phos + +# MDM2 Dehosporylation +MDM2(Site1~p) -> MDM2(Site1~u) kMDM2dphos + +# p53-MDM2 Binding and Disociation +p53(Site1~u) + MDM2(Site1~u) -> p53(Site1!1~u).MDM2(Site1!1~u) kp53MDM2bind +p53(Site1!1~u).MDM2(Site1!1~u) -> p53(Site1~u) + MDM2(Site1~u) kp53MDM2dis + +# p21 mRNA Synthesis + +p53(Site1~u) -> p21_mRNA() + p53(Site1~u) kp21mRNAsyn +p53(Site1~p) -> p21_mRNA() + p53(Site1~p) kp21mRNAsynp + +# p21 mRNA degredation +p21_mRNA() -> Sink() kp21mRNAdeg + +# p21 Synthesis +p21_mRNA() -> p21(step~1) + p21_mRNA() kp21synstep1 +p21(step~1) -> p21(step~2) kp21synstep2 +p21(step~2) -> p21(step~3) kp21synstep3 + +# p21 Degradation +p21(step~3) -> Sink() kp21deg + +# GADD45 Activation +p21(step~3) -> p21(step~3) + GADD45() kGADD45act + +# GADD45 Degradation +GADD45() -> Sink() kGADD45deg + +# p38 Phosphorylation +p38(Site1~u) + GADD45() -> p38(Site1~p) + GADD45() kp38phos + +# p38 Dephosphorylation +p38(Site1~p) -> p38(Site1~u) kp38dphos + +# p38 ROS Generation +p38(Site1~p) -> ROS() + p38(Site1~p) kROSgen #*kpROSp38 + +# NHEJ Strts here + +# Ku binding +# simple +DNA1(site~sdsb) + Ku(dna,cs) -> DNA1(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA2(site~sdsb) + Ku(dna,cs) -> DNA2(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA3(site~sdsb) + Ku(dna,cs) -> DNA3(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA4(site~sdsb) + Ku(dna,cs) -> DNA4(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA5(site~sdsb) + Ku(dna,cs) -> DNA5(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA6(site~sdsb) + Ku(dna,cs) -> DNA6(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA7(site~sdsb) + Ku(dna,cs) -> DNA7(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA8(site~sdsb) + Ku(dna,cs) -> DNA8(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA9(site~sdsb) + Ku(dna,cs) -> DNA9(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA10(site~sdsb) + Ku(dna,cs) -> DNA10(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA11(site~sdsb) + Ku(dna,cs) -> DNA11(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA12(site~sdsb) + Ku(dna,cs) -> DNA12(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA13(site~sdsb) + Ku(dna,cs) -> DNA13(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA14(site~sdsb) + Ku(dna,cs) -> DNA14(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA15(site~sdsb) + Ku(dna,cs) -> DNA15(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA16(site~sdsb) + Ku(dna,cs) -> DNA16(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA17(site~sdsb) + Ku(dna,cs) -> DNA17(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA18(site~sdsb) + Ku(dna,cs) -> DNA18(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA19(site~sdsb) + Ku(dna,cs) -> DNA19(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA20(site~sdsb) + Ku(dna,cs) -> DNA20(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA21(site~sdsb) + Ku(dna,cs) -> DNA21(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA22(site~sdsb) + Ku(dna,cs) -> DNA22(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA23(site~sdsb) + Ku(dna,cs) -> DNA23(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA24(site~sdsb) + Ku(dna,cs) -> DNA24(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA25(site~sdsb) + Ku(dna,cs) -> DNA25(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA26(site~sdsb) + Ku(dna,cs) -> DNA26(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA27(site~sdsb) + Ku(dna,cs) -> DNA27(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA28(site~sdsb) + Ku(dna,cs) -> DNA28(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA29(site~sdsb) + Ku(dna,cs) -> DNA29(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA30(site~sdsb) + Ku(dna,cs) -> DNA30(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA31(site~sdsb) + Ku(dna,cs) -> DNA31(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA32(site~sdsb) + Ku(dna,cs) -> DNA32(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA33(site~sdsb) + Ku(dna,cs) -> DNA33(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA34(site~sdsb) + Ku(dna,cs) -> DNA34(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA35(site~sdsb) + Ku(dna,cs) -> DNA35(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA36(site~sdsb) + Ku(dna,cs) -> DNA36(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA37(site~sdsb) + Ku(dna,cs) -> DNA37(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA38(site~sdsb) + Ku(dna,cs) -> DNA38(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA39(site~sdsb) + Ku(dna,cs) -> DNA39(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA40(site~sdsb) + Ku(dna,cs) -> DNA40(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA41(site~sdsb) + Ku(dna,cs) -> DNA41(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA42(site~sdsb) + Ku(dna,cs) -> DNA42(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA43(site~sdsb) + Ku(dna,cs) -> DNA43(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA44(site~sdsb) + Ku(dna,cs) -> DNA44(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA45(site~sdsb) + Ku(dna,cs) -> DNA45(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA46(site~sdsb) + Ku(dna,cs) -> DNA46(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA47(site~sdsb) + Ku(dna,cs) -> DNA47(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA48(site~sdsb) + Ku(dna,cs) -> DNA48(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA49(site~sdsb) + Ku(dna,cs) -> DNA49(site!1~sdsb).Ku(dna!1,cs) kku1() +DNA50(site~sdsb) + Ku(dna,cs) -> DNA50(site!1~sdsb).Ku(dna!1,cs) kku1() +# complex +DNA1(site~cdsb) + Ku(dna,cs) -> DNA1(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA2(site~cdsb) + Ku(dna,cs) -> DNA2(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA3(site~cdsb) + Ku(dna,cs) -> DNA3(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA4(site~cdsb) + Ku(dna,cs) -> DNA4(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA5(site~cdsb) + Ku(dna,cs) -> DNA5(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA6(site~cdsb) + Ku(dna,cs) -> DNA6(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA7(site~cdsb) + Ku(dna,cs) -> DNA7(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA8(site~cdsb) + Ku(dna,cs) -> DNA8(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA9(site~cdsb) + Ku(dna,cs) -> DNA9(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA10(site~cdsb) + Ku(dna,cs) -> DNA10(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA11(site~cdsb) + Ku(dna,cs) -> DNA11(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA12(site~cdsb) + Ku(dna,cs) -> DNA12(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA13(site~cdsb) + Ku(dna,cs) -> DNA13(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA14(site~cdsb) + Ku(dna,cs) -> DNA14(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA15(site~cdsb) + Ku(dna,cs) -> DNA15(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA16(site~cdsb) + Ku(dna,cs) -> DNA16(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA17(site~cdsb) + Ku(dna,cs) -> DNA17(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA18(site~cdsb) + Ku(dna,cs) -> DNA18(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA19(site~cdsb) + Ku(dna,cs) -> DNA19(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA20(site~cdsb) + Ku(dna,cs) -> DNA20(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA21(site~cdsb) + Ku(dna,cs) -> DNA21(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA22(site~cdsb) + Ku(dna,cs) -> DNA22(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA23(site~cdsb) + Ku(dna,cs) -> DNA23(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA24(site~cdsb) + Ku(dna,cs) -> DNA24(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA25(site~cdsb) + Ku(dna,cs) -> DNA25(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA26(site~cdsb) + Ku(dna,cs) -> DNA26(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA27(site~cdsb) + Ku(dna,cs) -> DNA27(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA28(site~cdsb) + Ku(dna,cs) -> DNA28(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA29(site~cdsb) + Ku(dna,cs) -> DNA29(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA30(site~cdsb) + Ku(dna,cs) -> DNA30(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA31(site~cdsb) + Ku(dna,cs) -> DNA31(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA32(site~cdsb) + Ku(dna,cs) -> DNA32(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA33(site~cdsb) + Ku(dna,cs) -> DNA33(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA34(site~cdsb) + Ku(dna,cs) -> DNA34(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA35(site~cdsb) + Ku(dna,cs) -> DNA35(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA36(site~cdsb) + Ku(dna,cs) -> DNA36(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA37(site~cdsb) + Ku(dna,cs) -> DNA37(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA38(site~cdsb) + Ku(dna,cs) -> DNA38(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA39(site~cdsb) + Ku(dna,cs) -> DNA39(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA40(site~cdsb) + Ku(dna,cs) -> DNA40(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA41(site~cdsb) + Ku(dna,cs) -> DNA41(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA42(site~cdsb) + Ku(dna,cs) -> DNA42(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA43(site~cdsb) + Ku(dna,cs) -> DNA43(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA44(site~cdsb) + Ku(dna,cs) -> DNA44(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA45(site~cdsb) + Ku(dna,cs) -> DNA45(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA46(site~cdsb) + Ku(dna,cs) -> DNA46(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA47(site~cdsb) + Ku(dna,cs) -> DNA47(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA48(site~cdsb) + Ku(dna,cs) -> DNA48(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA49(site~cdsb) + Ku(dna,cs) -> DNA49(site!1~cdsb).Ku(dna!1,cs) kku2() +DNA50(site~cdsb) + Ku(dna,cs) -> DNA50(site!1~cdsb).Ku(dna!1,cs) kku2() + +# Ku dissociating +# simple +DNA1(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA1(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA2(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA2(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA3(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA3(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA4(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA4(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA5(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA5(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA6(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA6(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA7(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA7(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA8(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA8(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA9(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA9(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA10(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA10(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA11(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA11(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA12(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA12(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA13(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA13(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA14(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA14(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA15(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA15(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA16(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA16(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA17(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA17(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA18(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA18(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA19(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA19(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA20(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA20(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA21(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA21(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA22(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA22(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA23(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA23(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA24(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA24(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA25(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA25(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA26(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA26(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA27(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA27(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA28(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA28(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA29(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA29(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA30(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA30(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA31(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA31(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA32(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA32(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA33(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA33(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA34(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA34(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA35(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA35(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA36(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA36(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA37(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA37(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA38(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA38(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA39(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA39(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA40(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA40(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA41(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA41(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA42(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA42(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA43(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA43(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA44(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA44(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA45(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA45(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA46(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA46(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA47(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA47(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA48(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA48(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA49(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA49(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +DNA50(site!1~sdsb).Ku(dna!1,cs,cys~red) -> DNA50(site~sdsb) + Ku(dna,cs,cys~red) kdku1 +# complex +DNA1(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA1(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA2(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA2(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA3(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA3(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA4(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA4(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA5(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA5(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA6(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA6(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA7(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA7(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA8(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA8(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA9(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA9(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA10(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA10(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA11(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA11(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA12(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA12(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA13(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA13(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA14(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA14(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA15(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA15(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA16(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA16(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA17(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA17(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA18(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA18(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA19(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA19(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA20(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA20(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA21(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA21(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA22(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA22(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA23(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA23(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA24(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA24(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA25(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA25(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA26(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA26(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA27(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA27(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA28(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA28(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA29(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA29(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA30(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA30(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA31(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA31(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA32(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA32(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA33(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA33(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA34(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA34(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA35(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA35(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA36(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA36(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA37(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA37(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA38(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA38(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA39(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA39(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA40(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA40(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA41(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA41(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA42(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA42(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA43(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA43(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA44(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA44(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA45(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA45(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA46(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA46(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA47(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA47(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA48(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA48(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA49(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA49(site~cdsb) + Ku(dna,cs,cys~red) kdku2 +DNA50(site!1~cdsb).Ku(dna!1,cs,cys~red) -> DNA50(site~cdsb) + Ku(dna,cs,cys~red) kdku2 + +# DNAPKcs complex +# simple +DNA1(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA1(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA2(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA2(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA3(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA3(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA4(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA4(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA5(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA5(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA6(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA6(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA7(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA7(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA8(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA8(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA9(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA9(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA10(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA10(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA11(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA11(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA12(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA12(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA13(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA13(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA14(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA14(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA15(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA15(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA16(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA16(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA17(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA17(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA18(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA18(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA19(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA19(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA20(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA20(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA21(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA21(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA22(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA22(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA23(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA23(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA24(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA24(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA25(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA25(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA26(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA26(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA27(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA27(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA28(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA28(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA29(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA29(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA30(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA30(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA31(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA31(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA32(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA32(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA33(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA33(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA34(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA34(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA35(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA35(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA36(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA36(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA37(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA37(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA38(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA38(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA39(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA39(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA40(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA40(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA41(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA41(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA42(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA42(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA43(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA43(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA44(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA44(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA45(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA45(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA46(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA46(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA47(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA47(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA48(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA48(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA49(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA49(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +DNA50(site!1~sdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA50(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk1 +# complex +DNA1(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA1(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA2(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA2(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA3(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA3(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA4(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA4(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA5(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA5(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA6(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA6(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA7(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA7(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA8(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA8(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA9(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA9(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA10(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA10(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA11(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA11(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA12(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA12(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA13(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA13(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA14(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA14(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA15(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA15(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA16(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA16(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA17(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA17(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA18(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA18(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA19(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA19(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA20(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA20(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA21(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA21(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA22(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA22(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA23(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA23(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA24(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA24(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA25(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA25(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA26(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA26(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA27(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA27(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA28(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA28(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA29(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA29(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA30(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA30(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA31(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA31(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA32(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA32(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA33(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA33(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA34(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA34(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA35(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA35(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA36(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA36(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA37(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA37(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA38(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA38(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA39(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA39(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA40(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA40(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA41(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA41(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA42(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA42(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA43(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA43(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA44(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA44(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA45(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA45(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA46(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA46(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA47(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA47(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA48(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA48(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA49(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA49(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 +DNA50(site!1~cdsb).Ku(dna!1,cs) + DNAPKcs(ku,liIV,psite~u) -> DNA50(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) kdnapk2 + +# dissociation +#simple +DNA1(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA1(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA2(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA2(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA3(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA3(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA4(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA4(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA5(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA5(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA6(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA6(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA7(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA7(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA8(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA8(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA9(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA9(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA10(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA10(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA11(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA11(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA12(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA12(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA13(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA13(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA14(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA14(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA15(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA15(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA16(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA16(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA17(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA17(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA18(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA18(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA19(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA19(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA20(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA20(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA21(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA21(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA22(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA22(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA23(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA23(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA24(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA24(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA25(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA25(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA26(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA26(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA27(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA27(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA28(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA28(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA29(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA29(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA30(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA30(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA31(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA31(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA32(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA32(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA33(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA33(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA34(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA34(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA35(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA35(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA36(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA36(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA37(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA37(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA38(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA38(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA39(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA39(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA40(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA40(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA41(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA41(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA42(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA42(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA43(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA43(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA44(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA44(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA45(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA45(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA46(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA46(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA47(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA47(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA48(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA48(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA49(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA49(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +DNA50(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA50(site~sdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk1 +#complex +DNA1(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA1(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA2(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA2(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA3(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA3(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA4(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA4(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA5(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA5(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA6(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA6(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA7(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA7(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA8(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA8(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA9(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA9(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA10(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA10(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA11(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA11(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA12(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA12(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA13(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA13(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA14(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA14(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA15(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA15(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA16(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA16(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA17(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA17(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA18(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA18(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA19(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA19(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA20(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA20(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA21(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA21(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA22(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA22(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA23(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA23(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA24(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA24(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA25(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA25(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA26(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA26(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA27(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA27(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA28(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA28(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA29(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA29(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA30(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA30(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA31(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA31(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA32(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA32(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA33(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA33(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA34(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA34(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA35(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA35(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA36(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA36(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA37(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA37(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA38(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA38(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA39(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA39(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA40(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA40(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA41(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA41(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA42(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA42(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA43(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA43(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA44(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA44(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA45(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA45(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA46(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA46(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA47(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA47(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA48(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA48(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA49(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA49(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 +DNA50(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~?) -> DNA50(site~cdsb) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) kddnapk2 + +# DNAPKcs phosphorylation +# simple +DNA1(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA1(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA2(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA2(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA3(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA3(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA4(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA4(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA5(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA5(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA6(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA6(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA7(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA7(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA8(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA8(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA9(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA9(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA10(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA10(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA11(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA11(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA12(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA12(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA13(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA13(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA14(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA14(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA15(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA15(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA16(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA16(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA17(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA17(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA18(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA18(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA19(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA19(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA20(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA20(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA21(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA21(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA22(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA22(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA23(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA23(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA24(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA24(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA25(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA25(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA26(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA26(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA27(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA27(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA28(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA28(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA29(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA29(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA30(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA30(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA31(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA31(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA32(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA32(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA33(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA33(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA34(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA34(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA35(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA35(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA36(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA36(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA37(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA37(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA38(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA38(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA39(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA39(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA40(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA40(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA41(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA41(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA42(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA42(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA43(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA43(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA44(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA44(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA45(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA45(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA46(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA46(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA47(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA47(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA48(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA48(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA49(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA49(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +DNA50(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA50(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos1 +# complex +DNA1(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA1(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA2(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA2(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA3(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA3(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA4(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA4(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA5(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA5(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA6(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA6(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA7(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA7(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA8(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA8(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA9(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA9(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA10(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA10(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA11(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA11(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA12(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA12(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA13(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA13(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA14(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA14(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA15(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA15(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA16(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA16(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA17(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA17(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA18(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA18(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA19(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA19(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA20(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA20(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA21(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA21(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA22(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA22(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA23(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA23(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA24(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA24(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA25(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA25(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA26(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA26(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA27(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA27(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA28(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA28(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA29(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA29(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA30(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA30(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA31(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA31(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA32(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA32(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA33(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA33(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA34(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA34(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA35(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA35(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA36(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA36(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA37(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA37(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA38(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA38(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA39(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA39(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA40(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA40(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA41(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA41(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA42(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA42(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA43(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA43(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA44(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA44(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA45(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA45(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA46(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA46(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA47(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA47(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA48(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA48(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA49(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA49(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 +DNA50(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~u) -> DNA50(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kdnapkphos2 + +# Ligase IV complex formation +#simple +DNA1(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA1(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA2(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA2(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA3(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA3(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA4(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA4(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA5(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA5(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA6(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA6(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA7(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA7(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA8(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA8(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA9(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA9(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA10(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA10(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA11(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA11(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA12(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA12(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA13(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA13(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA14(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA14(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA15(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA15(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA16(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA16(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA17(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA17(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA18(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA18(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA19(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA19(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA20(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA20(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA21(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA21(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA22(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA22(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA23(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA23(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA24(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA24(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA25(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA25(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA26(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA26(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA27(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA27(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA28(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA28(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA29(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA29(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA30(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA30(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA31(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA31(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA32(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA32(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA33(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA33(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA34(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA34(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA35(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA35(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA36(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA36(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA37(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA37(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA38(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA38(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA39(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA39(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA40(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA40(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA41(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA41(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA42(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA42(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA43(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA43(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA44(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA44(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA45(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA45(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA46(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA46(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA47(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA47(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA48(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA48(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA49(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA49(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +DNA50(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA50(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV1 +#complex +DNA1(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA1(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA2(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA2(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA3(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA3(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA4(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA4(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA5(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA5(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA6(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA6(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA7(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA7(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA8(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA8(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA9(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA9(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA10(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA10(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA11(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA11(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA12(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA12(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA13(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA13(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA14(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA14(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA15(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA15(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA16(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA16(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA17(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA17(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA18(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA18(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA19(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA19(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA20(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA20(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA21(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA21(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA22(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA22(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA23(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA23(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA24(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA24(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA25(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA25(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA26(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA26(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA27(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA27(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA28(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA28(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA29(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA29(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA30(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA30(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA31(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA31(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA32(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA32(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA33(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA33(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA34(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA34(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA35(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA35(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA36(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA36(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA37(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA37(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA38(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA38(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA39(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA39(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA40(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA40(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA41(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA41(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA42(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA42(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA43(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA43(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA44(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA44(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA45(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA45(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA46(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA46(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA47(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA47(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA48(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA48(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA49(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA49(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 +DNA50(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) -> DNA50(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) kliIV2 + +# LiIV dissociation +#simple +DNA1(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA1(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA2(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA2(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA3(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA3(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA4(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA4(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA5(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA5(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA6(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA6(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA7(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA7(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA8(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA8(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA9(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA9(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA10(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA10(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA11(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA11(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA12(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA12(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA13(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA13(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA14(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA14(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA15(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA15(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA16(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA16(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA17(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA17(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA18(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA18(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA19(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA19(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA20(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA20(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA21(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA21(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA22(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA22(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA23(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA23(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA24(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA24(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA25(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA25(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA26(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA26(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA27(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA27(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA28(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA28(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA29(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA29(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA30(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA30(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA31(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA31(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA32(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA32(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA33(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA33(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA34(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA34(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA35(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA35(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA36(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA36(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA37(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA37(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA38(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA38(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA39(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA39(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA40(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA40(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA41(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA41(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA42(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA42(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA43(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA43(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA44(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA44(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA45(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA45(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA46(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA46(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA47(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA47(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA48(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA48(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA49(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA49(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +DNA50(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA50(site!1~sdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV1 +#complex +DNA1(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA1(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA2(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA2(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA3(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA3(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA4(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA4(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA5(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA5(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA6(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA6(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA7(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA7(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA8(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA8(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA9(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA9(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA10(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA10(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA11(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA11(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA12(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA12(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA13(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA13(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA14(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA14(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA15(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA15(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA16(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA16(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA17(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA17(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA18(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA18(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA19(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA19(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA20(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA20(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA21(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA21(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA22(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA22(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA23(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA23(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA24(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA24(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA25(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA25(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA26(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA26(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA27(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA27(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA28(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA28(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA29(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA29(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA30(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA30(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA31(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA31(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA32(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA32(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA33(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA33(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA34(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA34(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA35(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA35(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA36(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA36(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA37(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA37(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA38(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA38(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA39(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA39(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA40(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA40(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA41(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA41(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA42(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA42(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA43(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA43(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA44(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA44(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA45(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA45(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA46(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA46(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA47(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA47(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA48(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA48(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA49(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA49(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 +DNA50(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3) -> DNA50(site!1~cdsb).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) + LiIV(cs) kdliIV2 + +# repair +#simple +DNA1(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA1(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA2(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA2(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA3(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA3(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA4(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA4(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA5(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA5(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA6(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA6(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA7(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA7(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA8(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA8(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA9(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA9(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA10(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA10(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA11(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA11(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA12(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA12(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA13(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA13(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA14(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA14(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA15(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA15(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA16(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA16(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA17(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA17(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA18(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA18(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA19(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA19(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA20(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA20(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA21(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA21(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA22(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA22(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA23(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA23(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA24(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA24(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA25(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA25(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA26(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA26(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA27(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA27(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA28(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA28(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA29(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA29(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA30(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA30(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA31(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA31(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA32(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA32(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA33(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA33(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA34(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA34(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA35(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA35(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA36(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA36(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA37(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA37(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA38(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA38(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA39(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA39(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA40(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA40(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA41(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA41(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA42(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA42(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA43(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA43(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA44(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA44(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA45(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA45(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA46(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA46(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA47(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA47(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA48(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA48(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA49(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA49(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +DNA50(site!1~sdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA50(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV1 +#complex +DNA1(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA1(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA2(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA2(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA3(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA3(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA4(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA4(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA5(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA5(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA6(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA6(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA7(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA7(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA8(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA8(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA9(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA9(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA10(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA10(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA11(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA11(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA12(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA12(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA13(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA13(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA14(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA14(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA15(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA15(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA16(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA16(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA17(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA17(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA18(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA18(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA19(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA19(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA20(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA20(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA21(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA21(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA22(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA22(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA23(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA23(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA24(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA24(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA25(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA25(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA26(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA26(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA27(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA27(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA28(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA28(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA29(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA29(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA30(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA30(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA31(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA31(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA32(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA32(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA33(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA33(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA34(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA34(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA35(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA35(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA36(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA36(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA37(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA37(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA38(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA38(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA39(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA39(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA40(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA40(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA41(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA41(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA42(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA42(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA43(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA43(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA44(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA44(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA45(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA45(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA46(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA46(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA47(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA47(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA48(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA48(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA49(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA49(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 +DNA50(site!1~cdsb,h2ax!4~foc).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV!3,psite~p).LiIV(cs!3).ATM(h2ax!4) -> DNA50(site~ok,h2ax!1~foc).ATM(h2ax!1) + Ku(dna,cs) + DNAPKcs(ku,liIV,psite~u) + LiIV(cs) kfixIV2 + +# PARP binding +# simple +DNA1(site~sdsb) + PARP(dna,liIII) -> DNA1(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA2(site~sdsb) + PARP(dna,liIII) -> DNA2(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA3(site~sdsb) + PARP(dna,liIII) -> DNA3(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA4(site~sdsb) + PARP(dna,liIII) -> DNA4(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA5(site~sdsb) + PARP(dna,liIII) -> DNA5(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA6(site~sdsb) + PARP(dna,liIII) -> DNA6(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA7(site~sdsb) + PARP(dna,liIII) -> DNA7(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA8(site~sdsb) + PARP(dna,liIII) -> DNA8(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA9(site~sdsb) + PARP(dna,liIII) -> DNA9(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA10(site~sdsb) + PARP(dna,liIII) -> DNA10(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA11(site~sdsb) + PARP(dna,liIII) -> DNA11(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA12(site~sdsb) + PARP(dna,liIII) -> DNA12(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA13(site~sdsb) + PARP(dna,liIII) -> DNA13(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA14(site~sdsb) + PARP(dna,liIII) -> DNA14(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA15(site~sdsb) + PARP(dna,liIII) -> DNA15(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA16(site~sdsb) + PARP(dna,liIII) -> DNA16(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA17(site~sdsb) + PARP(dna,liIII) -> DNA17(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA18(site~sdsb) + PARP(dna,liIII) -> DNA18(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA19(site~sdsb) + PARP(dna,liIII) -> DNA19(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA20(site~sdsb) + PARP(dna,liIII) -> DNA20(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA21(site~sdsb) + PARP(dna,liIII) -> DNA21(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA22(site~sdsb) + PARP(dna,liIII) -> DNA22(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA23(site~sdsb) + PARP(dna,liIII) -> DNA23(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA24(site~sdsb) + PARP(dna,liIII) -> DNA24(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA25(site~sdsb) + PARP(dna,liIII) -> DNA25(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA26(site~sdsb) + PARP(dna,liIII) -> DNA26(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA27(site~sdsb) + PARP(dna,liIII) -> DNA27(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA28(site~sdsb) + PARP(dna,liIII) -> DNA28(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA29(site~sdsb) + PARP(dna,liIII) -> DNA29(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA30(site~sdsb) + PARP(dna,liIII) -> DNA30(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA31(site~sdsb) + PARP(dna,liIII) -> DNA31(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA32(site~sdsb) + PARP(dna,liIII) -> DNA32(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA33(site~sdsb) + PARP(dna,liIII) -> DNA33(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA34(site~sdsb) + PARP(dna,liIII) -> DNA34(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA35(site~sdsb) + PARP(dna,liIII) -> DNA35(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA36(site~sdsb) + PARP(dna,liIII) -> DNA36(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA37(site~sdsb) + PARP(dna,liIII) -> DNA37(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA38(site~sdsb) + PARP(dna,liIII) -> DNA38(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA39(site~sdsb) + PARP(dna,liIII) -> DNA39(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA40(site~sdsb) + PARP(dna,liIII) -> DNA40(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA41(site~sdsb) + PARP(dna,liIII) -> DNA41(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA42(site~sdsb) + PARP(dna,liIII) -> DNA42(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA43(site~sdsb) + PARP(dna,liIII) -> DNA43(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA44(site~sdsb) + PARP(dna,liIII) -> DNA44(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA45(site~sdsb) + PARP(dna,liIII) -> DNA45(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA46(site~sdsb) + PARP(dna,liIII) -> DNA46(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA47(site~sdsb) + PARP(dna,liIII) -> DNA47(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA48(site~sdsb) + PARP(dna,liIII) -> DNA48(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA49(site~sdsb) + PARP(dna,liIII) -> DNA49(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +DNA50(site~sdsb) + PARP(dna,liIII) -> DNA50(site!1~sdsb).PARP(dna!1,liIII) kPARP1 +# complex +DNA1(site~cdsb) + PARP(dna,liIII) -> DNA1(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA2(site~cdsb) + PARP(dna,liIII) -> DNA2(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA3(site~cdsb) + PARP(dna,liIII) -> DNA3(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA4(site~cdsb) + PARP(dna,liIII) -> DNA4(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA5(site~cdsb) + PARP(dna,liIII) -> DNA5(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA6(site~cdsb) + PARP(dna,liIII) -> DNA6(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA7(site~cdsb) + PARP(dna,liIII) -> DNA7(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA8(site~cdsb) + PARP(dna,liIII) -> DNA8(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA9(site~cdsb) + PARP(dna,liIII) -> DNA9(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA10(site~cdsb) + PARP(dna,liIII) -> DNA10(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA11(site~cdsb) + PARP(dna,liIII) -> DNA11(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA12(site~cdsb) + PARP(dna,liIII) -> DNA12(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA13(site~cdsb) + PARP(dna,liIII) -> DNA13(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA14(site~cdsb) + PARP(dna,liIII) -> DNA14(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA15(site~cdsb) + PARP(dna,liIII) -> DNA15(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA16(site~cdsb) + PARP(dna,liIII) -> DNA16(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA17(site~cdsb) + PARP(dna,liIII) -> DNA17(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA18(site~cdsb) + PARP(dna,liIII) -> DNA18(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA19(site~cdsb) + PARP(dna,liIII) -> DNA19(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA20(site~cdsb) + PARP(dna,liIII) -> DNA20(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA21(site~cdsb) + PARP(dna,liIII) -> DNA21(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA22(site~cdsb) + PARP(dna,liIII) -> DNA22(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA23(site~cdsb) + PARP(dna,liIII) -> DNA23(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA24(site~cdsb) + PARP(dna,liIII) -> DNA24(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA25(site~cdsb) + PARP(dna,liIII) -> DNA25(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA26(site~cdsb) + PARP(dna,liIII) -> DNA26(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA27(site~cdsb) + PARP(dna,liIII) -> DNA27(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA28(site~cdsb) + PARP(dna,liIII) -> DNA28(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA29(site~cdsb) + PARP(dna,liIII) -> DNA29(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA30(site~cdsb) + PARP(dna,liIII) -> DNA30(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA31(site~cdsb) + PARP(dna,liIII) -> DNA31(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA32(site~cdsb) + PARP(dna,liIII) -> DNA32(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA33(site~cdsb) + PARP(dna,liIII) -> DNA33(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA34(site~cdsb) + PARP(dna,liIII) -> DNA34(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA35(site~cdsb) + PARP(dna,liIII) -> DNA35(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA36(site~cdsb) + PARP(dna,liIII) -> DNA36(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA37(site~cdsb) + PARP(dna,liIII) -> DNA37(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA38(site~cdsb) + PARP(dna,liIII) -> DNA38(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA39(site~cdsb) + PARP(dna,liIII) -> DNA39(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA40(site~cdsb) + PARP(dna,liIII) -> DNA40(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA41(site~cdsb) + PARP(dna,liIII) -> DNA41(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA42(site~cdsb) + PARP(dna,liIII) -> DNA42(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA43(site~cdsb) + PARP(dna,liIII) -> DNA43(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA44(site~cdsb) + PARP(dna,liIII) -> DNA44(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA45(site~cdsb) + PARP(dna,liIII) -> DNA45(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA46(site~cdsb) + PARP(dna,liIII) -> DNA46(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA47(site~cdsb) + PARP(dna,liIII) -> DNA47(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA48(site~cdsb) + PARP(dna,liIII) -> DNA48(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA49(site~cdsb) + PARP(dna,liIII) -> DNA49(site!1~cdsb).PARP(dna!1,liIII) kPARP2 +DNA50(site~cdsb) + PARP(dna,liIII) -> DNA50(site!1~cdsb).PARP(dna!1,liIII) kPARP2 + +# PARP dissociating +# simple +DNA1(site!1~sdsb).PARP(dna!1,liIII) -> DNA1(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA2(site!1~sdsb).PARP(dna!1,liIII) -> DNA2(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA3(site!1~sdsb).PARP(dna!1,liIII) -> DNA3(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA4(site!1~sdsb).PARP(dna!1,liIII) -> DNA4(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA5(site!1~sdsb).PARP(dna!1,liIII) -> DNA5(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA6(site!1~sdsb).PARP(dna!1,liIII) -> DNA6(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA7(site!1~sdsb).PARP(dna!1,liIII) -> DNA7(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA8(site!1~sdsb).PARP(dna!1,liIII) -> DNA8(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA9(site!1~sdsb).PARP(dna!1,liIII) -> DNA9(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA10(site!1~sdsb).PARP(dna!1,liIII) -> DNA10(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA11(site!1~sdsb).PARP(dna!1,liIII) -> DNA11(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA12(site!1~sdsb).PARP(dna!1,liIII) -> DNA12(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA13(site!1~sdsb).PARP(dna!1,liIII) -> DNA13(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA14(site!1~sdsb).PARP(dna!1,liIII) -> DNA14(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA15(site!1~sdsb).PARP(dna!1,liIII) -> DNA15(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA16(site!1~sdsb).PARP(dna!1,liIII) -> DNA16(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA17(site!1~sdsb).PARP(dna!1,liIII) -> DNA17(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA18(site!1~sdsb).PARP(dna!1,liIII) -> DNA18(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA19(site!1~sdsb).PARP(dna!1,liIII) -> DNA19(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA20(site!1~sdsb).PARP(dna!1,liIII) -> DNA20(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA21(site!1~sdsb).PARP(dna!1,liIII) -> DNA21(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA22(site!1~sdsb).PARP(dna!1,liIII) -> DNA22(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA23(site!1~sdsb).PARP(dna!1,liIII) -> DNA23(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA24(site!1~sdsb).PARP(dna!1,liIII) -> DNA24(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA25(site!1~sdsb).PARP(dna!1,liIII) -> DNA25(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA26(site!1~sdsb).PARP(dna!1,liIII) -> DNA26(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA27(site!1~sdsb).PARP(dna!1,liIII) -> DNA27(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA28(site!1~sdsb).PARP(dna!1,liIII) -> DNA28(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA29(site!1~sdsb).PARP(dna!1,liIII) -> DNA29(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA30(site!1~sdsb).PARP(dna!1,liIII) -> DNA30(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA31(site!1~sdsb).PARP(dna!1,liIII) -> DNA31(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA32(site!1~sdsb).PARP(dna!1,liIII) -> DNA32(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA33(site!1~sdsb).PARP(dna!1,liIII) -> DNA33(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA34(site!1~sdsb).PARP(dna!1,liIII) -> DNA34(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA35(site!1~sdsb).PARP(dna!1,liIII) -> DNA35(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA36(site!1~sdsb).PARP(dna!1,liIII) -> DNA36(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA37(site!1~sdsb).PARP(dna!1,liIII) -> DNA37(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA38(site!1~sdsb).PARP(dna!1,liIII) -> DNA38(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA39(site!1~sdsb).PARP(dna!1,liIII) -> DNA39(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA40(site!1~sdsb).PARP(dna!1,liIII) -> DNA40(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA41(site!1~sdsb).PARP(dna!1,liIII) -> DNA41(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA42(site!1~sdsb).PARP(dna!1,liIII) -> DNA42(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA43(site!1~sdsb).PARP(dna!1,liIII) -> DNA43(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA44(site!1~sdsb).PARP(dna!1,liIII) -> DNA44(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA45(site!1~sdsb).PARP(dna!1,liIII) -> DNA45(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA46(site!1~sdsb).PARP(dna!1,liIII) -> DNA46(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA47(site!1~sdsb).PARP(dna!1,liIII) -> DNA47(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA48(site!1~sdsb).PARP(dna!1,liIII) -> DNA48(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA49(site!1~sdsb).PARP(dna!1,liIII) -> DNA49(site~sdsb) + PARP(dna,liIII) kdPARP1 +DNA50(site!1~sdsb).PARP(dna!1,liIII) -> DNA50(site~sdsb) + PARP(dna,liIII) kdPARP1 +# complex +DNA1(site!1~cdsb).PARP(dna!1,liIII) -> DNA1(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA2(site!1~cdsb).PARP(dna!1,liIII) -> DNA2(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA3(site!1~cdsb).PARP(dna!1,liIII) -> DNA3(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA4(site!1~cdsb).PARP(dna!1,liIII) -> DNA4(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA5(site!1~cdsb).PARP(dna!1,liIII) -> DNA5(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA6(site!1~cdsb).PARP(dna!1,liIII) -> DNA6(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA7(site!1~cdsb).PARP(dna!1,liIII) -> DNA7(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA8(site!1~cdsb).PARP(dna!1,liIII) -> DNA8(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA9(site!1~cdsb).PARP(dna!1,liIII) -> DNA9(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA10(site!1~cdsb).PARP(dna!1,liIII) -> DNA10(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA11(site!1~cdsb).PARP(dna!1,liIII) -> DNA11(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA12(site!1~cdsb).PARP(dna!1,liIII) -> DNA12(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA13(site!1~cdsb).PARP(dna!1,liIII) -> DNA13(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA14(site!1~cdsb).PARP(dna!1,liIII) -> DNA14(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA15(site!1~cdsb).PARP(dna!1,liIII) -> DNA15(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA16(site!1~cdsb).PARP(dna!1,liIII) -> DNA16(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA17(site!1~cdsb).PARP(dna!1,liIII) -> DNA17(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA18(site!1~cdsb).PARP(dna!1,liIII) -> DNA18(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA19(site!1~cdsb).PARP(dna!1,liIII) -> DNA19(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA20(site!1~cdsb).PARP(dna!1,liIII) -> DNA20(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA21(site!1~cdsb).PARP(dna!1,liIII) -> DNA21(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA22(site!1~cdsb).PARP(dna!1,liIII) -> DNA22(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA23(site!1~cdsb).PARP(dna!1,liIII) -> DNA23(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA24(site!1~cdsb).PARP(dna!1,liIII) -> DNA24(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA25(site!1~cdsb).PARP(dna!1,liIII) -> DNA25(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA26(site!1~cdsb).PARP(dna!1,liIII) -> DNA26(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA27(site!1~cdsb).PARP(dna!1,liIII) -> DNA27(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA28(site!1~cdsb).PARP(dna!1,liIII) -> DNA28(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA29(site!1~cdsb).PARP(dna!1,liIII) -> DNA29(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA30(site!1~cdsb).PARP(dna!1,liIII) -> DNA30(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA31(site!1~cdsb).PARP(dna!1,liIII) -> DNA31(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA32(site!1~cdsb).PARP(dna!1,liIII) -> DNA32(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA33(site!1~cdsb).PARP(dna!1,liIII) -> DNA33(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA34(site!1~cdsb).PARP(dna!1,liIII) -> DNA34(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA35(site!1~cdsb).PARP(dna!1,liIII) -> DNA35(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA36(site!1~cdsb).PARP(dna!1,liIII) -> DNA36(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA37(site!1~cdsb).PARP(dna!1,liIII) -> DNA37(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA38(site!1~cdsb).PARP(dna!1,liIII) -> DNA38(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA39(site!1~cdsb).PARP(dna!1,liIII) -> DNA39(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA40(site!1~cdsb).PARP(dna!1,liIII) -> DNA40(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA41(site!1~cdsb).PARP(dna!1,liIII) -> DNA41(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA42(site!1~cdsb).PARP(dna!1,liIII) -> DNA42(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA43(site!1~cdsb).PARP(dna!1,liIII) -> DNA43(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA44(site!1~cdsb).PARP(dna!1,liIII) -> DNA44(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA45(site!1~cdsb).PARP(dna!1,liIII) -> DNA45(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA46(site!1~cdsb).PARP(dna!1,liIII) -> DNA46(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA47(site!1~cdsb).PARP(dna!1,liIII) -> DNA47(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA48(site!1~cdsb).PARP(dna!1,liIII) -> DNA48(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA49(site!1~cdsb).PARP(dna!1,liIII) -> DNA49(site~cdsb) + PARP(dna,liIII) kdPARP2 +DNA50(site!1~cdsb).PARP(dna!1,liIII) -> DNA50(site~cdsb) + PARP(dna,liIII) kdPARP2 + +# Ligase III complex formation +# simple +DNA1(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA1(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA2(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA2(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA3(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA3(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA4(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA4(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA5(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA5(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA6(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA6(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA7(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA7(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA8(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA8(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA9(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA9(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA10(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA10(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA11(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA11(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA12(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA12(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA13(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA13(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA14(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA14(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA15(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA15(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA16(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA16(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA17(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA17(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA18(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA18(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA19(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA19(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA20(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA20(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA21(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA21(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA22(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA22(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA23(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA23(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA24(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA24(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA25(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA25(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA26(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA26(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA27(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA27(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA28(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA28(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA29(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA29(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA30(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA30(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA31(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA31(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA32(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA32(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA33(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA33(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA34(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA34(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA35(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA35(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA36(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA36(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA37(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA37(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA38(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA38(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA39(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA39(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA40(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA40(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA41(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA41(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA42(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA42(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA43(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA43(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA44(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA44(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA45(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA45(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA46(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA46(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA47(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA47(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA48(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA48(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA49(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA49(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +DNA50(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA50(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII1 +# complex +DNA1(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA1(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA2(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA2(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA3(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA3(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA4(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA4(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA5(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA5(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA6(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA6(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA7(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA7(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA8(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA8(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA9(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA9(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA10(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA10(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA11(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA11(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA12(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA12(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA13(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA13(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA14(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA14(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA15(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA15(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA16(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA16(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA17(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA17(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA18(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA18(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA19(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA19(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA20(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA20(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA21(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA21(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA22(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA22(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA23(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA23(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA24(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA24(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA25(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA25(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA26(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA26(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA27(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA27(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA28(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA28(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA29(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA29(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA30(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA30(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA31(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA31(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA32(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA32(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA33(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA33(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA34(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA34(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA35(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA35(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA36(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA36(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA37(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA37(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA38(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA38(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA39(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA39(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA40(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA40(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA41(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA41(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA42(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA42(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA43(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA43(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA44(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA44(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA45(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA45(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA46(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA46(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA47(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA47(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA48(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA48(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA49(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA49(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 +DNA50(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) -> DNA50(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) kliIII2 + +# ligase dissociation +# simple +DNA1(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA1(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA2(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA2(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA3(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA3(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA4(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA4(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA5(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA5(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA6(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA6(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA7(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA7(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA8(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA8(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA9(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA9(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA10(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA10(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA11(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA11(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA12(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA12(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA13(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA13(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA14(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA14(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA15(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA15(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA16(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA16(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA17(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA17(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA18(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA18(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA19(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA19(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA20(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA20(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA21(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA21(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA22(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA22(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA23(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA23(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA24(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA24(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA25(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA25(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA26(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA26(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA27(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA27(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA28(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA28(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA29(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA29(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA30(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA30(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA31(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA31(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA32(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA32(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA33(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA33(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA34(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA34(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA35(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA35(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA36(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA36(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA37(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA37(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA38(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA38(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA39(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA39(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA40(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA40(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA41(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA41(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA42(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA42(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA43(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA43(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA44(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA44(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA45(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA45(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA46(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA46(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA47(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA47(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA48(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA48(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA49(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA49(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +DNA50(site!1~sdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA50(site!1~sdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII1 +# complex +DNA1(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA1(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA2(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA2(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA3(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA3(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA4(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA4(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA5(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA5(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA6(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA6(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA7(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA7(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA8(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA8(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA9(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA9(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA10(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA10(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA11(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA11(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA12(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA12(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA13(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA13(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA14(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA14(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA15(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA15(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA16(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA16(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA17(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA17(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA18(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA18(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA19(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA19(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA20(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA20(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA21(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA21(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA22(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA22(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA23(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA23(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA24(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA24(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA25(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA25(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA26(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA26(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA27(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA27(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA28(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA28(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA29(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA29(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA30(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA30(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA31(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA31(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA32(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA32(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA33(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA33(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA34(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA34(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA35(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA35(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA36(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA36(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA37(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA37(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA38(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA38(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA39(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA39(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA40(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA40(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA41(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA41(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA42(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA42(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA43(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA43(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA44(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA44(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA45(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA45(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA46(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA46(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA47(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA47(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA48(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA48(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA49(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA49(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 +DNA50(site!1~cdsb).PARP(dna!1,liIII!2).LiIII(PARP!2) -> DNA50(site!1~cdsb).PARP(dna!1,liIII) + LiIII(PARP) kdliIII2 + +# liIII repair +# accurate repair simple +DNA1(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA1(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA2(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA2(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA3(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA3(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA4(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA4(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA5(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA5(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA6(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA6(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA7(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA7(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA8(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA8(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA9(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA9(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA10(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA10(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA11(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA11(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA12(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA12(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA13(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA13(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA14(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA14(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA15(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA15(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA16(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA16(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA17(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA17(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA18(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA18(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA19(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA19(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA20(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA20(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA21(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA21(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA22(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA22(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA23(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA23(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA24(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA24(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA25(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA25(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA26(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA26(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA27(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA27(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA28(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA28(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA29(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA29(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA30(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA30(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA31(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA31(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA32(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA32(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA33(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA33(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA34(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA34(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA35(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA35(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA36(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA36(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA37(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA37(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA38(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA38(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA39(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA39(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA40(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA40(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA41(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA41(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA42(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA42(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA43(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA43(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA44(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA44(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA45(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA45(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA46(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA46(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA47(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA47(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA48(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA48(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA49(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA49(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +DNA50(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA50(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII1 +# accurate repair complex +DNA1(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA1(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA2(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA2(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA3(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA3(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA4(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA4(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA5(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA5(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA6(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA6(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA7(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA7(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA8(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA8(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA9(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA9(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA10(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA10(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA11(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA11(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA12(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA12(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA13(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA13(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA14(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA14(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA15(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA15(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA16(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA16(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA17(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA17(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA18(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA18(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA19(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA19(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA20(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA20(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA21(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA21(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA22(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA22(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA23(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA23(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA24(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA24(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA25(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA25(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA26(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA26(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA27(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA27(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA28(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA28(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA29(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA29(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA30(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA30(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA31(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA31(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA32(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA32(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA33(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA33(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA34(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA34(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA35(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA35(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA36(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA36(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA37(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA37(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA38(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA38(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA39(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA39(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA40(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA40(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA41(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA41(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA42(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA42(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA43(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA43(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA44(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA44(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA45(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA45(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA46(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA46(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA47(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA47(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA48(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA48(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA49(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA49(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 +DNA50(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA50(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII2 + +# inaccurate repairsimple +DNA1(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA1(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA2(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA2(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA3(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA3(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA4(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA4(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA5(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA5(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA6(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA6(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA7(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA7(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA8(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA8(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA9(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA9(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA10(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA10(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA11(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA11(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA12(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA12(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA13(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA13(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA14(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA14(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA15(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA15(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA16(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA16(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA17(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA17(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA18(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA18(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA19(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA19(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA20(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA20(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA21(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA21(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA22(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA22(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA23(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA23(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA24(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA24(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA25(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA25(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA26(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA26(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA27(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA27(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA28(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA28(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA29(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA29(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA30(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA30(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA31(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA31(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA32(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA32(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA33(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA33(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA34(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA34(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA35(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA35(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA36(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA36(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA37(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA37(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA38(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA38(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA39(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA39(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA40(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA40(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA41(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA41(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA42(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA42(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA43(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA43(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA44(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA44(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA45(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA45(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA46(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA46(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA47(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA47(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA48(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA48(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA49(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA49(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +DNA50(site!1~sdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA50(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII3 +# inaccurate repair complex +DNA1(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA1(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA2(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA2(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA3(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA3(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA4(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA4(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA5(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA5(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA6(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA6(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA7(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA7(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA8(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA8(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA9(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA9(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA10(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA10(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA11(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA11(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA12(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA12(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA13(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA13(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA14(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA14(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA15(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA15(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA16(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA16(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA17(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA17(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA18(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA18(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA19(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA19(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA20(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA20(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA21(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA21(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA22(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA22(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA23(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA23(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA24(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA24(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA25(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA25(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA26(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA26(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA27(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA27(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA28(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA28(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA29(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA29(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA30(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA30(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA31(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA31(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA32(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA32(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA33(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA33(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA34(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA34(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA35(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA35(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA36(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA36(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA37(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA37(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA38(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA38(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA39(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA39(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA40(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA40(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA41(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA41(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA42(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA42(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA43(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA43(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA44(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA44(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA45(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA45(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA46(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA46(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA47(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA47(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA48(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA48(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA49(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA49(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 +DNA50(site!1~cdsb,h2ax!3~foc).PARP(dna!1,liIII!2).LiIII(PARP!2).ATM(h2ax!3) -> DNA50(site~ok,h2ax!1~foc).ATM(h2ax!1) + PARP(dna,liIII) + LiIII(PARP) kfixIII4 + +# ATM Activation +DNA1(site!?~sdsb) + ATM(state~0,h2ax) -> DNA1(site!?~sdsb) + ATM(state~1,h2ax) kATMact +DNA2(site!?~sdsb) + ATM(state~0,h2ax) -> DNA2(site!?~sdsb) + ATM(state~2,h2ax) kATMact +DNA3(site!?~sdsb) + ATM(state~0,h2ax) -> DNA3(site!?~sdsb) + ATM(state~3,h2ax) kATMact +DNA4(site!?~sdsb) + ATM(state~0,h2ax) -> DNA4(site!?~sdsb) + ATM(state~4,h2ax) kATMact +DNA5(site!?~sdsb) + ATM(state~0,h2ax) -> DNA5(site!?~sdsb) + ATM(state~5,h2ax) kATMact +DNA6(site!?~sdsb) + ATM(state~0,h2ax) -> DNA6(site!?~sdsb) + ATM(state~6,h2ax) kATMact +DNA7(site!?~sdsb) + ATM(state~0,h2ax) -> DNA7(site!?~sdsb) + ATM(state~7,h2ax) kATMact +DNA8(site!?~sdsb) + ATM(state~0,h2ax) -> DNA8(site!?~sdsb) + ATM(state~8,h2ax) kATMact +DNA9(site!?~sdsb) + ATM(state~0,h2ax) -> DNA9(site!?~sdsb) + ATM(state~9,h2ax) kATMact +DNA10(site!?~sdsb) + ATM(state~0,h2ax) -> DNA10(site!?~sdsb) + ATM(state~10,h2ax) kATMact +DNA11(site!?~sdsb) + ATM(state~0,h2ax) -> DNA11(site!?~sdsb) + ATM(state~11,h2ax) kATMact +DNA12(site!?~sdsb) + ATM(state~0,h2ax) -> DNA12(site!?~sdsb) + ATM(state~12,h2ax) kATMact +DNA13(site!?~sdsb) + ATM(state~0,h2ax) -> DNA13(site!?~sdsb) + ATM(state~13,h2ax) kATMact +DNA14(site!?~sdsb) + ATM(state~0,h2ax) -> DNA14(site!?~sdsb) + ATM(state~14,h2ax) kATMact +DNA15(site!?~sdsb) + ATM(state~0,h2ax) -> DNA15(site!?~sdsb) + ATM(state~15,h2ax) kATMact +DNA16(site!?~sdsb) + ATM(state~0,h2ax) -> DNA16(site!?~sdsb) + ATM(state~16,h2ax) kATMact +DNA17(site!?~sdsb) + ATM(state~0,h2ax) -> DNA17(site!?~sdsb) + ATM(state~17,h2ax) kATMact +DNA18(site!?~sdsb) + ATM(state~0,h2ax) -> DNA18(site!?~sdsb) + ATM(state~18,h2ax) kATMact +DNA19(site!?~sdsb) + ATM(state~0,h2ax) -> DNA19(site!?~sdsb) + ATM(state~19,h2ax) kATMact +DNA20(site!?~sdsb) + ATM(state~0,h2ax) -> DNA20(site!?~sdsb) + ATM(state~20,h2ax) kATMact +DNA21(site!?~sdsb) + ATM(state~0,h2ax) -> DNA21(site!?~sdsb) + ATM(state~21,h2ax) kATMact +DNA22(site!?~sdsb) + ATM(state~0,h2ax) -> DNA22(site!?~sdsb) + ATM(state~22,h2ax) kATMact +DNA23(site!?~sdsb) + ATM(state~0,h2ax) -> DNA23(site!?~sdsb) + ATM(state~23,h2ax) kATMact +DNA24(site!?~sdsb) + ATM(state~0,h2ax) -> DNA24(site!?~sdsb) + ATM(state~24,h2ax) kATMact +DNA25(site!?~sdsb) + ATM(state~0,h2ax) -> DNA25(site!?~sdsb) + ATM(state~25,h2ax) kATMact +DNA26(site!?~sdsb) + ATM(state~0,h2ax) -> DNA26(site!?~sdsb) + ATM(state~26,h2ax) kATMact +DNA27(site!?~sdsb) + ATM(state~0,h2ax) -> DNA27(site!?~sdsb) + ATM(state~27,h2ax) kATMact +DNA28(site!?~sdsb) + ATM(state~0,h2ax) -> DNA28(site!?~sdsb) + ATM(state~28,h2ax) kATMact +DNA29(site!?~sdsb) + ATM(state~0,h2ax) -> DNA29(site!?~sdsb) + ATM(state~29,h2ax) kATMact +DNA30(site!?~sdsb) + ATM(state~0,h2ax) -> DNA30(site!?~sdsb) + ATM(state~30,h2ax) kATMact +DNA31(site!?~sdsb) + ATM(state~0,h2ax) -> DNA31(site!?~sdsb) + ATM(state~31,h2ax) kATMact +DNA32(site!?~sdsb) + ATM(state~0,h2ax) -> DNA32(site!?~sdsb) + ATM(state~32,h2ax) kATMact +DNA33(site!?~sdsb) + ATM(state~0,h2ax) -> DNA33(site!?~sdsb) + ATM(state~33,h2ax) kATMact +DNA34(site!?~sdsb) + ATM(state~0,h2ax) -> DNA34(site!?~sdsb) + ATM(state~34,h2ax) kATMact +DNA35(site!?~sdsb) + ATM(state~0,h2ax) -> DNA35(site!?~sdsb) + ATM(state~35,h2ax) kATMact +DNA36(site!?~sdsb) + ATM(state~0,h2ax) -> DNA36(site!?~sdsb) + ATM(state~36,h2ax) kATMact +DNA37(site!?~sdsb) + ATM(state~0,h2ax) -> DNA37(site!?~sdsb) + ATM(state~37,h2ax) kATMact +DNA38(site!?~sdsb) + ATM(state~0,h2ax) -> DNA38(site!?~sdsb) + ATM(state~38,h2ax) kATMact +DNA39(site!?~sdsb) + ATM(state~0,h2ax) -> DNA39(site!?~sdsb) + ATM(state~39,h2ax) kATMact +DNA40(site!?~sdsb) + ATM(state~0,h2ax) -> DNA40(site!?~sdsb) + ATM(state~40,h2ax) kATMact +DNA41(site!?~sdsb) + ATM(state~0,h2ax) -> DNA41(site!?~sdsb) + ATM(state~41,h2ax) kATMact +DNA42(site!?~sdsb) + ATM(state~0,h2ax) -> DNA42(site!?~sdsb) + ATM(state~42,h2ax) kATMact +DNA43(site!?~sdsb) + ATM(state~0,h2ax) -> DNA43(site!?~sdsb) + ATM(state~43,h2ax) kATMact +DNA44(site!?~sdsb) + ATM(state~0,h2ax) -> DNA44(site!?~sdsb) + ATM(state~44,h2ax) kATMact +DNA45(site!?~sdsb) + ATM(state~0,h2ax) -> DNA45(site!?~sdsb) + ATM(state~45,h2ax) kATMact +DNA46(site!?~sdsb) + ATM(state~0,h2ax) -> DNA46(site!?~sdsb) + ATM(state~46,h2ax) kATMact +DNA47(site!?~sdsb) + ATM(state~0,h2ax) -> DNA47(site!?~sdsb) + ATM(state~47,h2ax) kATMact +DNA48(site!?~sdsb) + ATM(state~0,h2ax) -> DNA48(site!?~sdsb) + ATM(state~48,h2ax) kATMact +DNA49(site!?~sdsb) + ATM(state~0,h2ax) -> DNA49(site!?~sdsb) + ATM(state~49,h2ax) kATMact +DNA50(site!?~sdsb) + ATM(state~0,h2ax) -> DNA50(site!?~sdsb) + ATM(state~50,h2ax) kATMact + +DNA1(site!?~cdsb) + ATM(state~0,h2ax) -> DNA1(site!?~cdsb) + ATM(state~1,h2ax) kATMact +DNA2(site!?~cdsb) + ATM(state~0,h2ax) -> DNA2(site!?~cdsb) + ATM(state~2,h2ax) kATMact +DNA3(site!?~cdsb) + ATM(state~0,h2ax) -> DNA3(site!?~cdsb) + ATM(state~3,h2ax) kATMact +DNA4(site!?~cdsb) + ATM(state~0,h2ax) -> DNA4(site!?~cdsb) + ATM(state~4,h2ax) kATMact +DNA5(site!?~cdsb) + ATM(state~0,h2ax) -> DNA5(site!?~cdsb) + ATM(state~5,h2ax) kATMact +DNA6(site!?~cdsb) + ATM(state~0,h2ax) -> DNA6(site!?~cdsb) + ATM(state~6,h2ax) kATMact +DNA7(site!?~cdsb) + ATM(state~0,h2ax) -> DNA7(site!?~cdsb) + ATM(state~7,h2ax) kATMact +DNA8(site!?~cdsb) + ATM(state~0,h2ax) -> DNA8(site!?~cdsb) + ATM(state~8,h2ax) kATMact +DNA9(site!?~cdsb) + ATM(state~0,h2ax) -> DNA9(site!?~cdsb) + ATM(state~9,h2ax) kATMact +DNA10(site!?~cdsb) + ATM(state~0,h2ax) -> DNA10(site!?~cdsb) + ATM(state~10,h2ax) kATMact +DNA11(site!?~cdsb) + ATM(state~0,h2ax) -> DNA11(site!?~cdsb) + ATM(state~12,h2ax) kATMact +DNA12(site!?~cdsb) + ATM(state~0,h2ax) -> DNA12(site!?~cdsb) + ATM(state~13,h2ax) kATMact +DNA13(site!?~cdsb) + ATM(state~0,h2ax) -> DNA13(site!?~cdsb) + ATM(state~13,h2ax) kATMact +DNA14(site!?~cdsb) + ATM(state~0,h2ax) -> DNA14(site!?~cdsb) + ATM(state~14,h2ax) kATMact +DNA15(site!?~cdsb) + ATM(state~0,h2ax) -> DNA15(site!?~cdsb) + ATM(state~15,h2ax) kATMact +DNA16(site!?~cdsb) + ATM(state~0,h2ax) -> DNA16(site!?~cdsb) + ATM(state~16,h2ax) kATMact +DNA17(site!?~cdsb) + ATM(state~0,h2ax) -> DNA17(site!?~cdsb) + ATM(state~17,h2ax) kATMact +DNA18(site!?~cdsb) + ATM(state~0,h2ax) -> DNA18(site!?~cdsb) + ATM(state~18,h2ax) kATMact +DNA19(site!?~cdsb) + ATM(state~0,h2ax) -> DNA19(site!?~cdsb) + ATM(state~19,h2ax) kATMact +DNA20(site!?~cdsb) + ATM(state~0,h2ax) -> DNA20(site!?~cdsb) + ATM(state~20,h2ax) kATMact +DNA21(site!?~cdsb) + ATM(state~0,h2ax) -> DNA21(site!?~cdsb) + ATM(state~21,h2ax) kATMact +DNA22(site!?~cdsb) + ATM(state~0,h2ax) -> DNA22(site!?~cdsb) + ATM(state~22,h2ax) kATMact +DNA23(site!?~cdsb) + ATM(state~0,h2ax) -> DNA23(site!?~cdsb) + ATM(state~23,h2ax) kATMact +DNA24(site!?~cdsb) + ATM(state~0,h2ax) -> DNA24(site!?~cdsb) + ATM(state~24,h2ax) kATMact +DNA25(site!?~cdsb) + ATM(state~0,h2ax) -> DNA25(site!?~cdsb) + ATM(state~25,h2ax) kATMact +DNA26(site!?~cdsb) + ATM(state~0,h2ax) -> DNA26(site!?~cdsb) + ATM(state~26,h2ax) kATMact +DNA27(site!?~cdsb) + ATM(state~0,h2ax) -> DNA27(site!?~cdsb) + ATM(state~27,h2ax) kATMact +DNA28(site!?~cdsb) + ATM(state~0,h2ax) -> DNA28(site!?~cdsb) + ATM(state~28,h2ax) kATMact +DNA29(site!?~cdsb) + ATM(state~0,h2ax) -> DNA29(site!?~cdsb) + ATM(state~29,h2ax) kATMact +DNA30(site!?~cdsb) + ATM(state~0,h2ax) -> DNA30(site!?~cdsb) + ATM(state~30,h2ax) kATMact +DNA31(site!?~cdsb) + ATM(state~0,h2ax) -> DNA31(site!?~cdsb) + ATM(state~31,h2ax) kATMact +DNA32(site!?~cdsb) + ATM(state~0,h2ax) -> DNA32(site!?~cdsb) + ATM(state~32,h2ax) kATMact +DNA33(site!?~cdsb) + ATM(state~0,h2ax) -> DNA33(site!?~cdsb) + ATM(state~33,h2ax) kATMact +DNA34(site!?~cdsb) + ATM(state~0,h2ax) -> DNA34(site!?~cdsb) + ATM(state~34,h2ax) kATMact +DNA35(site!?~cdsb) + ATM(state~0,h2ax) -> DNA35(site!?~cdsb) + ATM(state~35,h2ax) kATMact +DNA36(site!?~cdsb) + ATM(state~0,h2ax) -> DNA36(site!?~cdsb) + ATM(state~36,h2ax) kATMact +DNA37(site!?~cdsb) + ATM(state~0,h2ax) -> DNA37(site!?~cdsb) + ATM(state~37,h2ax) kATMact +DNA38(site!?~cdsb) + ATM(state~0,h2ax) -> DNA38(site!?~cdsb) + ATM(state~38,h2ax) kATMact +DNA39(site!?~cdsb) + ATM(state~0,h2ax) -> DNA39(site!?~cdsb) + ATM(state~39,h2ax) kATMact +DNA40(site!?~cdsb) + ATM(state~0,h2ax) -> DNA40(site!?~cdsb) + ATM(state~40,h2ax) kATMact +DNA41(site!?~cdsb) + ATM(state~0,h2ax) -> DNA41(site!?~cdsb) + ATM(state~41,h2ax) kATMact +DNA42(site!?~cdsb) + ATM(state~0,h2ax) -> DNA42(site!?~cdsb) + ATM(state~42,h2ax) kATMact +DNA43(site!?~cdsb) + ATM(state~0,h2ax) -> DNA43(site!?~cdsb) + ATM(state~43,h2ax) kATMact +DNA44(site!?~cdsb) + ATM(state~0,h2ax) -> DNA44(site!?~cdsb) + ATM(state~44,h2ax) kATMact +DNA45(site!?~cdsb) + ATM(state~0,h2ax) -> DNA45(site!?~cdsb) + ATM(state~45,h2ax) kATMact +DNA46(site!?~cdsb) + ATM(state~0,h2ax) -> DNA46(site!?~cdsb) + ATM(state~46,h2ax) kATMact +DNA47(site!?~cdsb) + ATM(state~0,h2ax) -> DNA47(site!?~cdsb) + ATM(state~47,h2ax) kATMact +DNA48(site!?~cdsb) + ATM(state~0,h2ax) -> DNA48(site!?~cdsb) + ATM(state~48,h2ax) kATMact +DNA49(site!?~cdsb) + ATM(state~0,h2ax) -> DNA49(site!?~cdsb) + ATM(state~49,h2ax) kATMact +DNA50(site!?~cdsb) + ATM(state~0,h2ax) -> DNA50(site!?~cdsb) + ATM(state~50,h2ax) kATMact + +# ATM Inactivation +ATM(state~1,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~2,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~3,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~4,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~5,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~6,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~7,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~8,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~9,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~10,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~11,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~12,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~13,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~14,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~15,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~16,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~17,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~18,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~19,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~20,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~21,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~22,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~23,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~24,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~25,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~26,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~27,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~28,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~29,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~30,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~31,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~32,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~33,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~34,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~35,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~36,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~37,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~38,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~39,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~40,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~41,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~42,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~43,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~44,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~45,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~46,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~47,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~48,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~49,h2ax) -> ATM(state~0,h2ax) kATMinact +ATM(state~50,h2ax) -> ATM(state~0,h2ax) kATMinact + + +# histone2ax +# histone phosphorylation +# simple +DNA1(site!?~sdsb,h2ax~u) + ATM(state~1,h2ax) -> DNA1(site!?~sdsb,h2ax~p) + ATM(state~1,h2ax) kh2axp1 +DNA2(site!?~sdsb,h2ax~u) + ATM(state~2,h2ax) -> DNA2(site!?~sdsb,h2ax~p) + ATM(state~2,h2ax) kh2axp1 +DNA3(site!?~sdsb,h2ax~u) + ATM(state~3,h2ax) -> DNA3(site!?~sdsb,h2ax~p) + ATM(state~3,h2ax) kh2axp1 +DNA4(site!?~sdsb,h2ax~u) + ATM(state~4,h2ax) -> DNA4(site!?~sdsb,h2ax~p) + ATM(state~4,h2ax) kh2axp1 +DNA5(site!?~sdsb,h2ax~u) + ATM(state~5,h2ax) -> DNA5(site!?~sdsb,h2ax~p) + ATM(state~5,h2ax) kh2axp1 +DNA6(site!?~sdsb,h2ax~u) + ATM(state~6,h2ax) -> DNA6(site!?~sdsb,h2ax~p) + ATM(state~6,h2ax) kh2axp1 +DNA7(site!?~sdsb,h2ax~u) + ATM(state~7,h2ax) -> DNA7(site!?~sdsb,h2ax~p) + ATM(state~7,h2ax) kh2axp1 +DNA8(site!?~sdsb,h2ax~u) + ATM(state~8,h2ax) -> DNA8(site!?~sdsb,h2ax~p) + ATM(state~8,h2ax) kh2axp1 +DNA9(site!?~sdsb,h2ax~u) + ATM(state~9,h2ax) -> DNA9(site!?~sdsb,h2ax~p) + ATM(state~9,h2ax) kh2axp1 +DNA10(site!?~sdsb,h2ax~u) + ATM(state~10,h2ax) -> DNA10(site!?~sdsb,h2ax~p) + ATM(state~10,h2ax) kh2axp1 +DNA11(site!?~sdsb,h2ax~u) + ATM(state~11,h2ax) -> DNA11(site!?~sdsb,h2ax~p) + ATM(state~11,h2ax) kh2axp1 +DNA12(site!?~sdsb,h2ax~u) + ATM(state~12,h2ax) -> DNA12(site!?~sdsb,h2ax~p) + ATM(state~12,h2ax) kh2axp1 +DNA13(site!?~sdsb,h2ax~u) + ATM(state~13,h2ax) -> DNA13(site!?~sdsb,h2ax~p) + ATM(state~13,h2ax) kh2axp1 +DNA14(site!?~sdsb,h2ax~u) + ATM(state~14,h2ax) -> DNA14(site!?~sdsb,h2ax~p) + ATM(state~14,h2ax) kh2axp1 +DNA15(site!?~sdsb,h2ax~u) + ATM(state~15,h2ax) -> DNA15(site!?~sdsb,h2ax~p) + ATM(state~15,h2ax) kh2axp1 +DNA16(site!?~sdsb,h2ax~u) + ATM(state~16,h2ax) -> DNA16(site!?~sdsb,h2ax~p) + ATM(state~16,h2ax) kh2axp1 +DNA17(site!?~sdsb,h2ax~u) + ATM(state~17,h2ax) -> DNA17(site!?~sdsb,h2ax~p) + ATM(state~17,h2ax) kh2axp1 +DNA18(site!?~sdsb,h2ax~u) + ATM(state~18,h2ax) -> DNA18(site!?~sdsb,h2ax~p) + ATM(state~18,h2ax) kh2axp1 +DNA19(site!?~sdsb,h2ax~u) + ATM(state~19,h2ax) -> DNA19(site!?~sdsb,h2ax~p) + ATM(state~19,h2ax) kh2axp1 +DNA20(site!?~sdsb,h2ax~u) + ATM(state~20,h2ax) -> DNA20(site!?~sdsb,h2ax~p) + ATM(state~20,h2ax) kh2axp1 +DNA21(site!?~sdsb,h2ax~u) + ATM(state~21,h2ax) -> DNA21(site!?~sdsb,h2ax~p) + ATM(state~21,h2ax) kh2axp1 +DNA22(site!?~sdsb,h2ax~u) + ATM(state~22,h2ax) -> DNA22(site!?~sdsb,h2ax~p) + ATM(state~22,h2ax) kh2axp1 +DNA23(site!?~sdsb,h2ax~u) + ATM(state~23,h2ax) -> DNA23(site!?~sdsb,h2ax~p) + ATM(state~23,h2ax) kh2axp1 +DNA24(site!?~sdsb,h2ax~u) + ATM(state~24,h2ax) -> DNA24(site!?~sdsb,h2ax~p) + ATM(state~24,h2ax) kh2axp1 +DNA25(site!?~sdsb,h2ax~u) + ATM(state~25,h2ax) -> DNA25(site!?~sdsb,h2ax~p) + ATM(state~25,h2ax) kh2axp1 +DNA26(site!?~sdsb,h2ax~u) + ATM(state~26,h2ax) -> DNA26(site!?~sdsb,h2ax~p) + ATM(state~26,h2ax) kh2axp1 +DNA27(site!?~sdsb,h2ax~u) + ATM(state~27,h2ax) -> DNA27(site!?~sdsb,h2ax~p) + ATM(state~27,h2ax) kh2axp1 +DNA28(site!?~sdsb,h2ax~u) + ATM(state~28,h2ax) -> DNA28(site!?~sdsb,h2ax~p) + ATM(state~28,h2ax) kh2axp1 +DNA29(site!?~sdsb,h2ax~u) + ATM(state~29,h2ax) -> DNA29(site!?~sdsb,h2ax~p) + ATM(state~29,h2ax) kh2axp1 +DNA30(site!?~sdsb,h2ax~u) + ATM(state~30,h2ax) -> DNA30(site!?~sdsb,h2ax~p) + ATM(state~30,h2ax) kh2axp1 +DNA31(site!?~sdsb,h2ax~u) + ATM(state~31,h2ax) -> DNA31(site!?~sdsb,h2ax~p) + ATM(state~31,h2ax) kh2axp1 +DNA32(site!?~sdsb,h2ax~u) + ATM(state~32,h2ax) -> DNA32(site!?~sdsb,h2ax~p) + ATM(state~32,h2ax) kh2axp1 +DNA33(site!?~sdsb,h2ax~u) + ATM(state~33,h2ax) -> DNA33(site!?~sdsb,h2ax~p) + ATM(state~33,h2ax) kh2axp1 +DNA34(site!?~sdsb,h2ax~u) + ATM(state~34,h2ax) -> DNA34(site!?~sdsb,h2ax~p) + ATM(state~34,h2ax) kh2axp1 +DNA35(site!?~sdsb,h2ax~u) + ATM(state~35,h2ax) -> DNA35(site!?~sdsb,h2ax~p) + ATM(state~35,h2ax) kh2axp1 +DNA36(site!?~sdsb,h2ax~u) + ATM(state~36,h2ax) -> DNA36(site!?~sdsb,h2ax~p) + ATM(state~36,h2ax) kh2axp1 +DNA37(site!?~sdsb,h2ax~u) + ATM(state~37,h2ax) -> DNA37(site!?~sdsb,h2ax~p) + ATM(state~37,h2ax) kh2axp1 +DNA38(site!?~sdsb,h2ax~u) + ATM(state~38,h2ax) -> DNA38(site!?~sdsb,h2ax~p) + ATM(state~38,h2ax) kh2axp1 +DNA39(site!?~sdsb,h2ax~u) + ATM(state~39,h2ax) -> DNA39(site!?~sdsb,h2ax~p) + ATM(state~39,h2ax) kh2axp1 +DNA40(site!?~sdsb,h2ax~u) + ATM(state~40,h2ax) -> DNA40(site!?~sdsb,h2ax~p) + ATM(state~40,h2ax) kh2axp1 +DNA41(site!?~sdsb,h2ax~u) + ATM(state~41,h2ax) -> DNA41(site!?~sdsb,h2ax~p) + ATM(state~41,h2ax) kh2axp1 +DNA42(site!?~sdsb,h2ax~u) + ATM(state~42,h2ax) -> DNA42(site!?~sdsb,h2ax~p) + ATM(state~42,h2ax) kh2axp1 +DNA43(site!?~sdsb,h2ax~u) + ATM(state~43,h2ax) -> DNA43(site!?~sdsb,h2ax~p) + ATM(state~43,h2ax) kh2axp1 +DNA44(site!?~sdsb,h2ax~u) + ATM(state~44,h2ax) -> DNA44(site!?~sdsb,h2ax~p) + ATM(state~44,h2ax) kh2axp1 +DNA45(site!?~sdsb,h2ax~u) + ATM(state~45,h2ax) -> DNA45(site!?~sdsb,h2ax~p) + ATM(state~45,h2ax) kh2axp1 +DNA46(site!?~sdsb,h2ax~u) + ATM(state~46,h2ax) -> DNA46(site!?~sdsb,h2ax~p) + ATM(state~46,h2ax) kh2axp1 +DNA47(site!?~sdsb,h2ax~u) + ATM(state~47,h2ax) -> DNA47(site!?~sdsb,h2ax~p) + ATM(state~47,h2ax) kh2axp1 +DNA48(site!?~sdsb,h2ax~u) + ATM(state~48,h2ax) -> DNA48(site!?~sdsb,h2ax~p) + ATM(state~48,h2ax) kh2axp1 +DNA49(site!?~sdsb,h2ax~u) + ATM(state~49,h2ax) -> DNA49(site!?~sdsb,h2ax~p) + ATM(state~49,h2ax) kh2axp1 +DNA50(site!?~sdsb,h2ax~u) + ATM(state~50,h2ax) -> DNA50(site!?~sdsb,h2ax~p) + ATM(state~50,h2ax) kh2axp1 +# complex +DNA1(site!?~cdsb,h2ax~u) + ATM(state~1,h2ax) -> DNA1(site!?~cdsb,h2ax~p) + ATM(state~1,h2ax) kh2axp1 +DNA2(site!?~cdsb,h2ax~u) + ATM(state~2,h2ax) -> DNA2(site!?~cdsb,h2ax~p) + ATM(state~2,h2ax) kh2axp1 +DNA3(site!?~cdsb,h2ax~u) + ATM(state~3,h2ax) -> DNA3(site!?~cdsb,h2ax~p) + ATM(state~3,h2ax) kh2axp1 +DNA4(site!?~cdsb,h2ax~u) + ATM(state~4,h2ax) -> DNA4(site!?~cdsb,h2ax~p) + ATM(state~4,h2ax) kh2axp1 +DNA5(site!?~cdsb,h2ax~u) + ATM(state~5,h2ax) -> DNA5(site!?~cdsb,h2ax~p) + ATM(state~5,h2ax) kh2axp1 +DNA6(site!?~cdsb,h2ax~u) + ATM(state~6,h2ax) -> DNA6(site!?~cdsb,h2ax~p) + ATM(state~6,h2ax) kh2axp1 +DNA7(site!?~cdsb,h2ax~u) + ATM(state~7,h2ax) -> DNA7(site!?~cdsb,h2ax~p) + ATM(state~7,h2ax) kh2axp1 +DNA8(site!?~cdsb,h2ax~u) + ATM(state~8,h2ax) -> DNA8(site!?~cdsb,h2ax~p) + ATM(state~8,h2ax) kh2axp1 +DNA9(site!?~cdsb,h2ax~u) + ATM(state~9,h2ax) -> DNA9(site!?~cdsb,h2ax~p) + ATM(state~9,h2ax) kh2axp1 +DNA10(site!?~cdsb,h2ax~u) + ATM(state~10,h2ax) -> DNA10(site!?~cdsb,h2ax~p) + ATM(state~10,h2ax) kh2axp1 +DNA11(site!?~cdsb,h2ax~u) + ATM(state~11,h2ax) -> DNA11(site!?~cdsb,h2ax~p) + ATM(state~11,h2ax) kh2axp1 +DNA12(site!?~cdsb,h2ax~u) + ATM(state~12,h2ax) -> DNA12(site!?~cdsb,h2ax~p) + ATM(state~12,h2ax) kh2axp1 +DNA13(site!?~cdsb,h2ax~u) + ATM(state~13,h2ax) -> DNA13(site!?~cdsb,h2ax~p) + ATM(state~13,h2ax) kh2axp1 +DNA14(site!?~cdsb,h2ax~u) + ATM(state~14,h2ax) -> DNA14(site!?~cdsb,h2ax~p) + ATM(state~14,h2ax) kh2axp1 +DNA15(site!?~cdsb,h2ax~u) + ATM(state~15,h2ax) -> DNA15(site!?~cdsb,h2ax~p) + ATM(state~15,h2ax) kh2axp1 +DNA16(site!?~cdsb,h2ax~u) + ATM(state~16,h2ax) -> DNA16(site!?~cdsb,h2ax~p) + ATM(state~16,h2ax) kh2axp1 +DNA17(site!?~cdsb,h2ax~u) + ATM(state~17,h2ax) -> DNA17(site!?~cdsb,h2ax~p) + ATM(state~17,h2ax) kh2axp1 +DNA18(site!?~cdsb,h2ax~u) + ATM(state~18,h2ax) -> DNA18(site!?~cdsb,h2ax~p) + ATM(state~18,h2ax) kh2axp1 +DNA19(site!?~cdsb,h2ax~u) + ATM(state~19,h2ax) -> DNA19(site!?~cdsb,h2ax~p) + ATM(state~19,h2ax) kh2axp1 +DNA20(site!?~cdsb,h2ax~u) + ATM(state~20,h2ax) -> DNA20(site!?~cdsb,h2ax~p) + ATM(state~20,h2ax) kh2axp1 +DNA21(site!?~cdsb,h2ax~u) + ATM(state~21,h2ax) -> DNA21(site!?~cdsb,h2ax~p) + ATM(state~21,h2ax) kh2axp1 +DNA22(site!?~cdsb,h2ax~u) + ATM(state~22,h2ax) -> DNA22(site!?~cdsb,h2ax~p) + ATM(state~22,h2ax) kh2axp1 +DNA23(site!?~cdsb,h2ax~u) + ATM(state~23,h2ax) -> DNA23(site!?~cdsb,h2ax~p) + ATM(state~23,h2ax) kh2axp1 +DNA24(site!?~cdsb,h2ax~u) + ATM(state~24,h2ax) -> DNA24(site!?~cdsb,h2ax~p) + ATM(state~24,h2ax) kh2axp1 +DNA25(site!?~cdsb,h2ax~u) + ATM(state~25,h2ax) -> DNA25(site!?~cdsb,h2ax~p) + ATM(state~25,h2ax) kh2axp1 +DNA26(site!?~cdsb,h2ax~u) + ATM(state~26,h2ax) -> DNA26(site!?~cdsb,h2ax~p) + ATM(state~26,h2ax) kh2axp1 +DNA27(site!?~cdsb,h2ax~u) + ATM(state~27,h2ax) -> DNA27(site!?~cdsb,h2ax~p) + ATM(state~27,h2ax) kh2axp1 +DNA28(site!?~cdsb,h2ax~u) + ATM(state~28,h2ax) -> DNA28(site!?~cdsb,h2ax~p) + ATM(state~28,h2ax) kh2axp1 +DNA29(site!?~cdsb,h2ax~u) + ATM(state~29,h2ax) -> DNA29(site!?~cdsb,h2ax~p) + ATM(state~29,h2ax) kh2axp1 +DNA30(site!?~cdsb,h2ax~u) + ATM(state~30,h2ax) -> DNA30(site!?~cdsb,h2ax~p) + ATM(state~30,h2ax) kh2axp1 +DNA31(site!?~cdsb,h2ax~u) + ATM(state~31,h2ax) -> DNA31(site!?~cdsb,h2ax~p) + ATM(state~31,h2ax) kh2axp1 +DNA32(site!?~cdsb,h2ax~u) + ATM(state~32,h2ax) -> DNA32(site!?~cdsb,h2ax~p) + ATM(state~32,h2ax) kh2axp1 +DNA33(site!?~cdsb,h2ax~u) + ATM(state~33,h2ax) -> DNA33(site!?~cdsb,h2ax~p) + ATM(state~33,h2ax) kh2axp1 +DNA34(site!?~cdsb,h2ax~u) + ATM(state~34,h2ax) -> DNA34(site!?~cdsb,h2ax~p) + ATM(state~34,h2ax) kh2axp1 +DNA35(site!?~cdsb,h2ax~u) + ATM(state~35,h2ax) -> DNA35(site!?~cdsb,h2ax~p) + ATM(state~35,h2ax) kh2axp1 +DNA36(site!?~cdsb,h2ax~u) + ATM(state~36,h2ax) -> DNA36(site!?~cdsb,h2ax~p) + ATM(state~36,h2ax) kh2axp1 +DNA37(site!?~cdsb,h2ax~u) + ATM(state~37,h2ax) -> DNA37(site!?~cdsb,h2ax~p) + ATM(state~37,h2ax) kh2axp1 +DNA38(site!?~cdsb,h2ax~u) + ATM(state~38,h2ax) -> DNA38(site!?~cdsb,h2ax~p) + ATM(state~38,h2ax) kh2axp1 +DNA39(site!?~cdsb,h2ax~u) + ATM(state~39,h2ax) -> DNA39(site!?~cdsb,h2ax~p) + ATM(state~39,h2ax) kh2axp1 +DNA40(site!?~cdsb,h2ax~u) + ATM(state~40,h2ax) -> DNA40(site!?~cdsb,h2ax~p) + ATM(state~40,h2ax) kh2axp1 +DNA41(site!?~cdsb,h2ax~u) + ATM(state~41,h2ax) -> DNA41(site!?~cdsb,h2ax~p) + ATM(state~41,h2ax) kh2axp1 +DNA42(site!?~cdsb,h2ax~u) + ATM(state~42,h2ax) -> DNA42(site!?~cdsb,h2ax~p) + ATM(state~42,h2ax) kh2axp1 +DNA43(site!?~cdsb,h2ax~u) + ATM(state~43,h2ax) -> DNA43(site!?~cdsb,h2ax~p) + ATM(state~43,h2ax) kh2axp1 +DNA44(site!?~cdsb,h2ax~u) + ATM(state~44,h2ax) -> DNA44(site!?~cdsb,h2ax~p) + ATM(state~44,h2ax) kh2axp1 +DNA45(site!?~cdsb,h2ax~u) + ATM(state~45,h2ax) -> DNA45(site!?~cdsb,h2ax~p) + ATM(state~45,h2ax) kh2axp1 +DNA46(site!?~cdsb,h2ax~u) + ATM(state~46,h2ax) -> DNA46(site!?~cdsb,h2ax~p) + ATM(state~46,h2ax) kh2axp1 +DNA47(site!?~cdsb,h2ax~u) + ATM(state~47,h2ax) -> DNA47(site!?~cdsb,h2ax~p) + ATM(state~47,h2ax) kh2axp1 +DNA48(site!?~cdsb,h2ax~u) + ATM(state~48,h2ax) -> DNA48(site!?~cdsb,h2ax~p) + ATM(state~48,h2ax) kh2axp1 +DNA49(site!?~cdsb,h2ax~u) + ATM(state~49,h2ax) -> DNA49(site!?~cdsb,h2ax~p) + ATM(state~49,h2ax) kh2axp1 +DNA50(site!?~cdsb,h2ax~u) + ATM(state~50,h2ax) -> DNA50(site!?~cdsb,h2ax~p) + ATM(state~50,h2ax) kh2axp1 + +#DNA-PKcs Phos +DNA1(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA1(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA2(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA2(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA3(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA3(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA4(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA4(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA5(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA5(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA6(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA6(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA7(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA7(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA8(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA8(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA9(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA9(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA10(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA10(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA11(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA11(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA12(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA12(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA13(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA13(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA14(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA14(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA15(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA15(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA16(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA16(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA17(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA17(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA18(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA18(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA19(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA19(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA20(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA20(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA21(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA21(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA22(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA22(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA23(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA23(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA24(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA24(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA25(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA25(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA26(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA26(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA27(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA27(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA28(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA28(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA29(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA29(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA30(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA30(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA31(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA31(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA32(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA32(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA33(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA33(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA34(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA34(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA35(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA35(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA36(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA36(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA37(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA37(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA38(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA38(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA39(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA39(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA40(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA40(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA41(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA41(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA42(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA42(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA43(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA43(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA44(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA44(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA45(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA45(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA46(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA46(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA47(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA47(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA48(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA48(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA49(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA49(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA50(site!1~sdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA50(site!1~sdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 + +DNA1(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA1(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA2(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA2(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA3(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA3(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA4(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA4(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA5(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA5(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA6(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA6(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA7(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA7(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA8(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA8(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA9(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA9(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA10(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA10(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA11(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA11(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA12(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA12(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA13(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA13(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA14(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA14(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA15(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA15(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA16(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA16(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA17(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA17(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA18(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA18(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA19(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA19(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA20(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA20(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA21(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA21(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA22(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA22(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA23(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA23(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA24(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA24(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA25(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA25(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA26(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA26(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA27(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA27(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA28(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA28(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA29(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA29(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA30(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA30(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA31(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA31(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA32(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA32(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA33(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA33(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA34(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA34(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA35(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA35(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA36(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA36(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA37(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA37(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA38(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA38(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA39(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA39(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA40(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA40(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA41(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA41(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA42(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA42(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA43(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA43(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA44(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA44(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA45(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA45(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA46(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA46(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA47(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA47(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA48(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA48(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA49(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA49(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 +DNA50(site!1~cdsb,h2ax~u).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) -> DNA50(site!1~cdsb,h2ax~p).Ku(dna!1,cs!2).DNAPKcs(ku!2,liIV,psite~p) kh2axp2 + +#H2AX dephos +DNA1(h2ax~p) -> DNA1(h2ax~u) kh2axu +DNA2(h2ax~p) -> DNA2(h2ax~u) kh2axu +DNA3(h2ax~p) -> DNA3(h2ax~u) kh2axu +DNA4(h2ax~p) -> DNA4(h2ax~u) kh2axu +DNA5(h2ax~p) -> DNA5(h2ax~u) kh2axu +DNA6(h2ax~p) -> DNA6(h2ax~u) kh2axu +DNA7(h2ax~p) -> DNA7(h2ax~u) kh2axu +DNA8(h2ax~p) -> DNA8(h2ax~u) kh2axu +DNA9(h2ax~p) -> DNA9(h2ax~u) kh2axu +DNA10(h2ax~p) -> DNA10(h2ax~u) kh2axu +DNA11(h2ax~p) -> DNA11(h2ax~u) kh2axu +DNA12(h2ax~p) -> DNA12(h2ax~u) kh2axu +DNA13(h2ax~p) -> DNA13(h2ax~u) kh2axu +DNA14(h2ax~p) -> DNA14(h2ax~u) kh2axu +DNA15(h2ax~p) -> DNA15(h2ax~u) kh2axu +DNA16(h2ax~p) -> DNA16(h2ax~u) kh2axu +DNA17(h2ax~p) -> DNA17(h2ax~u) kh2axu +DNA18(h2ax~p) -> DNA18(h2ax~u) kh2axu +DNA19(h2ax~p) -> DNA19(h2ax~u) kh2axu +DNA20(h2ax~p) -> DNA20(h2ax~u) kh2axu +DNA21(h2ax~p) -> DNA21(h2ax~u) kh2axu +DNA22(h2ax~p) -> DNA22(h2ax~u) kh2axu +DNA23(h2ax~p) -> DNA23(h2ax~u) kh2axu +DNA24(h2ax~p) -> DNA24(h2ax~u) kh2axu +DNA25(h2ax~p) -> DNA25(h2ax~u) kh2axu +DNA26(h2ax~p) -> DNA26(h2ax~u) kh2axu +DNA27(h2ax~p) -> DNA27(h2ax~u) kh2axu +DNA28(h2ax~p) -> DNA28(h2ax~u) kh2axu +DNA29(h2ax~p) -> DNA29(h2ax~u) kh2axu +DNA30(h2ax~p) -> DNA30(h2ax~u) kh2axu +DNA31(h2ax~p) -> DNA31(h2ax~u) kh2axu +DNA32(h2ax~p) -> DNA32(h2ax~u) kh2axu +DNA33(h2ax~p) -> DNA33(h2ax~u) kh2axu +DNA34(h2ax~p) -> DNA34(h2ax~u) kh2axu +DNA35(h2ax~p) -> DNA35(h2ax~u) kh2axu +DNA36(h2ax~p) -> DNA36(h2ax~u) kh2axu +DNA37(h2ax~p) -> DNA37(h2ax~u) kh2axu +DNA38(h2ax~p) -> DNA38(h2ax~u) kh2axu +DNA39(h2ax~p) -> DNA39(h2ax~u) kh2axu +DNA40(h2ax~p) -> DNA40(h2ax~u) kh2axu +DNA41(h2ax~p) -> DNA41(h2ax~u) kh2axu +DNA42(h2ax~p) -> DNA42(h2ax~u) kh2axu +DNA43(h2ax~p) -> DNA43(h2ax~u) kh2axu +DNA44(h2ax~p) -> DNA44(h2ax~u) kh2axu +DNA45(h2ax~p) -> DNA45(h2ax~u) kh2axu +DNA46(h2ax~p) -> DNA46(h2ax~u) kh2axu +DNA47(h2ax~p) -> DNA47(h2ax~u) kh2axu +DNA48(h2ax~p) -> DNA48(h2ax~u) kh2axu +DNA49(h2ax~p) -> DNA49(h2ax~u) kh2axu +DNA50(h2ax~p) -> DNA50(h2ax~u) kh2axu + +#Foci Formation +DNA1(h2ax~p) -> DNA1(h2ax~foc) kh2axfoc +DNA2(h2ax~p) -> DNA2(h2ax~foc) kh2axfoc +DNA3(h2ax~p) -> DNA3(h2ax~foc) kh2axfoc +DNA4(h2ax~p) -> DNA4(h2ax~foc) kh2axfoc +DNA5(h2ax~p) -> DNA5(h2ax~foc) kh2axfoc +DNA6(h2ax~p) -> DNA6(h2ax~foc) kh2axfoc +DNA7(h2ax~p) -> DNA7(h2ax~foc) kh2axfoc +DNA8(h2ax~p) -> DNA8(h2ax~foc) kh2axfoc +DNA9(h2ax~p) -> DNA9(h2ax~foc) kh2axfoc +DNA10(h2ax~p) -> DNA10(h2ax~foc) kh2axfoc +DNA11(h2ax~p) -> DNA11(h2ax~foc) kh2axfoc +DNA12(h2ax~p) -> DNA12(h2ax~foc) kh2axfoc +DNA13(h2ax~p) -> DNA13(h2ax~foc) kh2axfoc +DNA14(h2ax~p) -> DNA14(h2ax~foc) kh2axfoc +DNA15(h2ax~p) -> DNA15(h2ax~foc) kh2axfoc +DNA16(h2ax~p) -> DNA16(h2ax~foc) kh2axfoc +DNA17(h2ax~p) -> DNA17(h2ax~foc) kh2axfoc +DNA18(h2ax~p) -> DNA18(h2ax~foc) kh2axfoc +DNA19(h2ax~p) -> DNA19(h2ax~foc) kh2axfoc +DNA20(h2ax~p) -> DNA20(h2ax~foc) kh2axfoc +DNA21(h2ax~p) -> DNA21(h2ax~foc) kh2axfoc +DNA22(h2ax~p) -> DNA22(h2ax~foc) kh2axfoc +DNA23(h2ax~p) -> DNA23(h2ax~foc) kh2axfoc +DNA24(h2ax~p) -> DNA24(h2ax~foc) kh2axfoc +DNA25(h2ax~p) -> DNA25(h2ax~foc) kh2axfoc +DNA26(h2ax~p) -> DNA26(h2ax~foc) kh2axfoc +DNA27(h2ax~p) -> DNA27(h2ax~foc) kh2axfoc +DNA28(h2ax~p) -> DNA28(h2ax~foc) kh2axfoc +DNA29(h2ax~p) -> DNA29(h2ax~foc) kh2axfoc +DNA30(h2ax~p) -> DNA30(h2ax~foc) kh2axfoc +DNA31(h2ax~p) -> DNA31(h2ax~foc) kh2axfoc +DNA32(h2ax~p) -> DNA32(h2ax~foc) kh2axfoc +DNA33(h2ax~p) -> DNA33(h2ax~foc) kh2axfoc +DNA34(h2ax~p) -> DNA34(h2ax~foc) kh2axfoc +DNA35(h2ax~p) -> DNA35(h2ax~foc) kh2axfoc +DNA36(h2ax~p) -> DNA36(h2ax~foc) kh2axfoc +DNA37(h2ax~p) -> DNA37(h2ax~foc) kh2axfoc +DNA38(h2ax~p) -> DNA38(h2ax~foc) kh2axfoc +DNA39(h2ax~p) -> DNA39(h2ax~foc) kh2axfoc +DNA40(h2ax~p) -> DNA40(h2ax~foc) kh2axfoc +DNA41(h2ax~p) -> DNA41(h2ax~foc) kh2axfoc +DNA42(h2ax~p) -> DNA42(h2ax~foc) kh2axfoc +DNA43(h2ax~p) -> DNA43(h2ax~foc) kh2axfoc +DNA44(h2ax~p) -> DNA44(h2ax~foc) kh2axfoc +DNA45(h2ax~p) -> DNA45(h2ax~foc) kh2axfoc +DNA46(h2ax~p) -> DNA46(h2ax~foc) kh2axfoc +DNA47(h2ax~p) -> DNA47(h2ax~foc) kh2axfoc +DNA48(h2ax~p) -> DNA48(h2ax~foc) kh2axfoc +DNA49(h2ax~p) -> DNA49(h2ax~foc) kh2axfoc +DNA50(h2ax~p) -> DNA50(h2ax~foc) kh2axfoc + +#Foci dephos +DNA1(h2ax~foc) -> DNA1(h2ax~u) kfocback +DNA2(h2ax~foc) -> DNA2(h2ax~u) kfocback +DNA3(h2ax~foc) -> DNA3(h2ax~u) kfocback +DNA4(h2ax~foc) -> DNA4(h2ax~u) kfocback +DNA5(h2ax~foc) -> DNA5(h2ax~u) kfocback +DNA6(h2ax~foc) -> DNA6(h2ax~u) kfocback +DNA7(h2ax~foc) -> DNA7(h2ax~u) kfocback +DNA8(h2ax~foc) -> DNA8(h2ax~u) kfocback +DNA9(h2ax~foc) -> DNA9(h2ax~u) kfocback +DNA10(h2ax~foc) -> DNA10(h2ax~u) kfocback +DNA11(h2ax~foc) -> DNA11(h2ax~u) kfocback +DNA12(h2ax~foc) -> DNA12(h2ax~u) kfocback +DNA13(h2ax~foc) -> DNA13(h2ax~u) kfocback +DNA14(h2ax~foc) -> DNA14(h2ax~u) kfocback +DNA15(h2ax~foc) -> DNA15(h2ax~u) kfocback +DNA16(h2ax~foc) -> DNA16(h2ax~u) kfocback +DNA17(h2ax~foc) -> DNA17(h2ax~u) kfocback +DNA18(h2ax~foc) -> DNA18(h2ax~u) kfocback +DNA19(h2ax~foc) -> DNA19(h2ax~u) kfocback +DNA20(h2ax~foc) -> DNA20(h2ax~u) kfocback +DNA21(h2ax~foc) -> DNA21(h2ax~u) kfocback +DNA22(h2ax~foc) -> DNA22(h2ax~u) kfocback +DNA23(h2ax~foc) -> DNA23(h2ax~u) kfocback +DNA24(h2ax~foc) -> DNA24(h2ax~u) kfocback +DNA25(h2ax~foc) -> DNA25(h2ax~u) kfocback +DNA26(h2ax~foc) -> DNA26(h2ax~u) kfocback +DNA27(h2ax~foc) -> DNA27(h2ax~u) kfocback +DNA28(h2ax~foc) -> DNA28(h2ax~u) kfocback +DNA29(h2ax~foc) -> DNA29(h2ax~u) kfocback +DNA30(h2ax~foc) -> DNA30(h2ax~u) kfocback +DNA31(h2ax~foc) -> DNA31(h2ax~u) kfocback +DNA32(h2ax~foc) -> DNA32(h2ax~u) kfocback +DNA33(h2ax~foc) -> DNA33(h2ax~u) kfocback +DNA34(h2ax~foc) -> DNA34(h2ax~u) kfocback +DNA35(h2ax~foc) -> DNA35(h2ax~u) kfocback +DNA36(h2ax~foc) -> DNA36(h2ax~u) kfocback +DNA37(h2ax~foc) -> DNA37(h2ax~u) kfocback +DNA38(h2ax~foc) -> DNA38(h2ax~u) kfocback +DNA39(h2ax~foc) -> DNA39(h2ax~u) kfocback +DNA40(h2ax~foc) -> DNA40(h2ax~u) kfocback +DNA41(h2ax~foc) -> DNA41(h2ax~u) kfocback +DNA42(h2ax~foc) -> DNA42(h2ax~u) kfocback +DNA43(h2ax~foc) -> DNA43(h2ax~u) kfocback +DNA44(h2ax~foc) -> DNA44(h2ax~u) kfocback +DNA45(h2ax~foc) -> DNA45(h2ax~u) kfocback +DNA46(h2ax~foc) -> DNA46(h2ax~u) kfocback +DNA47(h2ax~foc) -> DNA47(h2ax~u) kfocback +DNA48(h2ax~foc) -> DNA48(h2ax~u) kfocback +DNA49(h2ax~foc) -> DNA49(h2ax~u) kfocback +DNA50(h2ax~foc) -> DNA50(h2ax~u) kfocback + +#Complete Foci Formatiom + +DNA1(h2ax~foc) + ATM(state~1,h2ax) -> DNA1(h2ax!1~foc).ATM(state~1,h2ax!1) kh2axfull +DNA2(h2ax~foc) + ATM(state~2,h2ax) -> DNA2(h2ax!1~foc).ATM(state~2,h2ax!1) kh2axfull +DNA3(h2ax~foc) + ATM(state~3,h2ax) -> DNA3(h2ax!1~foc).ATM(state~3,h2ax!1) kh2axfull +DNA4(h2ax~foc) + ATM(state~4,h2ax) -> DNA4(h2ax!1~foc).ATM(state~4,h2ax!1) kh2axfull +DNA5(h2ax~foc) + ATM(state~5,h2ax) -> DNA5(h2ax!1~foc).ATM(state~5,h2ax!1) kh2axfull +DNA6(h2ax~foc) + ATM(state~6,h2ax) -> DNA6(h2ax!1~foc).ATM(state~6,h2ax!1) kh2axfull +DNA7(h2ax~foc) + ATM(state~7,h2ax) -> DNA7(h2ax!1~foc).ATM(state~7,h2ax!1) kh2axfull +DNA8(h2ax~foc) + ATM(state~8,h2ax) -> DNA8(h2ax!1~foc).ATM(state~8,h2ax!1) kh2axfull +DNA9(h2ax~foc) + ATM(state~9,h2ax) -> DNA9(h2ax!1~foc).ATM(state~9,h2ax!1) kh2axfull +DNA10(h2ax~foc) + ATM(state~10,h2ax) -> DNA10(h2ax!1~foc).ATM(state~10,h2ax!1) kh2axfull +DNA11(h2ax~foc) + ATM(state~11,h2ax) -> DNA11(h2ax!1~foc).ATM(state~11,h2ax!1) kh2axfull +DNA12(h2ax~foc) + ATM(state~12,h2ax) -> DNA12(h2ax!1~foc).ATM(state~12,h2ax!1) kh2axfull +DNA13(h2ax~foc) + ATM(state~13,h2ax) -> DNA13(h2ax!1~foc).ATM(state~13,h2ax!1) kh2axfull +DNA14(h2ax~foc) + ATM(state~14,h2ax) -> DNA14(h2ax!1~foc).ATM(state~14,h2ax!1) kh2axfull +DNA15(h2ax~foc) + ATM(state~15,h2ax) -> DNA15(h2ax!1~foc).ATM(state~15,h2ax!1) kh2axfull +DNA16(h2ax~foc) + ATM(state~16,h2ax) -> DNA16(h2ax!1~foc).ATM(state~16,h2ax!1) kh2axfull +DNA17(h2ax~foc) + ATM(state~17,h2ax) -> DNA17(h2ax!1~foc).ATM(state~17,h2ax!1) kh2axfull +DNA18(h2ax~foc) + ATM(state~18,h2ax) -> DNA18(h2ax!1~foc).ATM(state~18,h2ax!1) kh2axfull +DNA19(h2ax~foc) + ATM(state~19,h2ax) -> DNA19(h2ax!1~foc).ATM(state~19,h2ax!1) kh2axfull +DNA20(h2ax~foc) + ATM(state~20,h2ax) -> DNA20(h2ax!1~foc).ATM(state~20,h2ax!1) kh2axfull +DNA21(h2ax~foc) + ATM(state~21,h2ax) -> DNA21(h2ax!1~foc).ATM(state~21,h2ax!1) kh2axfull +DNA22(h2ax~foc) + ATM(state~22,h2ax) -> DNA22(h2ax!1~foc).ATM(state~22,h2ax!1) kh2axfull +DNA23(h2ax~foc) + ATM(state~23,h2ax) -> DNA23(h2ax!1~foc).ATM(state~23,h2ax!1) kh2axfull +DNA24(h2ax~foc) + ATM(state~24,h2ax) -> DNA24(h2ax!1~foc).ATM(state~24,h2ax!1) kh2axfull +DNA25(h2ax~foc) + ATM(state~25,h2ax) -> DNA25(h2ax!1~foc).ATM(state~25,h2ax!1) kh2axfull +DNA26(h2ax~foc) + ATM(state~26,h2ax) -> DNA26(h2ax!1~foc).ATM(state~26,h2ax!1) kh2axfull +DNA27(h2ax~foc) + ATM(state~27,h2ax) -> DNA27(h2ax!1~foc).ATM(state~27,h2ax!1) kh2axfull +DNA28(h2ax~foc) + ATM(state~28,h2ax) -> DNA28(h2ax!1~foc).ATM(state~28,h2ax!1) kh2axfull +DNA29(h2ax~foc) + ATM(state~29,h2ax) -> DNA29(h2ax!1~foc).ATM(state~29,h2ax!1) kh2axfull +DNA30(h2ax~foc) + ATM(state~30,h2ax) -> DNA30(h2ax!1~foc).ATM(state~30,h2ax!1) kh2axfull +DNA31(h2ax~foc) + ATM(state~31,h2ax) -> DNA31(h2ax!1~foc).ATM(state~31,h2ax!1) kh2axfull +DNA32(h2ax~foc) + ATM(state~32,h2ax) -> DNA32(h2ax!1~foc).ATM(state~32,h2ax!1) kh2axfull +DNA33(h2ax~foc) + ATM(state~33,h2ax) -> DNA33(h2ax!1~foc).ATM(state~33,h2ax!1) kh2axfull +DNA34(h2ax~foc) + ATM(state~34,h2ax) -> DNA34(h2ax!1~foc).ATM(state~34,h2ax!1) kh2axfull +DNA35(h2ax~foc) + ATM(state~35,h2ax) -> DNA35(h2ax!1~foc).ATM(state~35,h2ax!1) kh2axfull +DNA36(h2ax~foc) + ATM(state~36,h2ax) -> DNA36(h2ax!1~foc).ATM(state~36,h2ax!1) kh2axfull +DNA37(h2ax~foc) + ATM(state~37,h2ax) -> DNA37(h2ax!1~foc).ATM(state~37,h2ax!1) kh2axfull +DNA38(h2ax~foc) + ATM(state~38,h2ax) -> DNA38(h2ax!1~foc).ATM(state~38,h2ax!1) kh2axfull +DNA39(h2ax~foc) + ATM(state~39,h2ax) -> DNA39(h2ax!1~foc).ATM(state~39,h2ax!1) kh2axfull +DNA40(h2ax~foc) + ATM(state~40,h2ax) -> DNA40(h2ax!1~foc).ATM(state~40,h2ax!1) kh2axfull +DNA41(h2ax~foc) + ATM(state~41,h2ax) -> DNA41(h2ax!1~foc).ATM(state~41,h2ax!1) kh2axfull +DNA42(h2ax~foc) + ATM(state~42,h2ax) -> DNA42(h2ax!1~foc).ATM(state~42,h2ax!1) kh2axfull +DNA43(h2ax~foc) + ATM(state~43,h2ax) -> DNA43(h2ax!1~foc).ATM(state~43,h2ax!1) kh2axfull +DNA44(h2ax~foc) + ATM(state~44,h2ax) -> DNA44(h2ax!1~foc).ATM(state~44,h2ax!1) kh2axfull +DNA45(h2ax~foc) + ATM(state~45,h2ax) -> DNA45(h2ax!1~foc).ATM(state~45,h2ax!1) kh2axfull +DNA46(h2ax~foc) + ATM(state~46,h2ax) -> DNA46(h2ax!1~foc).ATM(state~46,h2ax!1) kh2axfull +DNA47(h2ax~foc) + ATM(state~47,h2ax) -> DNA47(h2ax!1~foc).ATM(state~47,h2ax!1) kh2axfull +DNA48(h2ax~foc) + ATM(state~48,h2ax) -> DNA48(h2ax!1~foc).ATM(state~48,h2ax!1) kh2axfull +DNA49(h2ax~foc) + ATM(state~49,h2ax) -> DNA49(h2ax!1~foc).ATM(state~49,h2ax!1) kh2axfull +DNA50(h2ax~foc) + ATM(state~50,h2ax) -> DNA50(h2ax!1~foc).ATM(state~50,h2ax!1) kh2axfull + +#Foci Resolution + +DNA1(h2ax!1~foc).ATM(state~1,h2ax!1) -> DNA1(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA2(h2ax!1~foc).ATM(state~2,h2ax!1) -> DNA2(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA3(h2ax!1~foc).ATM(state~3,h2ax!1) -> DNA3(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA4(h2ax!1~foc).ATM(state~4,h2ax!1) -> DNA4(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA5(h2ax!1~foc).ATM(state~5,h2ax!1) -> DNA5(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA6(h2ax!1~foc).ATM(state~6,h2ax!1) -> DNA6(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA7(h2ax!1~foc).ATM(state~7,h2ax!1) -> DNA7(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA8(h2ax!1~foc).ATM(state~8,h2ax!1) -> DNA8(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA9(h2ax!1~foc).ATM(state~9,h2ax!1) -> DNA9(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA10(h2ax!1~foc).ATM(state~10,h2ax!1) -> DNA10(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA11(h2ax!1~foc).ATM(state~11,h2ax!1) -> DNA11(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA12(h2ax!1~foc).ATM(state~12,h2ax!1) -> DNA12(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA13(h2ax!1~foc).ATM(state~13,h2ax!1) -> DNA13(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA14(h2ax!1~foc).ATM(state~14,h2ax!1) -> DNA14(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA15(h2ax!1~foc).ATM(state~15,h2ax!1) -> DNA15(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA16(h2ax!1~foc).ATM(state~16,h2ax!1) -> DNA16(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA17(h2ax!1~foc).ATM(state~17,h2ax!1) -> DNA17(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA18(h2ax!1~foc).ATM(state~18,h2ax!1) -> DNA18(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA19(h2ax!1~foc).ATM(state~19,h2ax!1) -> DNA19(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA20(h2ax!1~foc).ATM(state~20,h2ax!1) -> DNA20(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA21(h2ax!1~foc).ATM(state~21,h2ax!1) -> DNA21(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA22(h2ax!1~foc).ATM(state~22,h2ax!1) -> DNA22(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA23(h2ax!1~foc).ATM(state~23,h2ax!1) -> DNA23(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA24(h2ax!1~foc).ATM(state~24,h2ax!1) -> DNA24(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA25(h2ax!1~foc).ATM(state~25,h2ax!1) -> DNA25(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA26(h2ax!1~foc).ATM(state~26,h2ax!1) -> DNA26(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA27(h2ax!1~foc).ATM(state~27,h2ax!1) -> DNA27(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA28(h2ax!1~foc).ATM(state~28,h2ax!1) -> DNA28(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA29(h2ax!1~foc).ATM(state~29,h2ax!1) -> DNA29(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA30(h2ax!1~foc).ATM(state~30,h2ax!1) -> DNA30(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA31(h2ax!1~foc).ATM(state~31,h2ax!1) -> DNA31(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA32(h2ax!1~foc).ATM(state~32,h2ax!1) -> DNA32(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA33(h2ax!1~foc).ATM(state~33,h2ax!1) -> DNA33(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA34(h2ax!1~foc).ATM(state~34,h2ax!1) -> DNA34(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA35(h2ax!1~foc).ATM(state~35,h2ax!1) -> DNA35(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA36(h2ax!1~foc).ATM(state~36,h2ax!1) -> DNA36(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA37(h2ax!1~foc).ATM(state~37,h2ax!1) -> DNA37(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA38(h2ax!1~foc).ATM(state~38,h2ax!1) -> DNA38(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA39(h2ax!1~foc).ATM(state~39,h2ax!1) -> DNA39(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA40(h2ax!1~foc).ATM(state~40,h2ax!1) -> DNA40(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA41(h2ax!1~foc).ATM(state~41,h2ax!1) -> DNA41(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA42(h2ax!1~foc).ATM(state~42,h2ax!1) -> DNA42(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA43(h2ax!1~foc).ATM(state~43,h2ax!1) -> DNA43(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA44(h2ax!1~foc).ATM(state~44,h2ax!1) -> DNA44(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA45(h2ax!1~foc).ATM(state~45,h2ax!1) -> DNA45(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA46(h2ax!1~foc).ATM(state~46,h2ax!1) -> DNA46(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA47(h2ax!1~foc).ATM(state~47,h2ax!1) -> DNA47(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA48(h2ax!1~foc).ATM(state~48,h2ax!1) -> DNA48(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA49(h2ax!1~foc).ATM(state~49,h2ax!1) -> DNA49(h2ax~u) + ATM(state~0,h2ax) kfocfin +DNA50(h2ax!1~foc).ATM(state~50,h2ax!1) -> DNA50(h2ax~u) + ATM(state~0,h2ax) kfocfin + +# ROS production +I() -> I() + ROS() kROS +ROS() -> Sink() kdROS +IR() -> IR() + ROS() kIR + +#DNA Damage +#simple +DNA1(site~ok) + ROS() -> DNA1(site~sdsb) kdam1 +DNA2(site~ok) + ROS() -> DNA2(site~sdsb) kdam1 +DNA3(site~ok) + ROS() -> DNA3(site~sdsb) kdam1 +DNA4(site~ok) + ROS() -> DNA4(site~sdsb) kdam1 +DNA5(site~ok) + ROS() -> DNA5(site~sdsb) kdam1 +DNA6(site~ok) + ROS() -> DNA6(site~sdsb) kdam1 +DNA7(site~ok) + ROS() -> DNA7(site~sdsb) kdam1 +DNA8(site~ok) + ROS() -> DNA8(site~sdsb) kdam1 +DNA9(site~ok) + ROS() -> DNA9(site~sdsb) kdam1 +DNA10(site~ok) + ROS() -> DNA10(site~sdsb) kdam1 +DNA11(site~ok) + ROS() -> DNA11(site~sdsb) kdam1 +DNA12(site~ok) + ROS() -> DNA12(site~sdsb) kdam1 +DNA13(site~ok) + ROS() -> DNA13(site~sdsb) kdam1 +DNA14(site~ok) + ROS() -> DNA14(site~sdsb) kdam1 +DNA15(site~ok) + ROS() -> DNA15(site~sdsb) kdam1 +DNA16(site~ok) + ROS() -> DNA16(site~sdsb) kdam1 +DNA17(site~ok) + ROS() -> DNA17(site~sdsb) kdam1 +DNA18(site~ok) + ROS() -> DNA18(site~sdsb) kdam1 +DNA19(site~ok) + ROS() -> DNA19(site~sdsb) kdam1 +DNA20(site~ok) + ROS() -> DNA20(site~sdsb) kdam1 +DNA21(site~ok) + ROS() -> DNA21(site~sdsb) kdam1 +DNA22(site~ok) + ROS() -> DNA22(site~sdsb) kdam1 +DNA23(site~ok) + ROS() -> DNA23(site~sdsb) kdam1 +DNA24(site~ok) + ROS() -> DNA24(site~sdsb) kdam1 +DNA25(site~ok) + ROS() -> DNA25(site~sdsb) kdam1 +DNA26(site~ok) + ROS() -> DNA26(site~sdsb) kdam1 +DNA27(site~ok) + ROS() -> DNA27(site~sdsb) kdam1 +DNA28(site~ok) + ROS() -> DNA28(site~sdsb) kdam1 +DNA29(site~ok) + ROS() -> DNA29(site~sdsb) kdam1 +DNA30(site~ok) + ROS() -> DNA30(site~sdsb) kdam1 +DNA31(site~ok) + ROS() -> DNA31(site~sdsb) kdam1 +DNA32(site~ok) + ROS() -> DNA32(site~sdsb) kdam1 +DNA33(site~ok) + ROS() -> DNA33(site~sdsb) kdam1 +DNA34(site~ok) + ROS() -> DNA34(site~sdsb) kdam1 +DNA35(site~ok) + ROS() -> DNA35(site~sdsb) kdam1 +DNA36(site~ok) + ROS() -> DNA36(site~sdsb) kdam1 +DNA37(site~ok) + ROS() -> DNA37(site~sdsb) kdam1 +DNA38(site~ok) + ROS() -> DNA38(site~sdsb) kdam1 +DNA39(site~ok) + ROS() -> DNA39(site~sdsb) kdam1 +DNA40(site~ok) + ROS() -> DNA40(site~sdsb) kdam1 +DNA41(site~ok) + ROS() -> DNA41(site~sdsb) kdam1 +DNA42(site~ok) + ROS() -> DNA42(site~sdsb) kdam1 +DNA43(site~ok) + ROS() -> DNA43(site~sdsb) kdam1 +DNA44(site~ok) + ROS() -> DNA44(site~sdsb) kdam1 +DNA45(site~ok) + ROS() -> DNA45(site~sdsb) kdam1 +DNA46(site~ok) + ROS() -> DNA46(site~sdsb) kdam1 +DNA47(site~ok) + ROS() -> DNA47(site~sdsb) kdam1 +DNA48(site~ok) + ROS() -> DNA48(site~sdsb) kdam1 +DNA49(site~ok) + ROS() -> DNA49(site~sdsb) kdam1 +DNA50(site~ok) + ROS() -> DNA50(site~sdsb) kdam1 +# complex +DNA1(site~ok) + ROS() -> DNA1(site~cdsb) kdam2 +DNA2(site~ok) + ROS() -> DNA2(site~cdsb) kdam2 +DNA3(site~ok) + ROS() -> DNA3(site~cdsb) kdam2 +DNA4(site~ok) + ROS() -> DNA4(site~cdsb) kdam2 +DNA5(site~ok) + ROS() -> DNA5(site~cdsb) kdam2 +DNA6(site~ok) + ROS() -> DNA6(site~cdsb) kdam2 +DNA7(site~ok) + ROS() -> DNA7(site~cdsb) kdam2 +DNA8(site~ok) + ROS() -> DNA8(site~cdsb) kdam2 +DNA9(site~ok) + ROS() -> DNA9(site~cdsb) kdam2 +DNA10(site~ok) + ROS() -> DNA10(site~cdsb) kdam2 +DNA11(site~ok) + ROS() -> DNA11(site~cdsb) kdam2 +DNA12(site~ok) + ROS() -> DNA12(site~cdsb) kdam2 +DNA13(site~ok) + ROS() -> DNA13(site~cdsb) kdam2 +DNA14(site~ok) + ROS() -> DNA14(site~cdsb) kdam2 +DNA15(site~ok) + ROS() -> DNA15(site~cdsb) kdam2 +DNA16(site~ok) + ROS() -> DNA16(site~cdsb) kdam2 +DNA17(site~ok) + ROS() -> DNA17(site~cdsb) kdam2 +DNA18(site~ok) + ROS() -> DNA18(site~cdsb) kdam2 +DNA19(site~ok) + ROS() -> DNA19(site~cdsb) kdam2 +DNA20(site~ok) + ROS() -> DNA20(site~cdsb) kdam2 +DNA21(site~ok) + ROS() -> DNA21(site~cdsb) kdam2 +DNA22(site~ok) + ROS() -> DNA22(site~cdsb) kdam2 +DNA23(site~ok) + ROS() -> DNA23(site~cdsb) kdam2 +DNA24(site~ok) + ROS() -> DNA24(site~cdsb) kdam2 +DNA25(site~ok) + ROS() -> DNA25(site~cdsb) kdam2 +DNA26(site~ok) + ROS() -> DNA26(site~cdsb) kdam2 +DNA27(site~ok) + ROS() -> DNA27(site~cdsb) kdam2 +DNA28(site~ok) + ROS() -> DNA28(site~cdsb) kdam2 +DNA29(site~ok) + ROS() -> DNA29(site~cdsb) kdam2 +DNA30(site~ok) + ROS() -> DNA30(site~cdsb) kdam2 +DNA31(site~ok) + ROS() -> DNA31(site~cdsb) kdam2 +DNA32(site~ok) + ROS() -> DNA32(site~cdsb) kdam2 +DNA33(site~ok) + ROS() -> DNA33(site~cdsb) kdam2 +DNA34(site~ok) + ROS() -> DNA34(site~cdsb) kdam2 +DNA35(site~ok) + ROS() -> DNA35(site~cdsb) kdam2 +DNA36(site~ok) + ROS() -> DNA36(site~cdsb) kdam2 +DNA37(site~ok) + ROS() -> DNA37(site~cdsb) kdam2 +DNA38(site~ok) + ROS() -> DNA38(site~cdsb) kdam2 +DNA39(site~ok) + ROS() -> DNA39(site~cdsb) kdam2 +DNA40(site~ok) + ROS() -> DNA40(site~cdsb) kdam2 +DNA41(site~ok) + ROS() -> DNA41(site~cdsb) kdam2 +DNA42(site~ok) + ROS() -> DNA42(site~cdsb) kdam2 +DNA43(site~ok) + ROS() -> DNA43(site~cdsb) kdam2 +DNA44(site~ok) + ROS() -> DNA44(site~cdsb) kdam2 +DNA45(site~ok) + ROS() -> DNA45(site~cdsb) kdam2 +DNA46(site~ok) + ROS() -> DNA46(site~cdsb) kdam2 +DNA47(site~ok) + ROS() -> DNA47(site~cdsb) kdam2 +DNA48(site~ok) + ROS() -> DNA48(site~cdsb) kdam2 +DNA49(site~ok) + ROS() -> DNA49(site~cdsb) kdam2 +DNA50(site~ok) + ROS() -> DNA50(site~cdsb) kdam2 + +#Senesent Feedback + +#Ku Redox + +Ku(dna,cs,cys~red) + ROS() -> Ku(dna,cs,cys~ox) + ROS() kox +Ku(dna,cs,cys~ox) -> Ku(dna,cs,cys~red) kred + +# Ku dissociating (Oxidised) +# simple +DNA1(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA1(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA2(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA2(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA3(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA3(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA4(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA4(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA5(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA5(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA6(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA6(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA7(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA7(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA8(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA8(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA9(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA9(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA10(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA10(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA11(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA11(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA12(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA12(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA13(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA13(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA14(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA14(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA15(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA15(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA16(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA16(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA17(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA17(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA18(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA18(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA19(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA19(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA20(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA20(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA21(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA21(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA22(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA22(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA23(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA23(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA24(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA24(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA25(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA25(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA26(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA26(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA27(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA27(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA28(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA28(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA29(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA29(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA30(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA30(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA31(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA31(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA32(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA32(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA33(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA33(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA34(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA34(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA35(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA35(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA36(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA36(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA37(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA37(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA38(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA38(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA39(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA39(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA40(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA40(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA41(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA41(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA42(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA42(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA43(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA43(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA44(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA44(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA45(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA45(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA46(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA46(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA47(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA47(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA48(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA48(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA49(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA49(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +DNA50(site!1~sdsb).Ku(dna!1,cs,cys~ox) -> DNA50(site~sdsb) + Ku(dna,cs,cys~ox) kdku3 +# complex +DNA1(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA1(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA2(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA2(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA3(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA3(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA4(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA4(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA5(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA5(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA6(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA6(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA7(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA7(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA8(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA8(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA9(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA9(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA10(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA10(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA11(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA11(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA12(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA12(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA13(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA13(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA14(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA14(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA15(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA15(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA16(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA16(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA17(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA17(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA18(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA18(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA19(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA19(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA20(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA20(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA21(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA21(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA22(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA22(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA23(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA23(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA24(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA24(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA25(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA25(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA26(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA26(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA27(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA27(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA28(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA28(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA29(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA29(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA30(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA30(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA31(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA31(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA32(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA32(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA33(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA33(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA34(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA34(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA35(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA35(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA36(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA36(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA37(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA37(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA38(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA38(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA39(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA39(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA40(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA40(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA41(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA41(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA42(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA42(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA43(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA43(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA44(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA44(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA45(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA45(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA46(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA46(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA47(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA47(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA48(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA48(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA49(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA49(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 +DNA50(site!1~cdsb).Ku(dna!1,cs,cys~ox) -> DNA50(site~cdsb) + Ku(dna,cs,cys~ox) kdku4 + +#Senescent Shift Rules + +Sen(int~?,State~normal) -> Sen(int~PLUS,State~normal) kplus() +Sen(int~?,State~normal) -> Sen(int~MINUS,State~normal) kminus() +Sen(int~10,State~normal) -> Sen(int~10,State~sen) ksen + +Ku(dna,cs,cys~?) -> Sink() kKuDown() * kKustop() +PARP(dna,liIII) -> Sink() kParpDown() * kParpstop() + +end reaction rules + + +# actions +# generate_network({overwrite=>1}); +# simulate_ode({t_end=>5460,n_steps=>10,sparse=>1}); + + +simulate_nf({suffix=>"nf_run1",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run2",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run3",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run4",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run5",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run6",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run7",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run8",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run9",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run10",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run11",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run12",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run13",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run14",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run15",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run16",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run17",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run18",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run19",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run20",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run21",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run22",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run23",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run24",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run25",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run26",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run27",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run28",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run29",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run30",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run31",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run32",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run33",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run34",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run35",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run36",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run37",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run38",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run39",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run40",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run41",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run42",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run43",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run44",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run45",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run46",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run47",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run48",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run49",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); +simulate_nf({suffix=>"nf_run50",t_end=>2400,n_steps=>2400,param=> "-v -gml 1000000000"}); \ No newline at end of file diff --git a/Published/Dolan2015/metadata.yaml b/Published/Dolan2015/metadata.yaml new file mode 100644 index 00000000..3f6c2b64 --- /dev/null +++ b/Published/Dolan2015/metadata.yaml @@ -0,0 +1,22 @@ +id: "Dolan_2015" +name: "Dolan 2015" +description: "Insulin signaling" +tags: ["published", "literature", "signaling", "dolan", "2015", "time", "t", "p", "e", "ir", "d", "p53_mrna", "p53"] +category: "other" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/literature/Dolan_2015.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Published/Dushek2011/Dushek_2011.bngl b/Published/Dushek2011/Dushek_2011.bngl new file mode 100644 index 00000000..33bba0be --- /dev/null +++ b/Published/Dushek2011/Dushek_2011.bngl @@ -0,0 +1,195 @@ +#Enzymatic modification of a 20-site substrate using the 2-step binding model. +#Note: reaction on-rates must be suitably altered for substrates with fewer sites. +begin parameters +#Reaction area. +A 0.0001 +#Substrate concentration. +tS 1 +#Encounter reactions (E refers to kinase and F refers to phosphatase). +#Diffusion-limited on-rate (k+) +Ekp 0.1 +Fkp 0.1 +#Local diffusion rate (k-) +Ekm 0.1/A +Fkm 0.1/A +#Local on-rates (k * on) +Ekf1 20 * 10/A +Ekf2 19 * 10/A +Ekf3 18 * 10/A +Ekf4 17 * 10/A +Ekf5 16 * 10/A +Ekf6 15 * 10/A +Ekf7 14 * 10/A +Ekf8 13 * 10/A +Ekf9 12 * 10/A +Ekf10 11 * 10/A +Ekf11 10 * 10/A +Ekf12 9 * 10/A +Ekf13 8 * 10/A +Ekf14 7 * 10/A +Ekf15 6 * 10/A +Ekf16 5 * 10/A +Ekf17 4 * 10/A +Ekf18 3 * 10/A +Ekf19 2 * 10/A +Ekf20 1 * 10/A +Fkf1 1 * 10/A +Fkf2 2 * 10/A +Fkf3 3 * 10/A +Fkf4 4 * 10/A +Fkf5 5 * 10/A +Fkf6 6 * 10/A +Fkf7 7 * 10/A +Fkf8 8 * 10/A +Fkf9 9 * 10/A +Fkf10 10 * 10/A +Fkf11 11 * 10/A +Fkf12 12 * 10/A +Fkf13 13 * 10/A +Fkf14 14 * 10/A +Fkf15 15 * 10/A +Fkf16 16 * 10/A +Fkf17 17 * 10/A +Fkf18 18 * 10/A +Fkf19 19 * 10/A +Fkf20 20 * 10/A +#Unbinding rate (koff) +Ekb 1 +Fkb 1 +#Modification rate (kr) +Ekc 0.1 +Fkc 0.1 +#Reactivation rate (mu) +Emu 1 +Fmu 1 +end parameters +begin molecule types +#Attribute E/F indicates if a kinase or phosphatase is within the encounter complex (1 = within encounter complex). +#Attribute A indicates if the enzyme within the encounter complex is activate (A~0) or inactive (A~1). +#Attribute Y indicates the number of phosphorylated sites. +S(E~0~1,F~0~1,A~0~1,Y~U~P~2P~3P~4P~5P~6P~7P~8P~9P~10P~11P~12P~13P~14P~15P~16P~17P~18P~19P~20P) +end molecule types +begin species +S(E~0,F~0,A~0,Y~U) tS +end species + +begin reaction rules +#ENCOUNTER COMPLEX +S(E~0,F~0,A~0) <-> S(E~1,F~0,A~0) Ekp,Ekm +S(E~0,F~0,A~0) <-> S(E~0,F~1,A~0) Fkp,Fkm +S(E~1,F~0,A~1) -> S(E~0,F~0,A~0) Ekm +S(E~0,F~1,A~1) -> S(E~0,F~0,A~0) Fkm +#BINDING REACTIONS +S(E~1,A~0,Y~U) <-> S(E~1!1,A~0,Y~U!1) Ekf1,Ekb +S(E~1,A~0,Y~P) <-> S(E~1!1,A~0,Y~P!1) Ekf2,Ekb +S(E~1,A~0,Y~2P) <-> S(E~1!1,A~0,Y~2P!1) Ekf3,Ekb +S(E~1,A~0,Y~3P) <-> S(E~1!1,A~0,Y~3P!1) Ekf4,Ekb +S(E~1,A~0,Y~4P) <-> S(E~1!1,A~0,Y~4P!1) Ekf5,Ekb +S(E~1,A~0,Y~5P) <-> S(E~1!1,A~0,Y~5P!1) Ekf6,Ekb +S(E~1,A~0,Y~6P) <-> S(E~1!1,A~0,Y~6P!1) Ekf7,Ekb +S(E~1,A~0,Y~7P) <-> S(E~1!1,A~0,Y~7P!1) Ekf8,Ekb +S(E~1,A~0,Y~8P) <-> S(E~1!1,A~0,Y~8P!1) Ekf9,Ekb +S(E~1,A~0,Y~9P) <-> S(E~1!1,A~0,Y~9P!1) Ekf10,Ekb +S(E~1,A~0,Y~10P) <-> S(E~1!1,A~0,Y~10P!1) Ekf11,Ekb +S(E~1,A~0,Y~11P) <-> S(E~1!1,A~0,Y~11P!1) Ekf12,Ekb +S(E~1,A~0,Y~12P) <-> S(E~1!1,A~0,Y~12P!1) Ekf13,Ekb +S(E~1,A~0,Y~13P) <-> S(E~1!1,A~0,Y~13P!1) Ekf14,Ekb +S(E~1,A~0,Y~14P) <-> S(E~1!1,A~0,Y~14P!1) Ekf15,Ekb +S(E~1,A~0,Y~15P) <-> S(E~1!1,A~0,Y~15P!1) Ekf16,Ekb +S(E~1,A~0,Y~16P) <-> S(E~1!1,A~0,Y~16P!1) Ekf17,Ekb +S(E~1,A~0,Y~17P) <-> S(E~1!1,A~0,Y~17P!1) Ekf18,Ekb +S(E~1,A~0,Y~18P) <-> S(E~1!1,A~0,Y~18P!1) Ekf19,Ekb +S(E~1,A~0,Y~19P) <-> S(E~1!1,A~0,Y~19P!1) Ekf20,Ekb +S(F~1,A~0,Y~P) <-> S(F~1!1,A~0,Y~P!1) Fkf1,Fkb +S(F~1,A~0,Y~2P) <-> S(F~1!1,A~0,Y~2P!1) Fkf2,Fkb +S(F~1,A~0,Y~3P) <-> S(F~1!1,A~0,Y~3P!1) Fkf3,Fkb +S(F~1,A~0,Y~4P) <-> S(F~1!1,A~0,Y~4P!1) Fkf4,Fkb +S(F~1,A~0,Y~5P) <-> S(F~1!1,A~0,Y~5P!1) Fkf5,Fkb +S(F~1,A~0,Y~6P) <-> S(F~1!1,A~0,Y~6P!1) Fkf6,Fkb +S(F~1,A~0,Y~7P) <-> S(F~1!1,A~0,Y~7P!1) Fkf7,Fkb +S(F~1,A~0,Y~8P) <-> S(F~1!1,A~0,Y~8P!1) Fkf8,Fkb +S(F~1,A~0,Y~9P) <-> S(F~1!1,A~0,Y~9P!1) Fkf9,Fkb +S(F~1,A~0,Y~10P) <-> S(F~1!1,A~0,Y~10P!1) Fkf10,Fkb +S(F~1,A~0,Y~11P) <-> S(F~1!1,A~0,Y~11P!1) Fkf11,Fkb +S(F~1,A~0,Y~12P) <-> S(F~1!1,A~0,Y~12P!1) Fkf12,Fkb +S(F~1,A~0,Y~13P) <-> S(F~1!1,A~0,Y~13P!1) Fkf13,Fkb +S(F~1,A~0,Y~14P) <-> S(F~1!1,A~0,Y~14P!1) Fkf14,Fkb +S(F~1,A~0,Y~15P) <-> S(F~1!1,A~0,Y~15P!1) Fkf15,Fkb +S(F~1,A~0,Y~16P) <-> S(F~1!1,A~0,Y~16P!1) Fkf16,Fkb +S(F~1,A~0,Y~17P) <-> S(F~1!1,A~0,Y~17P!1) Fkf17,Fkb +S(F~1,A~0,Y~18P) <-> S(F~1!1,A~0,Y~18P!1) Fkf18,Fkb +S(F~1,A~0,Y~19P) <-> S(F~1!1,A~0,Y~19P!1) Fkf19,Fkb +S(F~1,A~0,Y~20P) <-> S(F~1!1,A~0,Y~20P!1) Fkf20,Fkb +#CATALYSIS + ENZYME INACTIVATION. +S(E~1!1,A~0,Y~U!1) -> S(E~1,A~1,Y~P) Ekc +S(E~1!1,A~0,Y~P!1) -> S(E~1,A~1,Y~2P) Ekc +S(E~1!1,A~0,Y~2P!1) -> S(E~1,A~1,Y~3P) Ekc +S(E~1!1,A~0,Y~3P!1) -> S(E~1,A~1,Y~4P) Ekc +S(E~1!1,A~0,Y~4P!1) -> S(E~1,A~1,Y~5P) Ekc +S(E~1!1,A~0,Y~5P!1) -> S(E~1,A~1,Y~6P) Ekc +S(E~1!1,A~0,Y~6P!1) -> S(E~1,A~1,Y~7P) Ekc +S(E~1!1,A~0,Y~7P!1) -> S(E~1,A~1,Y~8P) Ekc +S(E~1!1,A~0,Y~8P!1) -> S(E~1,A~1,Y~9P) Ekc +S(E~1!1,A~0,Y~9P!1) -> S(E~1,A~1,Y~10P) Ekc +S(E~1!1,A~0,Y~10P!1) -> S(E~1,A~1,Y~11P) Ekc +S(E~1!1,A~0,Y~11P!1) -> S(E~1,A~1,Y~12P) Ekc +S(E~1!1,A~0,Y~12P!1) -> S(E~1,A~1,Y~13P) Ekc +S(E~1!1,A~0,Y~13P!1) -> S(E~1,A~1,Y~14P) Ekc +S(E~1!1,A~0,Y~14P!1) -> S(E~1,A~1,Y~15P) Ekc +S(E~1!1,A~0,Y~15P!1) -> S(E~1,A~1,Y~16P) Ekc +S(E~1!1,A~0,Y~16P!1) -> S(E~1,A~1,Y~17P) Ekc +S(E~1!1,A~0,Y~17P!1) -> S(E~1,A~1,Y~18P) Ekc +S(E~1!1,A~0,Y~18P!1) -> S(E~1,A~1,Y~19P) Ekc +S(E~1!1,A~0,Y~19P!1) -> S(E~1,A~1,Y~20P) Ekc +S(F~1!1,A~0,Y~20P!1) -> S(F~1,A~1,Y~19P) Fkc +S(F~1!1,A~0,Y~19P!1) -> S(F~1,A~1,Y~18P) Fkc +S(F~1!1,A~0,Y~18P!1) -> S(F~1,A~1,Y~17P) Fkc +S(F~1!1,A~0,Y~17P!1) -> S(F~1,A~1,Y~16P) Fkc +S(F~1!1,A~0,Y~16P!1) -> S(F~1,A~1,Y~15P) Fkc +S(F~1!1,A~0,Y~15P!1) -> S(F~1,A~1,Y~14P) Fkc +S(F~1!1,A~0,Y~14P!1) -> S(F~1,A~1,Y~13P) Fkc +S(F~1!1,A~0,Y~13P!1) -> S(F~1,A~1,Y~12P) Fkc +S(F~1!1,A~0,Y~12P!1) -> S(F~1,A~1,Y~11P) Fkc +S(F~1!1,A~0,Y~11P!1) -> S(F~1,A~1,Y~10P) Fkc +S(F~1!1,A~0,Y~10P!1) -> S(F~1,A~1,Y~9P) Fkc +S(F~1!1,A~0,Y~9P!1) -> S(F~1,A~1,Y~8P) Fkc +S(F~1!1,A~0,Y~8P!1) -> S(F~1,A~1,Y~7P) Fkc +S(F~1!1,A~0,Y~7P!1) -> S(F~1,A~1,Y~6P) Fkc +S(F~1!1,A~0,Y~6P!1) -> S(F~1,A~1,Y~5P) Fkc +S(F~1!1,A~0,Y~5P!1) -> S(F~1,A~1,Y~4P) Fkc +S(F~1!1,A~0,Y~4P!1) -> S(F~1,A~1,Y~3P) Fkc +S(F~1!1,A~0,Y~3P!1) -> S(F~1,A~1,Y~2P) Fkc +S(F~1!1,A~0,Y~2P!1) -> S(F~1,A~1,Y~P) Fkc +S(F~1!1,A~0,Y~P!1) -> S(F~1,A~1,Y~U) Fkc +#REFRACTORY PERIOD +S(E~1,A~1) -> S(E~1,A~0) Emu +S(F~1,A~1) -> S(F~1,A~0) Fmu +end reaction rules +begin observables + Molecules S0 S(Y~U!?) + Molecules S1 S(Y~P!?) + Molecules S2 S(Y~2P!?) + Molecules S3 S(Y~3P!?) + Molecules S4 S(Y~4P!?) + Molecules S5 S(Y~5P!?) + Molecules S6 S(Y~6P!?) + Molecules S7 S(Y~7P!?) + Molecules S8 S(Y~8P!?) + Molecules S9 S(Y~9P!?) + Molecules S10 S(Y~10P!?) + Molecules S11 S(Y~11P!?) + Molecules S12 S(Y~12P!?) + Molecules S13 S(Y~13P!?) + Molecules S14 S(Y~14P!?) + Molecules S15 S(Y~15P!?) + Molecules S16 S(Y~16P!?) + Molecules S17 S(Y~17P!?) + Molecules S18 S(Y~18P!?) + Molecules S19 S(Y~19P!?) + Molecules S20 S(Y~20P!?) +end observables +begin actions +generate_network({overwrite=>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/Dushek2011/README.md b/Published/Dushek2011/README.md new file mode 100644 index 00000000..40fe6fba --- /dev/null +++ b/Published/Dushek2011/README.md @@ -0,0 +1,21 @@ +# Dushek 2011 + +TCR signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- Dushek_2011.bngl + +## Tags + +published, dushek, 2011, s diff --git a/Published/Dushek2011/metadata.yaml b/Published/Dushek2011/metadata.yaml new file mode 100644 index 00000000..a246a37c --- /dev/null +++ b/Published/Dushek2011/metadata.yaml @@ -0,0 +1,22 @@ +id: "Dushek_2011" +name: "Dushek 2011" +description: "TCR signaling" +tags: ["published", "dushek", "2011", "s"] +category: "signaling" +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-web-simulator" + source_path: "published-models/complex-models/Dushek_2011.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/Dushek2014/Dushek_2014.bngl b/Published/Dushek2014/Dushek_2014.bngl new file mode 100644 index 00000000..f564c3d3 --- /dev/null +++ b/Published/Dushek2014/Dushek_2014.bngl @@ -0,0 +1,75 @@ +#Model of a kinase (E) and phosphatase (F) actin on a biosensor (B) . +begin parameters +# Modification module +#Enzymatic reaction ( kinase ) + Ekf 10 + Ekb 1 + Ekc 1 + #Enzymatic reaction ( phosphatase ) + Fkf 10 + Fkb 1 + Fkc 1 + # Intramolecular module + kon1 1000 + koff1 1 + # Intermolecular module + kon2 10 + koff2 1 +end parameters +begin molecule types + E(b) + F(b) + B(e~0~1,b,Y~U~P) +end molecule types +begin seed species + E(b) 1 + F(b) 1 + B(e~0,b,Y~U) 100 +end seed species +begin reaction rules + # Phosphorylation by E. + E(b) + B(e~0,b,Y~U) <-> E(b!1).B(e~1,b,Y~U!1) Ekf,Ekb + E(b!1).B(e~1,b,Y~U!1) -> E(b) + B(e~0,b,Y~P) Ekc + + #Dephosphorylation by F. + F(b) + B(e~0,b,Y~P) <-> F(b!1).B(e~1,b,Y~P!1) Fkf, Fkb + F(b!1).B(e~1,b,Y~P!1) -> F(b) + B(e~0,b,Y~U) Fkc + # Intramolecular reaction + B(e~0,b,Y~P) <-> B(e~0,b!1,Y~P!1) kon1,koff1 + # Intermolecular reaction + + B(e~0,Y~P) + B(e~0,b) <-> B(e~0,Y~P!1).B(e~0,b!1) kon2,koff2 + +end reaction rules +begin observables + #Biosensor in State 1 + Molecules W B(e~0,b,Y~P), B(e~0,b,Y~U), B(e~1,b) + #Biosensor in State 2 + Molecules U B(e~0,b!1,Y~P!1) + #Biosensor in State 3 ( combination of a l l states below , see manuscript fordetails ) + + Species V2 B==2 + Species V3 B==3 + Species V4 B==4 + Species V5 B==5 + Species V6 B==6 + Species V7 B==7 + Species V8 B==8 + Species V9 B==9 + Species V10 B==10 + Species V11 B==11 + Species V12 B==12 + Species V13 B==13 + Species V14 B==14 + Species V15 B==15 +#Sequestered signaling protein +Molecules E E(b!+) +end observables +begin actions +#Generate network with a maximum oligomer of size 15 +generate network ({ overwrite =>1,max agg=>15}) ; +#Generate network with a maximum oligomer of size 2 +generate network ({ overwrite =>1,max agg=>2}) ; +#Generate Matlab f i l e +writeMfile ({}) ; +end actions \ No newline at end of file diff --git a/Published/Dushek2014/README.md b/Published/Dushek2014/README.md new file mode 100644 index 00000000..a3b4ccd1 --- /dev/null +++ b/Published/Dushek2014/README.md @@ -0,0 +1,21 @@ +# Dushek 2014 + +TCR signaling dynamics + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- Dushek_2014.bngl + +## Tags + +published, dushek, 2014, e, f, b diff --git a/Published/Dushek2014/metadata.yaml b/Published/Dushek2014/metadata.yaml new file mode 100644 index 00000000..956b96f6 --- /dev/null +++ b/Published/Dushek2014/metadata.yaml @@ -0,0 +1,22 @@ +id: "Dushek_2014" +name: "Dushek 2014" +description: "TCR signaling dynamics" +tags: ["published", "dushek", "2014", "e", "f", "b"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/complex-models/Dushek_2014.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/Erdem2021/Erdem_2021.bngl b/Published/Erdem2021/Erdem_2021.bngl new file mode 100644 index 00000000..8fdceee5 --- /dev/null +++ b/Published/Erdem2021/Erdem_2021.bngl @@ -0,0 +1,238 @@ +# CMM for MCF7 cell line +# 03/01/18 by Cemal ERDEM +# +# This is the BioNetGen model of early-stage signaling through +# InsR and IGF1R. Parameters are fit to RPPA data from MCF7 cells +# as described in the main text. +# +# To Run: Change the file extension from '.txt' to '.bngl' and +# use as input to BioNetGen. Details on BioNetGen can be found +# at bionetgen.org +# +# MODEL details: +# 1) IGF1-IGF1R and insulin-InsR binding only +# 2) ONE phospho sites at each receptor +# 3) NO basal phosphorylation +# 4) Rate parameters are in log10 +# 5) FOUR observables + +begin model +begin parameters + IGF1_0 1e5 + INS_0 0 + IGF1R_0 25000.0 + INSR_0 25000.0 + IRS_0 92766.0 + SOS_0 90075.0 + RAS_0 230642.0 + RAF_0 126069.0 + MEK_0 1098164.0 + ERK_0 763172.0 + PI3K_0 64009.0 + PDK1_0 186081.0 + AKT_0 432907.0 + TSC2_0 131339.0 + MTOR_0 83469.0 + RPS6K_0 121978.0 +# Ligand-receptor interactions + kf1 0.4837 + kf1b -2.9153 + kf1c 2.9865 + kf1d 1.2052 + kf2 4.6312 + kf2b -0.8667 + kf2c 4.8758 + kf2d -2.6526 +# Downstream interactions + kf3 -2.7913 + kf4 -3.1902 + kf5 -0.6920 + kf6 4.1250 + kf7 -3.0400 + kf8 -4.5760 + kf9 0.3532 + kf10 4.3309 + kf11 -6.9315 + kf12 -3.8016 + kf13 -6.2483 + kf14 1 + kf15 -6.7787 + kf16 -7.7887 + kf17 -7.7124 +# -P rates + kf101 -0.0831 + kf102 -6.4728 + kf103 0.0477 + kf104 3.9039 + kf105 0.7593 + kf106 0.5137 + kf107 -0.8678 + kf108 -3.3447 + kf109 -4.5098 + kf110 6.3930 + kf111 -2.7962 + kf112 -2.8996 +# Feedback events + kf201 2.7628 + kf202 4.0772 + kf203 -5.4445 + kf204 0.2274 + kf206 -6.3512 + kf207 -6.3752 + kf208 -5.0059 +# Re-sensitization events + kf301 -3.0943 + kf302 -0.9807 + kf303 4.2786 + kf304 -5.6559 +## Recepter recycling + kf401 -3.1016 + kf402 -2.9249 + kf403 -3.4193 + kf404 -7.0807 +end parameters + + +begin molecule types + # 16 species + IGF1(rec) + Ins(rec) + IGF1R(lig,phos~U~P,int~N~Y) + InsR(lig,phos~U~P,int~N~Y) + IRS(phos~U~P,inh~N~Y) + SOS(act~N~Y,inh~N~Y) + Ras(gtp~N~Y) + Raf(phos~U~P,inh~N~Y) + MEK(phos~U~P,inh~N~Y) + PI3K(act~N~Y) + PDK1(act~N~Y) + TSC2(phos~U~P) + mTOR(act~N~Y) + Akt(phos~U~P) + RPS6K(phos~U~P) + ERK(phos~U~P) +end molecule types + +begin seed species + IGF1(rec) IGF1_0 + Ins(rec) INS_0 + IGF1R(lig,phos~U,int~N) IGF1R_0 + InsR(lig,phos~U,int~N) INSR_0 + IRS(phos~U,inh~N) IRS_0 + SOS(act~N,inh~N) SOS_0 + Ras(gtp~N) RAS_0 + Raf(phos~U,inh~N) RAF_0 + MEK(phos~U,inh~N) MEK_0 + PI3K(act~N) PI3K_0 + PDK1(act~N) PDK1_0 + TSC2(phos~U) TSC2_0 + mTOR(act~N) MTOR_0 + Akt(phos~U) AKT_0 + RPS6K(phos~U) RPS6K_0 + ERK(phos~U) ERK_0 +end seed species + +begin observables + Species pRecTot_free IGF1R(int~N,phos~P),InsR(int~N,phos~P) + Species pAkt308_free Akt(phos~P) + Species pRPS6K_free RPS6K(phos~P) + Species pERK_free ERK(phos~P) +end observables + +begin reaction rules + # Initial ligand-receptor binding + IGF1(rec) + IGF1R(lig,int~N,phos~U) <-> IGF1(rec!1).IGF1R(lig!1,int~N,phos~U) 10^kf1,10^kf1b + IGF1R(lig!+,int~N,phos~U) -> IGF1R(lig!+,int~N,phos~P) 10^kf1c + IGF1R(lig!+,int~N,phos~P) -> IGF1R(lig,int~N,phos~U) 10^kf1d + Ins(rec) + InsR(lig,int~N,phos~U) <-> Ins(rec!1).InsR(lig!1,int~N,phos~U) 10^kf2,10^kf2b + InsR(lig!+,int~N,phos~U) -> InsR(lig!+,int~N,phos~P) 10^kf2c + InsR(lig!+,int~N,phos~P) -> InsR(lig,int~N,phos~U) 10^kf2d + + # pReceptor-IRS binding and activation + IGF1R(int~N,phos~P) + IRS(inh~N,phos~U) -> IGF1R(int~N,phos~P) + IRS(inh~N,phos~P) 10^kf3 + InsR(int~N,phos~P) + IRS(inh~N,phos~U) -> InsR(int~N,phos~P) + IRS(inh~N,phos~P) 10^kf4 + # pReceptor-SOS binding and activation + IGF1R(int~N,phos~P) + SOS(inh~N,act~N) -> IGF1R(int~N,phos~P) + SOS(inh~N,act~Y) 10^kf5 + InsR(int~N,phos~P) + SOS(inh~N,act~N) -> InsR(int~N,phos~P) + SOS(inh~N,act~Y) 10^kf6 + + # SOS activation by IRS1 + IRS(inh~N,phos~P) + SOS(inh~N,act~N) -> IRS(inh~N,phos~P) + SOS(inh~N,act~Y) 10^kf7 + # Ras activation by SOS + SOS(inh~N,act~Y) + Ras(gtp~N) -> SOS(inh~N,act~Y) + Ras(gtp~Y) 10^kf8 + # Raf activation by Ras + Ras(gtp~Y) + Raf(inh~N,phos~U) -> Ras(gtp~Y) + Raf(inh~N,phos~P) 10^kf9 + # MEK activation by Raf + Raf(inh~N,phos~P) + MEK(inh~N,phos~U) -> Raf(inh~N,phos~P) + MEK(inh~N,phos~P) 10^kf10 + # ERK activation by MEK + MEK(inh~N,phos~P) + ERK(phos~U) -> MEK(inh~N,phos~P) + ERK(phos~P) 10^kf11 + + # PI3K activation by IRS1 + IRS(inh~N,phos~P) + PI3K(act~N) -> IRS(inh~N,phos~P) + PI3K(act~Y) 10^kf12 + # PDK1 activation PI3K + PI3K(act~Y) + PDK1(act~N) -> PI3K(act~Y) + PDK1(act~Y) 10^kf13 + # Akt activation by PDK1 + PDK1(act~Y) + Akt(phos~U) -> PDK1(act~Y) + Akt(phos~P) 10^kf14 + # TSC2 inactivation by Akt + Akt(phos~P) + TSC2(phos~U) -> Akt(phos~P) + TSC2(phos~P) 10^kf15 + # mTOR activation by inactive TSC2 + TSC2(phos~P) + mTOR(act~N) -> TSC2(phos~P) + mTOR(act~Y) 10^kf16 + # RPS6K activation by mTOR + mTOR(act~Y) + RPS6K(phos~U) -> mTOR(act~Y) + RPS6K(phos~P) 10^kf17 + + # De-phosphorylation (-P) events + IRS(phos~P) -> IRS(phos~U) 10^kf101 + SOS(act~Y) -> SOS(act~N) 10^kf102 + Ras(gtp~Y) -> Ras(gtp~N) 10^kf103 + Raf(phos~P) -> Raf(phos~U) 10^kf104 + MEK(phos~P) -> MEK(phos~U) 10^kf105 + PI3K(act~Y) -> PI3K(act~N) 10^kf106 + PDK1(act~Y) -> PDK1(act~N) 10^kf107 + TSC2(phos~P) -> TSC2(phos~U) 10^kf108 + mTOR(act~Y) -> mTOR(act~N) 10^kf109 + Akt(phos~P) -> Akt(phos~U) 10^kf110 + RPS6K(phos~P) -> RPS6K(phos~U) 10^kf111 + ERK(phos~P) -> ERK(phos~U) 10^kf112 + + #### Negative feedbacks + # SOS inactivation by pERK + ERK(phos~P) + SOS(inh~N,act~N) -> ERK(phos~P) + SOS(inh~Y,act~N) 10^kf201 + # MEK inactivation by pERK + ERK(phos~P) + MEK(inh~N,phos~U) -> ERK(phos~P) + MEK(inh~Y,phos~U) 10^kf202 + # IRS1 inhibition by pRPS6K + RPS6K(phos~P) + IRS(inh~N,phos~U) -> RPS6K(phos~P) + IRS(inh~Y,phos~U) 10^kf203 + # Raf inactivation by pAkt + Akt(phos~P) + Raf(inh~N,phos~U) -> Akt(phos~P) + Raf(inh~Y,phos~U) 10^kf204 + # IRS inactivation by pERK + ERK(phos~P) + IRS(inh~N,phos~U) -> ERK(phos~P) + IRS(inh~Y,phos~U) 10^kf206 + # Akt inactivation by pERK + ERK(phos~P) + Akt(phos~P) -> ERK(phos~P) + Akt(phos~U) 10^kf207 + # IRS inactivation by pAkt + Akt(phos~P) + IRS(inh~N,phos~U) -> Akt(phos~P) + IRS(inh~Y,phos~U) 10^kf208 + + #### Re-sensitization + IRS(inh~Y) -> IRS(inh~N) 10^kf301 + SOS(inh~Y) -> SOS(inh~N) 10^kf302 + Raf(inh~Y) -> Raf(inh~N) 10^kf303 + MEK(inh~Y) -> MEK(inh~N) 10^kf304 + + ## Recepter recycling + IGF1R(lig!+,int~N,phos~P) -> IGF1R(lig!+,int~Y,phos~P) 10^kf401 + IGF1(rec!1).IGF1R(lig!1,int~Y,phos~P) -> IGF1R(lig,int~N,phos~U) 10^kf402 + InsR(lig!+,int~N,phos~P) -> InsR(lig!+,int~Y,phos~P) 10^kf403 + Ins(rec!1).InsR(lig!1,int~Y,phos~P) -> InsR(lig,int~N,phos~U) 10^kf404 + +end reaction rules +end model + +# actions +begin actions +generate_network({overwrite=>1}) +#simulate({method=>"ode",t_end=>172800,sample_times=>[0,300,600,1800,21600,86400,172800]}) +#simulate({method=>"ode",t_end=>2e5}) +simulate({method=>"ode",t_start=>0,t_end=>1800,n_steps=>2e4}) +#writeMexfile({t_start=>0,t_end=>2e5,n_steps=>10001,atol=>1e-6,rtol=>1e-9,max_num_steps=>10000,max_err_test_fails=>20}) +#writeMfile_all() +writeLatex() +#writeXML() + +end actions \ No newline at end of file diff --git a/Published/Erdem2021/README.md b/Published/Erdem2021/README.md new file mode 100644 index 00000000..5cc36ddb --- /dev/null +++ b/Published/Erdem2021/README.md @@ -0,0 +1,21 @@ +# Erdem 2021 + +InsR/IGF1R signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Erdem_2021.bngl + +## Tags + +published, erdem, 2021, igf1, ins, igf1r, insr, irs, sos, ras, raf diff --git a/Published/Erdem2021/metadata.yaml b/Published/Erdem2021/metadata.yaml new file mode 100644 index 00000000..69b2fe0a --- /dev/null +++ b/Published/Erdem2021/metadata.yaml @@ -0,0 +1,22 @@ +id: "Erdem_2021" +name: "Erdem 2021" +description: "InsR/IGF1R signaling" +tags: ["published", "erdem", "2021", "igf1", "ins", "igf1r", "insr", "irs", "sos", "ras", "raf"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/complex-models/Erdem_2021.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/Faeder2003/Faeder_2003.bngl b/Published/Faeder2003/Faeder_2003.bngl new file mode 100644 index 00000000..86cc2fdd --- /dev/null +++ b/Published/Faeder2003/Faeder_2003.bngl @@ -0,0 +1,123 @@ +begin model +begin parameters + Lig_tot 6.0e3 # units: molecules + Rec_tot 4.0e2 # units: molecules + Lyn_tot 2.8e1 # units: molecules + Syk_tot 4.0e2 # units: molecules + + kp1 1.32845238e-7 # units: /molecule/s + km1 0 # units: /s + kp2 2.5e-1 # units: /molecule/s + km2 0 # units: /s + kpL 5e-2 # units: /molecule/s + kmL 20 # units: /s + kpLs 5e-2 # units: /molecule/s + kmLs 0.12 # units: /s + kpS 6e-2 # units: /molecule/s + kmS 0.13 # units: /s + kpSs 6e-2 # units: /molecule/s + kmSs 0.13 # units: /s + pLb 30 # units: /s + pLbs 100 # units: /s + pLg 1 # units: /s + pLgs 3 # units: /s + pLS 30 # units: /s + pLSs 100 # units: /s + pSS 100 # units: /s + pSSs 200 # units: /s + dm 20 # units: /s + dc 20 # units: /s +end parameters + +begin molecules +Lig(l,l) +Lyn(U,SH2) +Syk(tSH2,l~Y~pY,a~Y~pY) +Rec(a,b~Y~pY,g~Y~pY) +end molecules + +begin species + Lig(l,l) Lig_tot + Lyn(U,SH2) Lyn_tot + Syk(tSH2,l~Y,a~Y) Syk_tot + Rec(a,b~Y,g~Y) Rec_tot +end species + +begin reaction rules + # Ligand-receptor binding + R1: Rec(a) + Lig(l,l) <-> Rec(a!1).Lig(l!1,l) kp1, km1 + + # Receptor-aggregation + R2: Rec(a) + Lig(l,l!+) <-> Rec(a!2).Lig(l!2,l!+) kp2, km2 + + # Constitutive Lyn-receptor binding + R3: Rec(b~Y) + Lyn(U,SH2) <-> Rec(b~Y!1).Lyn(U!1,SH2) kpL, kmL + + # Transphosphorylation of beta by constitutive Lyn + R4: Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~Y) -> Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~pY) pLb + + # Transphosphorylation of gamma by constitutive Lyn + R5: Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~Y) -> Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY) pLg + + # Lyn-receptor binding through SH2 domain + R6: Rec(b~pY) + Lyn(U,SH2) <-> Rec(b~pY!1).Lyn(U,SH2!1) kpLs, kmLs + + # Transphosphorylation of beta by SH2-bound Lyn + R7: Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,b~Y) -> Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,b~pY) pLbs + + # Transphosphorylation of gamma by SH2-bound Lyn + R8: Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~Y) -> Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY) pLgs + + # Syk-receptor binding through tSH2 domain + R9: Rec(g~pY) + Syk(tSH2) <-> Rec(g~pY!1).Syk(tSH2!1) kpS, kmS + + # Transphosphorylation of Syk by constitutive Lyn + R10: Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~Y) -> \ + Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~pY) pLS + + # Transphosphorylation of Syk by SH2-bound Lyn + R11: Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~Y) -> \ + Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~pY) pLSs + + # Transphosphorylation of Syk by Syk not phosphorylated on aloop + R12: Lig(l!1,l!2).Syk(tSH2!3,a~Y).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~Y) -> \ + Lig(l!1,l!2).Syk(tSH2!3,a~Y).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~pY) pSS + + # Transphosphorylation of Syk by Syk phosphorylated on aloop + R13: Lig(l!1,l!2).Syk(tSH2!3,a~pY).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~Y) -> \ + Lig(l!1,l!2).Syk(tSH2!3,a~pY).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~pY) pSSs + + # Dephosphorylation of Rec beta + R14: Rec(b~pY) -> Rec(b~Y) dm + + # Dephosphorylation of Rec gamma + R15: Rec(g~pY) -> Rec(g~Y) dm + + # Dephosphorylation of Syk at membrane + R16: Syk(tSH2!+,l~pY) -> Syk(tSH2!+,l~Y) dm + R17: Syk(tSH2!+,a~pY) -> Syk(tSH2!+,a~Y) dm + + # Dephosphorylation of Syk in cytosol + R18: Syk(tSH2,l~pY) -> Syk(tSH2,l~Y) dc + R19: Syk(tSH2,a~pY) -> Syk(tSH2,a~Y) dc +end reaction rules + +begin observables + Molecules LynFree Lyn(U,SH2) + Molecules RecMon Rec(a), Rec(a!1).Lig(l!1,l) + Molecules RecDim Rec.Rec + + Molecules RecPbeta Rec(b~pY!?) + Molecules RecPgamma Rec(g~pY), Rec(g~pY!+) + Molecules RecSyk Rec(g~pY!1).Syk(tSH2!1) + Molecules RecSykPS Rec(g~pY!1).Syk(tSH2!1,a~pY) + + Molecules SykTest Syk + Molecules LynTest Lyn + Molecules RecTest Rec +end observables +end model + +## actions ## +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end=>600,n_steps=>10,atol=>1e-8,rtol=>1e-8}) \ No newline at end of file diff --git a/Published/Faeder2003/metadata.yaml b/Published/Faeder2003/metadata.yaml new file mode 100644 index 00000000..b8403f7e --- /dev/null +++ b/Published/Faeder2003/metadata.yaml @@ -0,0 +1,22 @@ +id: "Faeder_2003" +name: "Faeder 2003" +description: "FceRI signaling" +tags: ["published", "immunology", "faeder", "2003", "lig", "lyn", "syk", "rec"] +category: "immunology" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/immune-signaling/Faeder_2003.bngl" +playground: + visible: true + gallery_category: "immunology" + featured: false + difficulty: "advanced" diff --git a/Published/Hat2016/Hat_2016.bngl b/Published/Hat2016/Hat_2016.bngl new file mode 100644 index 00000000..58cae826 --- /dev/null +++ b/Published/Hat2016/Hat_2016.bngl @@ -0,0 +1,744 @@ +# +# This BioNetGen model code features the article: +# +# "Feedbacks, Bifurcations, and Cell Fate Decision-Making in the p53 System" +# by Hat B, Kochanczyk M, Bogdal MN, and Lipniacki T +# (PLOS Computational Biology 2016). +# +# In order to learn how to execute this model, please read the accompanying +# ReadMe.txt file. +# + + +begin model + +begin parameters + + # -----------------------====[ simulation type ]====----------------------- # + + STOCHASTIC_GENES 0 # Pick 0 or 1 to have deterministic or stochastic gene + # expression, respectively, *and* select a corresponding + # simulation method at the bottom of this file (i.e., + # method=>"ssa" or method=>"ode"). Please note that + # stochastic equilibration can take a lot of CPU time. + + + # -------------------------====[ stimulation ]====------------------------- # + + IR_duration 10*60 # time of exposure to IR [s] + IR_Gy 2 # dose of IR [Gy] (note: may be changed in + # the actions section) + + DNA_DSB_per_1Gy 10 # number of DNA DSBs per 1 Gy of IR (~10) + DNA_DSB_due_to_IR DNA_DSB_per_1Gy*IR_Gy/IR_duration # expected DNA damaging rate + + is_IR_switched_on 0 # subject to change in simulation protocol + + + # -----------------------====[ on/off switches ]====----------------------- # + + has_DNA_DSB_repair 1 + can_Caspase_make_DNA_DSB 1 + + + # ------------------------====[ total amounts ]====------------------------ # + + _total 10^5 + SIAH1_total _total # total amount of SIAH1 + ATM_total _total # total amount of ATM + AKT_total _total # total amount of AKT [BMC Syst.Biol.2013: 2e5] + PIP_total _total # total amount of PIP2 and PIP2 + Rb_total 3*_total # total amount of Rb + E2F1_total 2*_total # total amount of E2F1 + BclXL_total _total # total amount of Bcl-xL [BMC Syst.Biol.2013: 1e5] + Bad_total 6*10^4 # total amount of Bad [BMC Syst.Biol.2013:: gate AND: 6e4, gate OR: 2e5] + Fourteen_3_3_total 2*10^5 # total amount of 14-3-3 [BMC Syst.Biol.2013: 2e5] + + + + # ----------------------====[ kinetic constants ]====---------------------- # + + ## DNA "health"-related --- + # + rep has_DNA_DSB_repair*10^-3 # DNA DSBs repair rate + DNA_DSB_Repair_Cplx_total 20 # number of DNA repair complexes + # + h1 is_IR_switched_on*10^-6 # rate of DNA DSB induction by IR + h2 can_Caspase_make_DNA_DSB*10^-13 # rate of DNA DSB induction by active Caspase + # + DNA_DSB_max 10^6 # max number of DNA DSBs + # + + ## protein activation --- + # + a1 3*10^-10 # activation of proCaspases by Bax [BMC Syst.Biol.2013: 2e-10] + a2 10^-12 # Caspases autoact'n [BMC Syst.Biol.2013: 1e-12] + + ## gene activation --- + # + _q0 10^-5 + q0_pten _q0 # PTEN gene act'n, spontaneous + q0_wip1 _q0 # Wip1 gene act'n, spontaneous + q0_mdm2 10*_q0 # Mdm2 gene act'n, spontaneous + q0_bax _q0 # Bax gene act'n, spontaneous + q0_p21 _q0 # p21 gene act'n, spontaneous + + _q1 3*10^-13 + q1_pten _q1 # PTEN gene act'n induced by p53_killer, 0 for PTEN non-inducible cells (MCF7) + q1_mdm2 _q1 # Mdm2 gene act'n induced by p53_arrester + q1_wip1 _q1 # Wip1 gene act'n induced by p53_arrester + q1_p21 _q1 # p21 gene act'n induced by p53_arrester + q1_bax _q1 # Bax gene act'n induced by p53_killer + + n_pten_alleles 2 # : + n_mdm2_alleles 2 # | + n_wip1_alleles 2 # > these parameters influence only STOCHASTIC gene expression + n_p21_alleles 2 # | + n_bax_alleles 2 # ; + + ## gene inactivation --- + # + q2 3*10^-3 # for genes of Mdm2, Wip1, p21, PTEN, Bax + + ## transcription --- + # + _s 0.1 + s1 _s # Wip1 mRNA synthesis + s2 0.3*_s # PTEN mRNA synthesis + s3 _s # Mdm2 mRNA synthesis + s4 0.3*_s # Bax mRNA synthesis [BMC Syst.Biol.2013: 0.03] + s5 _s # p21 mRNA synthesis + + ## translation --- + # + _t 0.1 + t1 _t # Wip1 transl'n + t2 _t # PTEN transl'n + t3 _t # Mdm2 transl'n + t4 _t # Bax transl'n [BMC Syst.Biol.2013: 0.2] + t5 _t # p21 transl'n + + ## protein synthesis (combined transcription & translation) --- + # + _ss 30 + s6 10*_ss # p53 sythesis + s7 _ss # proCaspases sythesis [BMC Syst.Biol.2013: 20] + s8 _ss # HIPK2 synthesis + s9 _ss # Cyclin E synthesis, induced by E2F1 + s10 0.1*_ss # Cyclin E synthesis, spontaneous + + ## phosphorylation --- + # + p1 3*10^-4 # ATM p'ylation due to the presence of IR-induced DNA DSBs + p2 10^-8 # SIAH1 p'ylation by ATM_p + p3 3*10^-8 # p53 p'ylation by ATM_p at S15_S20 + p4 10^-10 # p53_arrester p'ylation by HIPK2 at S46 + p5 10^-8 # Mdm2_cyt p'ylation + p6 10^-8 # Mdm2_nuc_S166p_S186p p'ylation by ATM_p at S395 + p7 3*10^-9 # Bad p'ylation by AKT_p [BMC Syst.Biol.2013: 3e-10] + p8 3*10^-9 # PIP3 p'ylation by PI3K + p9 3*10^-6 # Rb p'ylation by Cyclin E + p10 p9 # Rb p'ylation by Cyclin E in Rb--E2F complex + p11 p4 # p53 p'ylation by HIPK2 at S46 + p12 10^-9 # AKT p'ylation at PIP3 + + ## dephosphorylation --- + # + d1 10^-8 # ATM_p dep'ylation by Wip1 + d2 3*10^-5 # SIAH1_p dep'ylation + d3 10^-4 # p53_arrester dep'ylation, spontaneous + d4 10^-10 # p53_killer dep'ylation of S46p by Wip1 + d5 10^-4 # Mdm2_cyt_S166p_S186p dep'ylation of S166p_186p, spontaneous + d6 10^-10 # Mdm2_nuc_S166p_S186p_S395p dep'ylation of S395p by Wip1 + d7 3*10^-7 # PIP3 dep'ylation to PIP2 by PTEN + d8 10^-4 # AKT_p dep'ylation, spontaneous + d9 3*10^-5 # Bad_p dep'ylation, spontaneous [BMC Syst.Biol.2013: 3e-5] + d10 d3 # p53_killer dep'ylation of S15p_S20p, spontaneous + d11 d4 # p53_S46 dep'ylation of S46p by Wip1 + d12 10^4 # Rb dep'ylation + + ## proteins binding --- + # + _b 10^-5 + b1 3*_b # Bax & BclXL [BMC Syst.Biol.2013: 3e-5] + b2 300*_b # Bad & BclXL [BMC Syst.Biol.2013: 3e-3] + b3 300*_b # Bad_p & 14-3-3 [BMC Syst.Biol.2013: 3e-3] + b4 _b # Rb & E2F1 + b5 _b # p21 & Cyclin E + + ## complexed proteins unbinding --- + # + _u 10^-3 + u1 _u # Bax--BclXL complex [BMC Syst.Biol.2013: 1e-4] + u2 _u # Bad--BclXL complex [BMC Syst.Biol.2013: 1e-4] + u3 _u # Bad_p--14-3-3 complex [BMC Syst.Biol.2013: 1e-4] + u5 0.1*_u # Rb--E2F1 complex + u6 0.1*_u # p21--Cyclin E complex + + ## nucleocytoplasmic transport --- + # + i1 10^-3 # Mdm2_cyt_S166p_S186p nuclear import + + ## mRNA degradation --- + # + _g 10^-4 + g1 3*_g # mRNA_Wip1 deg'n + g2 3*_g # mRNA_PTEN deg'n + g3 3*_g # mRNA_Mdm2 deg'n + g4 3*_g # mRNA_Bax deg'n [BMC Syst.Biol.2013: 1e-3] + g5 3*_g # mRNA_p21 deg'n + + ## protein degradation --- + # + _gg 10^-13 + g6 0.3*_g # PTEN degr'n (delay of a positive feedback loop) + g7 _gg # Mdm2_nuc_2p- and SIAH1_u-driven HIPK2 degr'n + g8 3*_g # Wip1 (time lag to ATM_p dep'ylation) + g9 _g # Bax (delay of apoptosis) [BMC Syst.Biol.2013: 1e-4] + g10 0.1*_g # p53 deg'n, spontaneous + g101 0.1*_g # p53 non-killer,non-S46 deg'n, spontaneous + g11 100*_gg # p53 deg'n induced by Mdm2_nuc_S166p_S186p + g12 _gg # p53_arrester deg'n induced by Mdm2_nuc_S166p_S186p + g13 _gg # p53_killer deg'n induced by Mdm2_nuc_S166p_S186p + g14 _g # Mdm2_cyt_dep'ylated deg'n + g15 0.3*_g # Mdm2_{{cyt,nuc}_S166p_S186p,nuc_166p_186p_395p} deg'n, spontaneous + g16 _g # Mdm2_nuc_S166p_S186p_*395p* deg'n + g17 3*_g # proCaspase [BMC Syst.Biol.2013: 2e-4] + g18 3*_g # Caspase + g19 3*_g # p21 + g20 _g # Cyclin E + + ## nonlinear kinetics --- + # + h 2 # Hill coefficient (universal) + # + M1 5 # Michaelis--Menten const. in ATM p'ylation due to IR + M2 10^5 # Michaelis--Menten const. in Rb dep'ylation at S567 + M3 2*10^5 # Michaelis--Menten const. in E2F1-induced Cyclin E synthesis + +end parameters + + +begin molecule types + + # ------------------========###[ Core module ]###========----------------- # + + # DNA damage due to ionizing radiation: double strand breaks (DSBs). + # + DNA_DSB() + + ## ATM_HUMAN, protein kinase, DNA damage sensor; when S1981~P, phosphorylates + # Mdm2 at S395, SIAH1 at S19, and p53 at S15_S20. + # + # * S1981 -- site autophosphorylated upon DNA DSBs, dephosphorylated by Wip1. + # + ATM(S1981~0~P) + # Assuming const. level. + + ## SIAH1_HUMAN, ubiquitin-protein ligase; when S19~0, mediates ubiquitination + # of HIPK2. + # + # * S19 -- phosphosite for ATM; S19~P disrupts interaction with HIPK2. + # + SIAH1(S19~0~P) + + ## HIPK2_HUMAN, protein kinase, phosphorylates p53 at S46. + # + HIPK2() + + ## PPM1D_HUMAN, aka PPM1D, aka Wip1, phosphatase; dephosphorylates p53 at S46, + # Mdm2 at S395, and ATM at S1981. + Wip1() + # + ## wip1/ppm1d gene and its transcript; expression is induced by p53_arrester. + # + gene_Wip1(tf~0~1) + # + mRNA_Wip1() + + ## P53_HUMAN, a potent transcription factor; when S15_S20~PP and S46~0 + # (so called p53_arrester), induces expression of cell cycle + # arrest-related genes; when S15_S20~PP and S46~P (so called + # p53_killer), induces expression of pro-apoptotic genes. + # + # * S15_S20 -- phosphorylated by ATM(S1981~P), dephosphorylated spontaneuosly. + # + # * S46 -- phosphorylated by HIPK2, dephosphorylated by Wip1. + # + p53(S15_S20~0~PP,S46~0~P) + + ## MDM2_HUMAN, ubiquitin-protein ligase; when in nucleus and S166_S186~PP and + # S395~0, mediates ubiquitination of p53. + # + # * S166_S186 -- phosphorylated by AKT, dephosphorylated spontaneuosly. + # + # * S395 -- phosphorylated by ATM(S1981~P), dephosphorylated by Wip1. + # + # * loc -- subcellular location (S166_S186~PP is required for nuclear entry). + # + Mdm2(S166_S186~0~PP,S395~0~P,loc~Nuc~Cyt) + # + ## mdm2 gene and its transcript; expression is induced by p53_arrester. + # + gene_Mdm2(tf~0~1) + # + mRNA_Mdm2() + + ## PTEN_HUMAN, protein and lipid phosphatase; mediates AKT deactivation. + # + PTEN() + # + ## pten gene transcript; expression induced by p53_killer. + # + gene_PTEN(tf~0~1) + # + mRNA_PTEN() + + # PK3C*_HUMAN, phosphatidylinositols kinase; mediates growth factor signaling + # resulting in AKT activation. + PI3K() + # Assuming const. level corresponding to const. growth factor stimulation level. + + ## AKT*_HUMAN, protein kinase, activated when T308~P. + # + # * T308 -- phosphorylated spontaneously in PIP3-rich conditions, + # dephosphorylated spontaneously. + AKT(T308~0~P) + + ## Plasma membrane phosphatidylinositol bis- or trisphosphate. + # + # s -- s~PP represents PtdIns(4,5)P_2 aka PIP2, while + # s~PPP represents PtdIns(3,4,5)P_3 aka PIP3. + # + PtdIns(s~PP~PPP) + + + # ------------========###[ Cell cycle arrest module ]###========------------ # + + ## CDN1A_HUMAN, aka WAF1, aka CIP1; blocks cell cycle progression by the + # inhibitory binding to cyclin-dependent kinase Cyclin_E. + # + # * b -- cyclin E binding site. + # + p21(b) + # + ## cdkn1a, aka waf1, aka cip1, gene and its transcript; expression is induced + # by p53_arrester. + mRNA_p21() + # + gene_p21(tf~0~1) + + ## CCNE{1,2}_HUMAN, cyclin E1/2; phosphorylates Rb protein to promote cell + # cycle progression. + # + # * b -- p21 binding site. + # + Cyclin_E(b) + + ## RB_HUMAN, aka RB1, retinoblastoma protein; when S567~0, inhibits + # transcriptional activity of E2F (E2F1). + # + # * S567 -- phosphorylation is induced by Cyclin E, dephosphorylation is + # spontaneous. + # + # * b -- E2F1 binding site. + # + Rb(S567~0~P,b) + + ## E2F1_HUMAN, transcriptin factor involved in cell cycle regulation and in + # DNA replication + # + # * b -- Rb binding site. + # + E2F1(b) + + + # ----------------========###[ Apoptotic module ]###========---------------- # + + ## BAX_HUMAN, BclXL binding partner, mediates cytochrome c release from mito- + # chondrion which leads to the activation of caspases + # + # * b -- BclXL binding site. + # + Bax(b) + # + ## bax, aka bcl2l4, gene transcript; expression is induced by p53_killer. + # + gene_Bax(tf~0~1) + # + mRNA_Bax() + + ## B2CL1_HUMAN, isoform Bxl-X(L) of Bcl-2-like protein 1, inhibitor of Bax. + # + # * b -- BclXL xor Bad(S75_S99~0) binding site. + # + BclXL(b) + + ## BAD_HUMAN, competitor for the binding to BclXL; when S75_S99~P, can bind + # to 14_3_3. + # + # * S75_S99 == S112_S136 in alternative numbering -- phosphorylated by AKT. + # + # * b -- BclXL xor 14-3-3 binding site. + # + Bad(S75_S99~0~PP,b) + + ## 1433T_HUMAN, 14-3-3 adapter protein, isoform theta; binds Bad(S75_S99~PP). + # + # * b -- Bad(S75_S99~PP) binding site. + # + Fourteen_3_3(b) + + ## CASP*_HUMAN, proteolytic enzymes activated by Bax and by themselves. + # + # * csp -- denotes wheter the caspase is inactive (pro-caspase) or active. + # + Caspase(csp~Pro~Act) + +end molecule types + + + +begin seed species + + # in core module --- + # + #DNA_DSB() 0 # (damage and repair) + SIAH1(S19~0) SIAH1_total # (constant pool) + ATM(S1981~0) ATM_total # (constant pool) + #HIPK2() 0 # (synthesized and degraded) + #mRNA_Wip1() 0 # (synthesized and degraded) + #Wip1() 0 # (synthesized and degraded) + #p53(S15_S20~0,S46~0) 0 # (synthesized and degraded) + #p53(S15_S20~PP,S46~0) 0 # + #mRNA_Mdm2() 0 # (synthesized and degraded) + #Mdm2(S166_S186~0,S395~0,loc~Cyt ) 0 # (synthesized and degraded) + #mRNA_PTEN() 0 # (synthesized and degraded) + #PTEN() 0 # (synthesized and degraded) + PI3K() _total # (constant) + PtdIns(s~PP) PIP_total # (constant pool) + AKT(T308~0) AKT_total # (constant pool) + + # in cell cycle arrest module --- + # + Rb(S567~0,b) Rb_total # (constant pool) + #mRNA_p21() 0 # (synthesized and degraded) + #p21(b) 0 # (synthesized and degraded) + #Rb(S567~0,b!5).E2F1(b!5) 0 # + #Cyclin_E(b) 0 # (synthesized and degraded) + #p21(b!4).Cyclin_E(b!4) 0 # + E2F1(b) E2F1_total # (constant pool) + + # in apoptotic module --- + # + #mRNA_Bax() 0 # (synthesized and degraded) + #Bax(b) 0 # (synthesized and degraded) + BclXL(b) BclXL_total # (constant pool) + #Bax(b!1).BclXL(b!1) 0 # + Bad(S75_S99~0,b) Bad_total # (constant pool, logic gate-type dependent) + #BclXL(b!2).Bad(S75_S99~0,b!2) 0 # + Fourteen_3_3(b) Fourteen_3_3_total # (constant pool) + #Bad(S75_S99~P,b!3).Fourteen_3_3(b!3) 0 # + #Caspase(csp~Pro) 0 # (synthesized and degraded) + # in cell-cycle arrest module --- + # + + # for stochastic gene expression: + gene_Wip1(tf~0) n_wip1_alleles + gene_Mdm2(tf~0) n_mdm2_alleles + gene_p21(tf~0) n_p21_alleles + gene_PTEN(tf~0) n_pten_alleles + gene_Bax(tf~0) n_bax_alleles + +end seed species + + +begin observables + + ## Core module -- + # + Molecules DNA_DSB_tot DNA_DSB() + Molecules ATM_tot ATM() + Molecules ATM_p ATM(S1981~P) + Molecules gene_Wip1_on gene_Wip1(tf~1) + Molecules mRNA_Wip1 mRNA_Wip1() + Molecules Wip1_tot Wip1() + Molecules SIAH1_tot SIAH1() + Molecules SIAH1_u SIAH1(S19~0) + Molecules SIAH1_p SIAH1(S19~P) + Molecules HIPK2_tot HIPK2() + Molecules p53_tot p53() + Molecules p53_0p p53(S15_S20~0,S46~0) + Molecules p53_arr p53(S15_S20~PP,S46~0) + Molecules p53_kill p53(S15_S20~PP,S46~P) + Molecules gene_Mdm2_on gene_Mdm2(tf~1) + Molecules mRNA_Mdm2 mRNA_Mdm2() + Molecules Mdm2_tot Mdm2() + Molecules Mdm2_cyt_0p Mdm2(S166_S186~0,S395~0,loc~Cyt) + Molecules Mdm2_cyt_2p Mdm2(S166_S186~PP,S395~0,loc~Cyt) + Molecules Mdm2_nuc_2p Mdm2(S166_S186~PP,S395~0,loc~Nuc) + Molecules Mdm2_nuc_3p Mdm2(S166_S186~PP,S395~P,loc~Nuc) + Molecules PI3K_tot PI3K() + Molecules gene_PTEN_on gene_PTEN(tf~1) + Molecules mRNA_PTEN mRNA_PTEN() + Molecules PTEN_tot PTEN() + Molecules PIP2 PtdIns(s~PP) + Molecules PIP3 PtdIns(s~PPP) + Molecules AKT_p AKT(T308~P) + + ## Cell cycle arrest module -- + # + Molecules gene_p21_on gene_p21(tf~1) + Molecules mRNA_p21 mRNA_p21() + Molecules p21_tot p21() + Molecules p21_free p21(b) + Molecules CyclinE_tot Cyclin_E() + Molecules CyclinE_free Cyclin_E(b) + Molecules p21_CyclinE_cplx p21(b!4).Cyclin_E(b!4) + Molecules Rb_tot Rb() + Molecules Rb_p_free Rb(S567~P,b) + Molecules E2F1_tot E2F1() + Molecules E2F1_free E2F1(b) + Molecules RB_u_E2F1_cplx Rb(S567~0,b!4).E2F1(b!4) + + ## Apoptotic module -- + # + Molecules gene_Bax_on gene_Bax(tf~1) + Molecules mRNA_Bax mRNA_Bax() + Molecules Bax_tot Bax() + Molecules Bax_free Bax(b) + Molecules BclXL_tot BclXL() + Molecules BclXL_free BclXL(b) + Molecules Bax_BclXL_cplx Bax(b!1).BclXL(b!1) + Molecules Bad_tot Bad() + Molecules Bad_free Bad(b) + Molecules Bad_u_free Bad(S75_S99~0,b) + Molecules Bad_p_free Bad(S75_S99~PP,b) + Molecules BclXL_Bad_u_cplx BclXL(b!2).Bad(S75_S99~0,b!2) + Molecules Bad_p_14_3_3_cplx Bad(S75_S99~PP,b!3).Fourteen_3_3(b!3) + Molecules Fourteen_3_3_tot Fourteen_3_3() + Molecules Fourteen_3_3_free Fourteen_3_3(b) + Molecules Caspase_tot Caspase() + Molecules Caspase_pro Caspase(csp~Pro) + Molecules Caspase_act Caspase(csp~Act) + +end observables + + +begin functions + # + # These 5 functions are used only in deterministic simulations: + # + gene_Wip1_activity() (q0_wip1 + q1_wip1*p53_arr^h )/(q2 + q0_wip1 + q1_wip1*p53_arr^h ) + gene_Mdm2_activity() (q0_mdm2 + q1_mdm2*p53_arr^h )/(q2 + q0_mdm2 + q1_mdm2*p53_arr^h ) + gene_p21_activity() (q0_p21 + q1_p21 *p53_arr^h )/(q2 + q0_p21 + q1_p21 *p53_arr^h ) + gene_PTEN_activity() (q0_pten + q1_pten*p53_kill^h)/(q2 + q0_pten + q1_pten*p53_kill^h) + gene_Bax_activity() (q0_bax + q1_bax *p53_kill^h)/(q2 + q0_bax + q1_bax *p53_kill^h) +end functions + + + +begin reaction rules + + # + # These 5 rules are used only in stochastic simulations: + # + gene_Wip1(tf~0) <-> gene_Wip1(tf~1) q0_wip1+q1_wip1*p53_arr^h, q2 + gene_Mdm2(tf~0) <-> gene_Mdm2(tf~1) q0_mdm2+q1_mdm2*p53_arr^h, q2 + gene_p21(tf~0) <-> gene_p21(tf~1) q0_p21 +q1_p21 *p53_arr^h, q2 + gene_PTEN(tf~0) <-> gene_PTEN(tf~1) q0_pten+q1_pten*p53_kill^h, q2 + gene_Bax(tf~0) <-> gene_Bax(tf~1) q0_bax +q1_bax *p53_kill^h, q2 + + + # ------------------========###[ Core module ]###========----------------- # + + # DNA damage due to ionizing radiation + 0 -> DNA_DSB() h1*DNA_DSB_due_to_IR*(DNA_DSB_max - DNA_DSB_tot) + + # DNA damage introduced by active Caspases + 0 -> DNA_DSB() h2*Caspase_act *(DNA_DSB_max - DNA_DSB_tot) + + # DNA damage repair + DNA_DSB() -> 0 rep/(DNA_DSB_tot + DNA_DSB_Repair_Cplx_total) + + # ATM: activation by DNA DSBs, deactivation by Wip1 + ATM(S1981~0) <-> ATM(S1981~P) p1*DNA_DSB_tot^h/(M1^h + DNA_DSB_tot^h), d1*Wip1_tot + + # SIAH: phosphorylation by active ATM, dephosphorylation + SIAH1(S19~0) <-> SIAH1(S19~P) p2*ATM_p, d2 + + # HIPK2: synthesis, Mdm2- and SIAH1-mediated degradation + 0 <-> HIPK2() s8, g7*(SIAH1_u + Mdm2_nuc_2p)^2 + + # Wip1 gene transcription & degradation (only 1 of the following bidir. rules should be effective): + 0 <-> mRNA_Wip1() (1-STOCHASTIC_GENES)*s1*gene_Wip1_activity(), (1-STOCHASTIC_GENES)*g1 + 0 <-> mRNA_Wip1() STOCHASTIC_GENES *s1*gene_Wip1_on/n_wip1_alleles, STOCHASTIC_GENES *g1 + + # Wip1 translation + 0 <-> Wip1() t1*mRNA_Wip1, g8 + + # p53 synthesis + 0 -> p53(S15_S20~0,S46~0) s6 + + # 53 degradations: + p53() -> 0 g101 + p53(S15_S20~0,S46~0) -> 0 g11*Mdm2_nuc_2p^2 + p53(S15_S20~0,S46~P) -> 0 g12*Mdm2_nuc_2p^2 + p53(S15_S20~PP,S46~0) -> 0 g12*Mdm2_nuc_2p^2 + p53(S15_S20~PP,S46~P) -> 0 g12*Mdm2_nuc_2p^2 + + # p53 modifications at arrester sites: p'ylation by activee ATM, dep'ylation + p53(S15_S20~0) <-> p53(S15_S20~PP) p3*ATM_p, d3 + + # p53 modification at the killer site: p'ylation by HIPK2, dep'ylation by Wip1 + p53(S46~0) <-> p53(S46~P) p4*HIPK2_tot, d4*Wip1_tot + + # Mdm2 gene transcription & degradation (only 1 of the following bidir. rules should be effective): + 0 <-> mRNA_Mdm2() (1-STOCHASTIC_GENES)*s3*gene_Mdm2_activity(), (1-STOCHASTIC_GENES)*g3 + 0 <-> mRNA_Mdm2() STOCHASTIC_GENES *s3*gene_Mdm2_on/n_mdm2_alleles, STOCHASTIC_GENES *g3 + + # Mdm2 translation + 0 -> Mdm2(S166_S186~0,S395~0,loc~Cyt) t3*mRNA_Mdm2 + + # Mdm2 degradations: + Mdm2(S166_S186~0) -> 0 g14 + Mdm2(S166_S186~PP) -> 0 g15 + Mdm2(S166_S186~PP,S395~P,loc~Nuc) -> 0 g16 + + # Mdm2 modifications at 2xSer site: p'ylation by AKT, dep'ylation + Mdm2(S166_S186~0,S395~0,loc~Cyt) <-> Mdm2(S166_S186~PP,S395~0,loc~Cyt) p5*AKT_p, d5 + + # Mdm2_cyt_2p import into the nucleus + Mdm2(S166_S186~PP,S395~0,loc~Cyt) -> Mdm2(S166_S186~PP,S395~0,loc~Nuc) i1 + + # Mdm2_nuc_2p modification at S395: p'ylation by ATM_p, dep'ylation by Wip1 + Mdm2(S166_S186~PP,S395~0,loc~Nuc)<-> Mdm2(S166_S186~PP,S395~P,loc~Nuc) p6*ATM_p, d6*Wip1_tot + + # PTEN gene transcription & degradation (only 1 of the following bidir. rules should be effective): + 0 <-> mRNA_PTEN() (1-STOCHASTIC_GENES)*s2*gene_PTEN_activity(), (1-STOCHASTIC_GENES)*g2 + 0 <-> mRNA_PTEN() STOCHASTIC_GENES *s2*gene_PTEN_on/n_pten_alleles, STOCHASTIC_GENES *g2 + + # PTEN translation, protein degradation + 0 <-> PTEN() t2*mRNA_PTEN, g6 + + # PIP2--PIP3 interconversions + PtdIns(s~PP) <-> PtdIns(s~PPP) p8*PI3K_tot, d7*PTEN_tot + + # AKT activation (by PDK1, implicit), deactivation + AKT(T308~0) <-> AKT(T308~P) p12*PIP3, d8 + + + # ------------========###[ Cell cycle arrest module ]###========------------ # + + # p21 gene transcription & degradation (only 1 of the following bidir. rules should be effective): + 0 <-> mRNA_p21() (1-STOCHASTIC_GENES)*s5*gene_p21_activity(), (1-STOCHASTIC_GENES)*g5 + 0 <-> mRNA_p21() STOCHASTIC_GENES *s5*gene_p21_on/n_p21_alleles, STOCHASTIC_GENES *g5 + + # p21 translation, protein degradation + 0 <-> p21(b) t5*mRNA_p21, g19 + + # cyclin E synthesis: spontaneous and E2F1-induced; degradation + 0 <-> Cyclin_E(b) s10 + s9*E2F1_free^h/(M3^h + E2F1_free^h), g20 + + # p21 and cyclin E binding, unbinding + p21(b) + Cyclin_E(b) <-> p21(b!5).Cyclin_E(b!5) b5, u6 + + # p21--cyclin E complex degradation + p21(b!5).Cyclin_E(b!5) -> 0 g20 + + # retinoblastoma p'ylation by cyclin E + Rb(S567~0,b) <-> Rb(S567~P,b) p9*CyclinE_free, d12/(M2 + Rb_p_free) + + # retinoblastoma (dep'ylated) and E2F1 binding, unbinding + Rb(S567~0,b) + E2F1(b) <-> Rb(S567~0,b!4).E2F1(b!4) b4, u5 + + # retinolblastoma--E2F1 complex disociaiton upon retinoblastoma p'ylation by cyclin E + Rb(S567~0,b!4).E2F1(b!4)-> Rb(S567~P,b) + E2F1(b) p10*CyclinE_free + + + # ----------------========###[ Apoptotic module ]###========---------------- # + + # Bax gene transcription & degradation (only 1 of the following bidir. rules should be effective): + 0 <-> mRNA_Bax() (1-STOCHASTIC_GENES)*s4*gene_Bax_activity(), (1-STOCHASTIC_GENES)*g4 + 0 <-> mRNA_Bax() STOCHASTIC_GENES* s4*gene_Bax_on/n_bax_alleles, STOCHASTIC_GENES *g4 + + # Bax translation, protein degradatoin + 0 <-> Bax(b) t4*mRNA_Bax, g9 + + # Bax--BclXL binding, unbinding + Bax(b) + BclXL(b) <-> Bax(b!1).BclXL(b!1) b1, u1 + + # Bax (complexed) degradation + Bax(b!1).BclXL(b!1) -> BclXL(b) g16 + + # BclXL and dep'ylated Bad binding, unbinding + BclXL(b) + Bad(S75_S99~0,b) <-> BclXL(b!2).Bad(S75_S99~0,b!2) b2, u2 + + # BclXL unbinding from Bad upon Bad p'ylation by AKT + BclXL(b!2).Bad(S75_S99~0,b!2) -> BclXL(b) + Bad(S75_S99~PP,b) p7*AKT_p + + # Bad p'ylation by AKT, dep'ylation + Bad(S75_S99~0,b) <-> Bad(b,S75_S99~PP) p7*AKT_p, d9 + + # Bad (p'ylated) and 14-3-3 binding, unbinding + Bad(S75_S99~PP,b) + Fourteen_3_3(b) <-> Bad(b!3,S75_S99~PP).Fourteen_3_3(b!3) b3, u3 + + # unbinding of Bad from 14-3-3 upon Bad dep'ylation + Bad(S75_S99~PP,b!3).Fourteen_3_3(b!3) -> Bad(S75_S99~0,b) + Fourteen_3_3(b) d9 + + # procaspase synthesis + 0 -> Caspase(csp~Pro) s7 + + # caspase and procaspase degradation + Caspase() -> 0 g17 + + # caspase activation by Bax and by other caspases + Caspase(csp~Pro) -> Caspase(csp~Act) a1*Bax_free+a2*Caspase_act^2 + +end reaction rules + +end model + + + +# =============================== SIMULATION ================================= # + + +# -- Enumeration of molecular species and network generation. +# +generate_network({overwrite=>1}); +writeSBML(); + + +# -- Three-stage deterministic simulation protocol (equilibration, irradiation, relaxation). +# ~~~~~~~~~~~~~ +# +setParameter("STOCHASTIC_GENES","0"); +# +setParameter("is_IR_switched_on","0"); +simulate({method=>"ode",suffix=>"ode_1_equil",t_end=>14*24*60*60,n_steps=>100}) +# +setParameter("is_IR_switched_on","1"); +setParameter("IR_duration","10*60"); +setParameter("IR_Gy","4.00"); +simulate({method=>"ode",suffix=>"ode_2_irrad",t_end=>10*60,n_steps=>100,atol=>1e-9,rtol=>1e-9}) +# +setParameter("is_IR_switched_on","0"); +simulate({method=>"ode",suffix=>"ode_3_relax",t_end=>3*24*60*60,n_steps=>1000,atol=>1e-9,rtol=>1e-9}) + + +# # -- Three-stage stochastic simulation protocol (equilibration, irradiation, relaxation). +# # ~~~~~~~~~~ +# # +# setParameter("STOCHASTIC_GENES","1"); +# # +# setParameter("is_IR_switched_on","0"); +# simulate({method=>"ssa",suffix=>"ssa_1_equil",t_end=>14*24*60*60,n_steps=>1000}) +# # +# setParameter("is_IR_switched_on","1"); +# setParameter("IR_duration","10*60"); +# setParameter("IR_Gy","4.00"); +# simulate({method=>"ssa",suffix=>"ssa_2_irrad",t_end=>10*60,n_steps=>100}) +# # +# setParameter("is_IR_switched_on","0"); +# simulate({method=>"ssa",suffix=>"_ssa_3_relax",t_end=>2*24*60*60,n_steps=>1000}) \ No newline at end of file diff --git a/Published/Hat2016/README.md b/Published/Hat2016/README.md new file mode 100644 index 00000000..375aeba0 --- /dev/null +++ b/Published/Hat2016/README.md @@ -0,0 +1,21 @@ +# Hat 2016 + +Nuclear transport + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode, ssa +- Imported from: published + +## Files + +- Hat_2016.bngl + +## Tags + +published, hat, 2016, dna_dsb, atm, siah1, hipk2, wip1, gene_wip1, mrna_wip1, p53 diff --git a/Published/Hat2016/metadata.yaml b/Published/Hat2016/metadata.yaml new file mode 100644 index 00000000..d7afdc6f --- /dev/null +++ b/Published/Hat2016/metadata.yaml @@ -0,0 +1,22 @@ +id: "Hat_2016" +name: "Hat 2016" +description: "Nuclear transport" +tags: ["published", "hat", "2016", "dna_dsb", "atm", "siah1", "hipk2", "wip1", "gene_wip1", "mrna_wip1", "p53"] +category: "regulation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode", "ssa"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/cell-regulation/Hat_2016.bngl" +playground: + visible: true + gallery_category: "regulation" + featured: false + difficulty: "intermediate" diff --git a/Published/JaruszewiczBlonska2023/Jaruszewicz-Blonska_2023.bngl b/Published/JaruszewiczBlonska2023/Jaruszewicz-Blonska_2023.bngl new file mode 100644 index 00000000..d6e5eae4 --- /dev/null +++ b/Published/JaruszewiczBlonska2023/Jaruszewicz-Blonska_2023.bngl @@ -0,0 +1,478 @@ +# This BioNetGen file features the article: +# +# ----------------------------------------------------------------------------- +# +# "A plausible identifiable model of the canonical +# NF-kappaB signaling pathway" +# +# by Jaruszewicz-Blonska J, Kosiuk I, Prus W, & Lipniacki T +# +# +# +# +# ----------------------------------------------------------------------------- +# +# For a description of the BioNetGen language (BNGL) see e.g. Faeder et al +# [Meth. Mol. Biol. (2009), http://dx.doi.org/10.1007/978-1-59745-525-1_5]. +# The model may be executed using BioNetGen [http://www.bionetgen.org]. +# We recommend using BioNetGen within RuleBender [http://www.rulebender.org]. + + + + +# ----------------- Reaction parameters ----------------------------------------- + + # FITTED VALUES + +begin parameters + +k_deg 0.000107 +k_1 0.00195 +k_3 0.00145 +k_2 0.0357 +a_3 0.0946 +delta 0.1083 +epsilon 0.0428 +c_deg 0.000106 +c_4a 0.00313 +a_2 0.0763 +c_5a 0.0000578 +i_1a 0.000595 +c_3a 0.000372 + +TR 0 # TNF on(1)/off(0) + + + +# PRE-FITTED VALUES + +# k_1 2.5*1e-3 +# k_3 1.5*1e-3 +# k_deg 1.25*1e-4 +# c_deg 1.71429*1e-4 +# c_3a 4e-4 +# c_4a 0.003125 +# c_5a 1e-4 +# i_1a 1e-3 +# k_2 0.0025 +# a_3 0.2 +# delta 0.0833333 +# epsilon 0.01667 +# a_2 0.04 + + + + +end parameters +# ============================================================================= +begin molecule types +IKK(st~n~a) # neutral/active form of IKK kinase +IkBa() # cytoplasmic, IkB +IkBa_mRNA() # IkBa transcript +A20() # cytoplasmic A20 +NFkB() # nuclear NFkB +end molecule types +# ============================================================================= +begin seed species +IKK(st~n) 1 # neutral/active form of IKK kinase +IKK(st~a) 0 # neutral/active form of IKK kinase +IkBa() 0 # cytoplasmic, IkB +IkBa_mRNA() 0 # IkBa transcript +A20() 0 # cytoplasmic A20 +NFkB() 0 # nuclear NFkB +end seed species +# ============================================================================= +begin observables +Species IKK_a IKK(st~a) # neutral/active form of IKK kinase +Species tIkBa IkBa_mRNA() # IkBa transcript +Species A20 A20() # cytoplasmic A20 +Species NFkB_n NFkB() # nuclear NFkB +Species IkBa IkBa() # cytoplasmic, IkB +Species IKK_n IKK(st~n) # neutral/active form of IKK kinase +end observables +# ============================================================================= +begin functions +k_NFkBimport() a_3*delta*(1-NFkB_n)/(IkBa+ delta) +k_NFkBexport() i_1a/(NFkB_n+epsilon) +k_IkBatransport() a_2+(a_3*(1-NFkB_n))/((IkBa+delta)) +end functions +# ============================================================================= +begin reaction rules +# TNFR1 activation and signal transduction cascade +# +IKK(st~n)->IKK(st~a) k_1*TR +0 -> IKK(st~n) k_deg +IKK(st~a) -> 0 k_deg+k_3 +IKK(st~n) -> 0 k_deg + + +# A20 synthesis and degradation, IkB transcription, translation, mRNA and protein degradation +# +NFkB() -> NFkB() + A20() c_deg +A20() -> 0 c_deg +NFkB() -> NFkB() + IkBa_mRNA() c_3a +IkBa_mRNA() -> 0 c_3a +IkBa_mRNA() -> IkBa_mRNA() + IkBa() c_4a +IkBa() -> 0 c_5a + + +# Protein interactions +# +A20() + IKK(st~a) -> A20() k_2*TR +IKK(st~a) -> IKK(st~a) + NFkB() k_NFkBimport() +NFkB() + IkBa() -> 0 k_NFkBexport() +IKK(st~a)+IkBa() -> IKK(st~a) k_IkBatransport() +end reaction rules + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +begin actions + +generate_network({overwrite=>1}); + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +# +# +# +# ######################################################## +# ##### combination experiment for WT cells ############# +# ####################################################### +# +setParameter("TR",0); + +simulate_ode({suffix=>"continuous",t_end=>30*24*3600,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1, sparse=>1, steady_state=>1}); + +saveConcentrations() + + +#protocol continuous for WT cells + +# [auto-disabled] setParameter("TR",1); + +# simulate_ode({suffix=>"continuous",continue=>0, t_start=>0, t_end=>14400, n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1}); +# [auto-disabled] setParameter("TR",0); + +# [auto-disabled] resetConcentrations() + + + +#protocol pulses 5_60 for WT cells + + +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse5_60min",continue=>0,t_end=>5*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 1. puls 5min + +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse5_60min",continue=>1,t_end=>60*60, n_steps=>200, atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 55min break + +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse5_60min",continue=>1,t_end=>65*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 2. puls 5min + +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse5_60min",continue=>1,t_end=>120*60,n_steps=>200, atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 55min break + +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse5_60min",continue=>1,t_end=>125*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 3. puls 5min + +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse5_60min",continue=>1,t_end=>43200,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 55min break + +# [auto-disabled] resetConcentrations() + + +# protocol pulses 5min-100min for WT cells + +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse5_100min",continue=>0,t_end=>5*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 1. puls 5min + + +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse5_100min",continue=>1,t_start=>5*60,t_end=>90*60, n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 85min break +# simulate_ode({suffix=>"pulse5_100min",continue=>1,t_end=>100*60, n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # +10min break + + +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse5_100min",continue=>1,t_end=>105*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 2. puls 5min + +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse5_100min",continue=>1,t_end=>190*60,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 85min break +# simulate_ode({suffix=>"pulse5_100min",continue=>1,t_end=>200*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 10min break + + +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse5_100min",continue=>1,t_end=>205*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 3. puls 5min + +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse5_100min",continue=>1,t_end=>43200,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1}); + +# [auto-disabled] resetConcentrations() +# +# +# +# +# # protocol pulses 5min-200min for WT cells + + +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse5_200min",continue=>0,t_end=>5*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 1. puls 5min + +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse5_200min",continue=>1,t_end=>200*60, n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); + +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse5_200min",continue=>1,t_end=>205*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 2. puls 5min + +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse5_200min",continue=>1,t_end=>400*60,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); + +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse5_200min",continue=>1,t_end=>405*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 3. puls 5min + +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse5_200min",continue=>1,t_end=>43200,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); + + +# [auto-disabled] resetConcentrations() +# +# +# # protocol pulses 22.5min-45min for WT cells + +# [auto-disabled] setParameter("TR",1); +# +# simulate_ode({suffix=>"pulse22_5min",continue=>0,t_end=>22.5*60,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 1. puls 15min + +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse22_5min",continue=>1,t_end=>30*60, n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # [1800] 7.5min break +# simulate_ode({suffix=>"pulse22_5min",continue=>1,t_end=>45*60, n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # do 2700s 15min break + +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse22_5min",continue=>1,t_end=>45*60+22.5*60, n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 2. puls 15min + +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse22_5min",continue=>1,t_end=>75*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # [45*60+1800=4500] 7.5min break +# simulate_ode({suffix=>"pulse22_5min",continue=>1,t_end=>90*60, n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # till 45*60+2700s 15min break + +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse22_5min",continue=>1,t_end=>90*60+22.5*60, n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 2. puls 15min + + +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse22_5min",continue=>1,t_end=>43200,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 2h + + +# [auto-disabled] resetConcentrations() +# +# +# +# # protocol pulses 45-90min for WT cells +# +# +# [auto-disabled] setParameter("TR",1); +# +# simulate_ode({suffix=>"pulse45min",continue=>0,t_end=>45*60, n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 1. pulse 30min + +# [auto-disabled] setParameter("TR",0); + +# simulate_ode({suffix=>"pulse45min",continue=>1,t_end=>60*60, n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # [3600] 15min break +# simulate_ode({suffix=>"pulse45min",continue=>1,t_end=>90*60, n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # [5400] 30min break + +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse45min",continue=>1,t_end=>90*60+45*60, n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 2. pulse 30min + + +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse45min",continue=>1,t_end=>150*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # [150*60=9000] 15min break +# simulate_ode({suffix=>"pulse45min",continue=>1,t_end=>180*60, n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # [10800] 30min break + +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse45min",continue=>1,t_end=>180*60+45*60, n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 3. pulse 15min + +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse45min",continue=>1,t_end=>43200,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1}); + + + + + +####################################################### +###### combination experiment for A20 KO cells ######## +####################################################### + +# [auto-disabled] resetConcentrations() +# [auto-disabled] setConcentration("A20()",0) + + + +# simulate_ode({suffix=>"continuous_A20KO",continue=>0, t_start=>0, t_end=>3600,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1, steady_state=>1}); + +# [auto-disabled] saveConcentrations("A20_KO") + + +#protocol continuous for A20KO cells +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("c_deg",0); +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"continuous_A20KO",continue=>0, t_start=>0, t_end=>14400,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1}); + +# [auto-disabled] setParameter("TR",0); + +# [auto-disabled] resetConcentrations("A20_KO") + + + + +#protocol pulses 5-60 for A20KO cells +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse5_60min_A20KO",continue=>0,t_end=>5*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 1. puls 5min + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse5_60min_A20KO",continue=>1,t_end=>60*60, n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 55min break + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse5_60min_A20KO",continue=>1,t_end=>65*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 2. puls 5min + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse5_60min_A20KO",continue=>1,t_end=>120*60,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 55min break + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse5_60min_A20KO",continue=>1,t_end=>125*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 3. puls 5min + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse5_60min_A20KO",continue=>1,t_end=>43200,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 55min przerwy + + +# [auto-disabled] resetConcentrations("A20_KO") +# +# +# +# #protocol pulses 5-100 for A20KO cells +# +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse5_100min_A20KO",continue=>0,t_end=>5*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 1. pulse 5min + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse5_100min_A20KO",continue=>1,t_start=>5*60,t_end=>90*60,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 85min break +# simulate_ode({suffix=>"pulse5_100min_A20KO",continue=>1,t_end=>100*60, n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # +10min break + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse5_100min_A20KO",continue=>1,t_end=>105*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 2. pulse 5min + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse5_100min_A20KO",continue=>1,t_end=>190*60,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 85min break +# simulate_ode({suffix=>"pulse5_100min_A20KO",continue=>1,t_end=>200*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 10min break + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse5_100min_A20KO",continue=>1,t_end=>205*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 3. pulse 5min + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse5_100min_A20KO",continue=>1,t_end=>43200,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1}); + +# [auto-disabled] resetConcentrations("A20_KO") +# +# +# +# +# #protocol pulses 5-200 for A20KO cells +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse5_200min_A20KO",continue=>0,t_end=>5*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 1. pulse 5min + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse5_200min_A20KO",continue=>1,t_end=>200*60,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse5_200min_A20KO",continue=>1,t_end=>205*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 2. puls 5min + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse5_200min_A20KO",continue=>1,t_end=>400*60,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse5_200min_A20KO",continue=>1,t_end=>405*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 3. puls 5min + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse5_200min_A20KO",continue=>1,t_end=>43200,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); + +# [auto-disabled] resetConcentrations("A20_KO") + + + +#protocol pulses 22.5-45 for A20KO cells +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse22_5min_A20KO",continue=>0,t_end=>22.5*60, n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 1. puls + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse22_5min_A20KO",continue=>1,t_end=>30*60, n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # [1800] 7.5min break +# simulate_ode({suffix=>"pulse22_5min_A20KO",continue=>1,t_end=>45*60, n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # do 2700s 15min break + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse22_5min_A20KO",continue=>1,t_end=>45*60+22.5*60, n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 2. pulse + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse22_5min_A20KO",continue=>1,t_end=>75*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); +# simulate_ode({suffix=>"pulse22_5min_A20KO",continue=>1,t_end=>90*60, n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse22_5min_A20KO",continue=>1,t_end=>90*60+22.5*60, n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 3. puls + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse22_5min_A20KO",continue=>1,t_end=>43200,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 2h + +# [auto-disabled] resetConcentrations("A20_KO") +# +# +# protocol pulses 45-90 for A20KO cells +# +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse45min_A20KO",continue=>0,t_end=>45*60, n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 1. puls + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse45min_A20KO",continue=>1,t_end=>60*60, n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); +# simulate_ode({suffix=>"pulse45min_A20KO",continue=>1,t_end=>90*60, n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse45min_A20KO",continue=>1,t_end=>90*60+45*60, n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 2. pulse + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse45min_A20KO",continue=>1,t_end=>150*60,n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); +# simulate_ode({suffix=>"pulse45min_A20KO",continue=>1,t_end=>180*60, n_steps=>1,atol=>1e-16,rtol=>1e-16, sparse=>1}); + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",1); +# simulate_ode({suffix=>"pulse45min_A20KO",continue=>1,t_end=>180*60+45*60, n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1}); # 3. pulse + +# [auto-disabled] setConcentration("A20()",0) +# [auto-disabled] setParameter("TR",0); +# simulate_ode({suffix=>"pulse45min_A20KO",continue=>1,t_end=>43200,n_steps=>200,atol=>1e-16,rtol=>1e-16, sparse=>1}); + + +end actions + diff --git a/Published/JaruszewiczBlonska2023/README.md b/Published/JaruszewiczBlonska2023/README.md new file mode 100644 index 00000000..f2ae2550 --- /dev/null +++ b/Published/JaruszewiczBlonska2023/README.md @@ -0,0 +1,21 @@ +# Jaruszewicz 2023 + +T-cell discrimination + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- Jaruszewicz-Blonska_2023.bngl + +## Tags + +published, immunology, jaruszewicz, blonska, 2023, ikk, ikba, ikba_mrna, a20, nfkb diff --git a/Published/JaruszewiczBlonska2023/metadata.yaml b/Published/JaruszewiczBlonska2023/metadata.yaml new file mode 100644 index 00000000..498640fd --- /dev/null +++ b/Published/JaruszewiczBlonska2023/metadata.yaml @@ -0,0 +1,22 @@ +id: "Jaruszewicz-Blonska_2023" +name: "Jaruszewicz 2023" +description: "T-cell discrimination" +tags: ["published", "immunology", "jaruszewicz", "blonska", "2023", "ikk", "ikba", "ikba_mrna", "a20", "nfkb"] +category: "immunology" +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-web-simulator" + source_path: "published-models/immune-signaling/Jaruszewicz-Blonska_2023.bngl" +playground: + visible: true + gallery_category: "immunology" + featured: false + difficulty: "intermediate" diff --git a/Published/Jung2017/Jung_2017.bngl b/Published/Jung2017/Jung_2017.bngl new file mode 100644 index 00000000..10d897e7 --- /dev/null +++ b/Published/Jung2017/Jung_2017.bngl @@ -0,0 +1,116 @@ +begin model + +begin compartments +cytoplasm 3 1 +EC 3 1 +PM 2 1 +end compartments + +begin parameters +start 60.0 +end 540.0 +time 60.0 +on_set 1.0 +converting_factor 0.0 +Dephos_factor 0.1 +end parameters + +begin molecule types +M1R(L,S228~u~p,S273~u~p,Arr,GRK,PP1,CK2) +Oxo(R) +Arrestin(RLP,MEK,PP2A) +MEK(Arr,ERK) +ERK(MEK,s~u,PP2A,PP1) +pERK(MEK,s~p,PP2A,PP1) +Oxo_EC() +PP2A(Arrestin,ERK) +probe(site~u) +phos_probe(Site0~p) +GRK(RL) +PP1(RL) +CK2(RL) +end molecule types + +begin seed species +1 @EC:Oxo_EC() 100.0 +2 @PM:M1R(L,S228~u,S273~u,Arr,GRK,PP1,CK2) 3500.0 +3 @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr,GRK,PP1,CK2) 0.0 +4 @cytoplasm:Arrestin(RLP,MEK,PP2A) 15.0 +5 @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK,PP2A) 0.0 +6 @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK!3,PP2A).MEK(Arr!3,ERK) 0.0 +7 @cytoplasm:ERK(MEK,s~u,PP2A,PP1) 1.0 +8 @cytoplasm:MEK(Arr,ERK) 1.0 +9 @cytoplasm:PP2A(Arrestin,ERK) 5.0 +10 @cytoplasm:pERK(MEK,s~p,PP2A,PP1) 0.1 +11 @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK!3,PP2A).MEK(Arr!3,ERK!4).ERK(MEK!4,s~u,PP2A,PP1) 0.0 +12 @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK!3,PP2A).MEK(Arr!3,ERK!4).pERK(MEK!4,s~p,PP2A,PP1) 0.0 +13 @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK,PP2A) 0.0 +14 @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK,PP2A!3).PP2A(Arrestin!3,ERK) 0.0 +15 @cytoplasm:probe(site~u) 5.0 +16 @cytoplasm:phos_probe(Site0~p) 5.0 +17 @PM:GRK(RL) 10.0 +18 @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr,GRK!2,PP1,CK2).GRK(RL!2) 0.0 +19 @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr,GRK!2,PP1,CK2).GRK(RL!2) 0.0 +20 @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr,GRK,PP1,CK2) 0.0 +21 @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK,PP2A!3).PP2A(Arrestin!3,ERK!4).pERK(MEK,s~p,PP2A!4,PP1) 0.0 +22 @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK,PP2A!3).PP2A(Arrestin!3,ERK!4).ERK(MEK,s~u,PP2A!4,PP1) 0.0 +23 @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr,GRK,PP1!2,CK2).PP1(RL!2) 0.0 +24 @cytoplasm:PP1(RL) 1.0 +25 @cytoplasm:CK2(RL) 1.0 +26 @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr,GRK,PP1,CK2!2).CK2(RL!2) 0.0 +27 @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr,GRK,PP1,CK2!2).CK2(RL!2) 0.0 +end seed species + +begin observables +Molecules O0_M1R_tot @PM:M1R(L,S228,S273,Arr,GRK,PP1,CK2) +Molecules O0_Oxo_EC @EC:Oxo(R) +Molecules O0_Arrestin @cytoplasm:Arrestin(RLP,MEK,PP2A) +Molecules O0_RLPPA @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK,PP2A) +Molecules O0_MEK @cytoplasm:MEK(Arr,ERK) +Molecules O0_ERK @cytoplasm:ERK(MEK,s~u,PP2A,PP1) +Molecules O0_pERK @cytoplasm:pERK(MEK,s~p,PP2A,PP1) +Molecules O0_RLPPA_M @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK!3,PP2A).MEK(Arr!3,ERK) +Molecules O0_RLPP @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr,GRK,PP1,CK2) +Molecules O0_RLA @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK,PP2A) +Molecules O0_Oxo_EC_tot @cytoplasm:Oxo_EC() +Molecules O0_PP2A_tot @cytoplasm:PP2A(Arrestin,ERK) +Molecules O0_RLAPP2A @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK,PP2A!3).PP2A(Arrestin!3,ERK) +Molecules O0_RLppAME @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK!3,PP2A).MEK(Arr!3,ERK!4).ERK(MEK!4,s~u) +Molecules O0_RLppAMpE @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK!3,PP2A).MEK(Arr!3,ERK!4).pERK(MEK!4,s~p) +Molecules O0_probe_tot @cytoplasm:probe() +Molecules O0_phos_probe_tot @cytoplasm:phos_probe() +Molecules O0_GRK_tot @EC:GRK() +Molecules O0_PP1_tot @cytoplasm:PP1() +Molecules O0_CK2_tot @cytoplasm:CK2() +end observables + +begin functions +washing_agonist() = (1.0 * (t > 60.0)) && (t < 540.0) +off_set() = 0.0 * (t > 480.0) +end functions + +begin reaction rules +R_L_PM: @EC:Oxo(R) + @PM:M1R(L,S228~u,S273~u,Arr,GRK,PP1,CK2) <-> @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr,GRK,PP1,CK2) 20.0 * washing_agonist, 4.0 +RLppA: @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr,GRK,PP1,CK2) + @cytoplasm:Arrestin(RLP,MEK,PP2A) <-> @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK,PP2A) 1.0 * RLpp_arrestin_binding_factor, 10.0 * RLpp_arrestin_binding_factor +RLA: @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr,GRK,PP1,CK2) + @cytoplasm:Arrestin(RLP,MEK,PP2A) <-> @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK,PP2A) 0.24 * negative_arrestin_binding, 2.8 * negative_arrestin_binding +DeP_RLGRK_pp: @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr,GRK,PP1,CK2) -> @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr,GRK,PP1,CK2) 0.5 * dephosphorylation_factor +RLGRK_pp: @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr,GRK!2,PP1,CK2).GRK(RL!2) -> @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr,GRK!2,PP1,CK2).GRK(RL!2) 0.9 * phos_factor_PP +RLppAM: @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK,PP2A) + @cytoplasm:MEK(Arr,ERK) <-> @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK!3,PP2A).MEK(Arr!3,ERK) 0.1, 5.0E-5 +RLppAME: @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK!3,PP2A).MEK(Arr!3,ERK) + @cytoplasm:ERK(MEK,s~u,PP2A,PP1) <-> @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK!3,PP2A).MEK(Arr!3,ERK!4).ERK(MEK!4,s~u,PP2A,PP1) 2.0, 2.5 +Oxo_conversion: @EC:Oxo_EC() -> @EC:Oxo(R) 50.0 +RLAPP2A: @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK,PP2A) + @cytoplasm:PP2A(Arrestin,ERK) <-> @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK,PP2A!3).PP2A(Arrestin!3,ERK) 3.0E-5, 6.0E-5 +DeP_pERK_PP2A: @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK,PP2A!3).PP2A(Arrestin!3,ERK) + @cytoplasm:pERK(MEK,s~p,PP2A,PP1) <-> @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK,PP2A!3).PP2A(Arrestin!3,ERK) + @cytoplasm:ERK(MEK,s~u,PP2A,PP1) 9.0 * PP2A_dephos_factor, 0.0 +RLppAMpE: @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK!3,PP2A).MEK(Arr!3,ERK!4).ERK(MEK!4,s~u,PP2A,PP1) <-> @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK!3,PP2A).MEK(Arr!3,ERK!4).pERK(MEK!4,s~p,PP2A,PP1) 9.0 * MEK_effect, 0.36 * MEK_effect +RLppAMpE_dissociation: @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK!3,PP2A).MEK(Arr!3,ERK!4).pERK(MEK!4,s~p,PP2A,PP1) <-> @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr!2,GRK,PP1,CK2).Arrestin(RLP!2,MEK!3,PP2A).MEK(Arr!3,ERK) + @cytoplasm:pERK(MEK,s~p,PP2A,PP1) 2.0, 0.0 +RL_GRK: @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr,GRK,PP1,CK2) + @PM:GRK(RL) <-> @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr,GRK!2,PP1,CK2).GRK(RL!2) 4.0 * GRK_binding_factor, 4.0 +RLGRK_pp_dissociation: @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr,GRK!2,PP1,CK2).GRK(RL!2) <-> @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr,GRK,PP1,CK2) + @PM:GRK(RL) 2.0 * RLGRK_pp_dissociation, 2.0 * RLGRK_pp_dissociation +ERK_balancing: @cytoplasm:ERK(MEK,s~u,PP2A,PP1) <-> @cytoplasm:pERK(MEK,s~p,PP2A,PP1) 0.1, 1.0 +P_probe: @cytoplasm:pERK(MEK,s~p,PP2A,PP1) + @cytoplasm:probe(site~u) <-> @cytoplasm:pERK(MEK,s~p,PP2A,PP1) + @cytoplasm:phos_probe(Site0~p) 2.0, 2.0 +RL_CK2_binding: @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr,GRK,PP1,CK2) + @cytoplasm:CK2(RL) <-> @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr,GRK,PP1,CK2!2).CK2(RL!2) 5.0E-5, 1.0 +RL_CK2_phos: @PM:Oxo(R!1).M1R(L!1,S228~u,S273~u,Arr,GRK,PP1,CK2!2).CK2(RL!2) -> @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr,GRK,PP1,CK2!2).CK2(RL!2) 0.01 +RL_CK2_phos_dissociation: @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr,GRK,PP1,CK2!2).CK2(RL!2) <-> @PM:Oxo(R!1).M1R(L!1,S228~p,S273~p,Arr,GRK,PP1,CK2) + @cytoplasm:CK2(RL) 10.0, 10.0 +end reaction rules + +end model + +generate_network({max_iter=>6,max_agg=>10,max_stoich=>{M1R=>100,Oxo=>100,Arrestin=>100,MEK=>100,ERK=>100,pERK=>100,Oxo_EC=>100,PP2A=>100,probe=>100,phos_probe=>100,GRK=>100,PP1=>100,CK2=>100},overwrite=>1}) \ No newline at end of file diff --git a/Published/Jung2017/README.md b/Published/Jung2017/README.md new file mode 100644 index 00000000..99616159 --- /dev/null +++ b/Published/Jung2017/README.md @@ -0,0 +1,21 @@ +# Jung 2017 + +M1 receptor signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Jung_2017.bngl + +## Tags + +published, jung, 2017, m1r, oxo, arrestin, mek, erk, perk, oxo_ec, pp2a diff --git a/Published/Jung2017/metadata.yaml b/Published/Jung2017/metadata.yaml new file mode 100644 index 00000000..eecc4e61 --- /dev/null +++ b/Published/Jung2017/metadata.yaml @@ -0,0 +1,22 @@ +id: "Jung_2017" +name: "Jung 2017" +description: "M1 receptor signaling" +tags: ["published", "jung", "2017", "m1r", "oxo", "arrestin", "mek", "erk", "perk", "oxo_ec", "pp2a"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/complex-models/Jung_2017.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/Kesseler2013/Kesseler_2013.bngl b/Published/Kesseler2013/Kesseler_2013.bngl new file mode 100644 index 00000000..7d7814f4 --- /dev/null +++ b/Published/Kesseler2013/Kesseler_2013.bngl @@ -0,0 +1,740 @@ +############################################################################################################################## +#G2 checkpoint and transition to mitosis. +#Questions about this model should be addressed to: +#Dr. Dennis Simpson +#University of North Carolina at Chapel Hill +#Dept. of Pathology & Laboratory Medicine +#CB7295 +#Chapel Hill, NC 27599 +#email: dsimpson@med.unc.edu +#Phone: 919-966-8552 +# +#Current version: v1.1 +#Version Date: Aug. 9, 2010 +# +#Version: v1.0; June 2010 by Kevin Kesseler. Original core model. +#Version: v1.1; Aug. 9, 2010 by Dennis Simpson. Added annotations to core model. +# +############################################################################################################################## + +begin parameters + +## INITIAL VALUES ## +MPF0 0.1 +CDC25B0 0.1 +CDC25C0 0.1 +CDC25A0 0.5 +WEE10 0.5 +MYT10 0.5 +PIN10 1.0 +PP2Ac0 1.0 +PP2An0 1.0 +ProX0 1.0 +E33c0 1.0 +E33n0 1.0 +CHK1a0 0.0025 +CHK2a0 0.005 +CHK1i0 0.045 +CHK2i0 0.045 +CHK1an0 0.0025 +CRM10 1.0 +PLK10c 0.7 +PLK10n 0.3 +H30 1.0 +Importin0 1.0 +DUMc0 1.0 +DUMn0 1.0 +DUMm0 1.0 + +## CREATION AND DESTRUCTION RATES ## +kMPFin 0.001 +kCDC25Ain 0.00005 +kCDC25Bin 0.00005 +kCDC25Cin 0.00005 +kWEEin 0.005 +kMYTin 0.001 +kCHKin 0.000000 + +kMPFout 0.001 +kCDCout 0.0001 +kCDC25Ades 1.0 +kWEEout 0.005 +kMYTout 0.001 + +## DEFAULT VALUES ## +kOff 0.1 +kOffN 0.3 +kE 1000.0 +kEn 3000.0 + +## MPF ACTIVATION ## +kMPFaOn 50.0 +kMPFaOff kOff +kMPFa kE + +kMPFaOnN 450.0 +kMPFaOffN kOffN +kMPFaN kEn + +## CDC25 ACTIVATION ## +kCDCaOn 20.0 +kCDCaOff kOff +kCDCa kE + +kCDCaOnN 180.0 +kCDCaOffN kOffN +kCDCaN kEn + +## MPF UNSEQUESTER ## +kMPFus kE +kMPFusOn 500.0 +kMPFusOff kOff + +## WEE1 DEACTIVATION ## +kWEEdOn 0.5 +kWEEdOff kOffN +kWEEd kEn + +kWEEdOn2 2.0 +kWEEdOn3 10.0 + +## MPF DEACTIVATION ## +kMPFdOn 100.0 +kMPFdOff kOff +kMPFd kE + +kMPFdOnN 900.0 +kMPFdOffN kOffN +kMPFdN kEn + +kMPFsdOnN 4500.0 +kMPFsdOffN kMPFdOffN +kMPFsdN kMPFdN + +## MPF NUCLEAR IMPORT ## +kMPFimpOn 0.001 +kMPFimpOff kOff +kMPFimp kE + +kMPFimpOnN 0.009 +kMPFimpOffN kOffN +kMPFimpN kEn + +## MPF SEQUESTERATION ## +kMPFsOn 100.0 +kMPFsOff kOff +kMPFs kE + +## CDC25 PHOSPHORYLATION ON S216 ## +kCDCpOn 0.05 +kCDCpOff kOff +kCDCp kE + +kCDCpOnN 0.45 +kCDCpOffN kOffN +kCDCpN kEn + +## WEE1 SUPERACTIVATION ## +kWEEsaOn 0.05 +kWEEsaOff kOffN +kWEEsa kEn + +## CDC25 S216 DEPHOSPHORYLATION ## +kCDCdqOn 10.0 +kCDCdqOff kOff +kCDCdq kE + +kCDCdqOnN 90.0 +kCDCdqOffN kOffN +kCDCdqN kEn + +## CDC25 SEQUESTERATION ## +kE33bCDC 5.0 +kE33bCDCn 45.0 + +kCDCsq 100.0 +kCDCsqN 100.0 + +kE33CDCdis 0.01 +kE33CDCdisN 0.01 + +kCDCus 0.01 +kCDCus2 0.05 + +kWEEdes 100.0 +kWEEdes2 5.0 + +krPLKph 0.1 +krPLKphN 0.9 + +kCDCBdOn 100.0 +kCDCBdOff kOff +kCDCBd kE + +kCDCBdOnN 900.0 +kCDCBdOffN kOffN +kCDCBdN kEn + +kCDCBa 1.0 + +kCDCAaCDCB 0.1 +kCDCAaCDCBn 0.9 + +kipMPF1 0.01 +kipMPF5 0.05 +kipMPF10 0.10 +kipMPF50 0.50 +kipMPF100 5.0 +kxpMPFf 1.0 +kxpMPFs 0.01 +kipE33 0.10 +kxpE33 0.10 +kipCHK1 0.10 +kxpCHK1 0.10 +kipCHK2 0.10 +kxpCHK2 20.0 +kipCDCi 0.01 +kipCDCa 0.10 +kxpCDCf 0.10 +kxpCDCs 0.001 +kxpPLK 0.07 +kipPLK 0.03 + +kipCDC25A 0.09 +kipCDC25B 0.05 + +kxpCDC25A 0.01 +kxpCDC25B 0.05 + +kImpA 0.1 +kImpD 0.01 + +## SPONTANEOUS Cdc25c DEACTIVATION ## +kCDCcD 5.0 +kCDCcDn 5.0 + +## DEGRADATION OF Cdc25a BY CHK1 AND CHK2 ## +kCDCaOut 0.1 +kCDCaOutN 0.9 + +## CDC25 SEQUESTERATION DISABLE ## +kCDCsdOn 10.0 +kCDCsdOff kOff +kCDCsd kE + +kCDCsdOnN 90.0 +kCDCsdOffN kOffN +kCDCsdN kEn + +## MPF NUCLEAR EXPORT ## +kMPFneOn 0.001 +kMPFneOn2 0.2 +kMPFneOff kOff +kMPFne kE + +kMPFneOnN 0.009 +kMPFneOnN2 1.8 +kMPFneOffN kOffN +kMPFneN kEn + +## PLK1 ACTIVATION ## +kPLKaOn 0.5 +kPLKaOff kOff +kPLKa kE + +kPLKaOnN 4.5 +kPLKaOffN kOffN +kPLKaN kEn + +## PLK1 AND CHK1 MUTUAL INHIBITION ## +kPLKd 50.0 +kCHK1d 0.0001 +kPLKdN 450.0 +kCHK1dN 0.0009 + +## pkMyt1 DEACTIVATION BY PLK1 ## +kMYTdOn 0.02 +kMYTdOff kOff +kMYTd kE + +kCHKd 0.001 +kCHKa 0.0000001 + +## HISTONE H3 ACTIVATION ## +kH3aOn 0.02 +kH3aOff kOffN +kH3a kEn + +end parameters + +################################################################################################################ + +begin molecule types + +MPF(B,DP~U~P,NE~P~U~P2,NE2~U~P,CR~U~P,L~C~N,S~no~Ki~Su) +CDC25(B,L~C~N,S~no~Ph~Su~Sq,SD~U~P,AP~U~P~D,SE~U~P,T~A~B~C) +WEE1(B,L~N,DP~U~P~M,SP~U~P,S~no~Ki~Su) +MYT1(B,S~no~Ki~Su,L~C) +PIN1(B,L~N,S~no) +PP2A(B,L~C~N,S~no~Ph) +ProX(B,S~no~Ki,L~C) +E33(B,Sq~N~Y,S~no,L~C~N) +CHK1(B,AP~U~P,S~no~Ki~Su,L~C~N) +CHK2(B,L~C~N,S~no~Ki~Su,AP~U~P) +CRM1(L~M) +Importin(L~M,CdcFI~Y~N) +DUM(L~C~N~M) +PLK1(B,L~C~N,S~no~Ki~Su,AP~U~P) +H3(B,L~C~N,S~no~Su,AP~U~P) + +end molecule types + +################################################################################################################# + +begin species + + +MPF(B,DP~U,NE~U,NE2~U,CR~P,L~C,S~no) MPF0 +CDC25(B,L~N,S~no,SD~U,AP~P,SE~U,T~A) CDC25A0 +CDC25(B,L~C,S~no,SD~U,AP~U,SE~U,T~B) CDC25B0 +CDC25(B,S~no,SD~U,AP~U,SE~U,T~C,L~C) CDC25C0 +WEE1(B,L~N,DP~U,SP~U,S~no) WEE10 +MYT1(B,S~no,L~C) MYT10 +PIN1(B,L~N,S~no) PIN10 +PP2A(B,S~no,L~C) PP2Ac0 +ProX(B,S~no,L~C) ProX0 +E33(B,Sq~N,S~no,L~C) E33c0 +CHK1(B,AP~U,S~no,L~C) CHK1i0 +CHK2i: CHK2(B,L~N,S~no,AP~U) CHK2i0 +CHK1(B,AP~P,S~no,L~C) CHK1a0 +CHK1(B,AP~P,S~no,L~N) CHK1an0 +CHK2(B,L~N,S~no,AP~P) CHK2a0 +CRM1(L~M) CRM10 +Importin(L~M,CdcFI~N) Importin0 +DUM(L~C) DUMc0 +DUM(L~N) DUMn0 +DUM(L~M) DUMm0 +PP2A(B,L~N,S~no) PP2An0 +E33(B,Sq~N,S~no,L~N) E33n0 +PLK1(B,L~C,S~no,AP~U) PLK10c +PLK1(B,L~N,S~no,AP~U) PLK10n +H3(B,L~N,S~no,AP~U) H30 + +end species + +###################################################################################################################### +begin reaction rules + +## PROTEIN CREATION RULES ## +DUM(L~C)->DUM(L~C)+MPF(B,DP~U,NE~U,NE2~U,CR~P,L~C,S~no) kMPFin +DUM(L~C)->DUM(L~C)+CDC25(B,L~C,S~no,SD~U,AP~P,SE~U,T~A) kCDC25Ain +DUM(L~C)->DUM(L~C)+CDC25(B,L~C,S~no,SD~U,AP~U,SE~U,T~B) kCDC25Bin +DUM(L~N)->DUM(L~N)+CDC25(B,S~no,SD~U,AP~U,SE~U,T~C,L~N) kCDC25Cin +DUM(L~N)->DUM(L~N)+WEE1(B,L~N,DP~U,SP~U,S~no) kWEEin +DUM(L~C)->DUM(L~C)+MYT1(B,S~no,L~C) kMYTin + +## PROTEIN DESTRUCTION RULES ## +#DUM(L~C) + MPF(B,DP~U~P,S~no) -> DUM(L~C) kMPFout +DUM(L~C) + MPF(B,DP,S~no) -> DUM(L~C) kMPFout +DUM(L~C)+CDC25(B,S~no)->DUM(L~C) kCDCout +DUM(L~C)+WEE1(B,L~N,S~no)->DUM(L~C) kWEEout +DUM(L~C)+MYT1(B,S~no,L~C)->DUM(L~C) kMYTout + +## SPONTANEOUS ACTIVATION OF CDC25b ## +CDC25(B,L~C,S~no,AP~U,T~B)->CDC25(B,L~C,S~no,AP~P,T~B) kCDCBa +CDC25(B,L~C,S~no,AP~D,T~B)->CDC25(B,L~C,S~no,AP~P,T~B) kCDCBa +CDC25(B,L~N,S~no,AP~U,T~B)->CDC25(B,L~N,S~no,AP~P,T~B) kCDCBa +CDC25(B,L~N,S~no,AP~D,T~B)->CDC25(B,L~N,S~no,AP~P,T~B) kCDCBa + +## ACTIVATION OF Cdc25b BY CDC25a ## +CDC25(B,L~C,S~no,AP~U,T~B)+CDC25(B,L~C,S~no,AP~P,T~A)->CDC25(B,L~C,S~no,AP~P,T~B)+CDC25(B,L~C,S~no,AP~P,T~A) kCDCAaCDCB +CDC25(B,L~C,S~no,AP~D,T~B)+CDC25(B,L~C,S~no,AP~P,T~A)->CDC25(B,L~C,S~no,AP~P,T~B)+CDC25(B,L~C,S~no,AP~P,T~A) kCDCAaCDCB +CDC25(B,L~N,S~no,AP~U,T~B)+CDC25(B,L~N,S~no,AP~P,T~A)->CDC25(B,L~N,S~no,AP~P,T~B)+CDC25(B,L~N,S~no,AP~P,T~A) kCDCAaCDCB +CDC25(B,L~N,S~no,AP~D,T~B)+CDC25(B,L~N,S~no,AP~P,T~A)->CDC25(B,L~N,S~no,AP~P,T~B)+CDC25(B,L~N,S~no,AP~P,T~A) kCDCAaCDCB + +## ACTIVATION OF MPF BY Cdc25's ## +MPF(B,DP~P,S~no,L~C)+CDC25(B,L~C,S~no,AP~P)<->MPF(B!0,DP~P,S~Su,L~C).CDC25(B!0,L~C,S~Ph,AP~P) kMPFaOn,kMPFaOff +MPF(B!0,DP~P,S~Su,L~C).CDC25(B!0,L~C,S~Ph,AP~P)->MPF(B,DP~U,S~no,L~C)+CDC25(B,L~C,S~no,AP~P) kMPFa +MPF(B,DP~P,S~no,L~N)+CDC25(B,L~N,S~no,AP~P)<->MPF(B!0,DP~P,S~Su,L~N).CDC25(B!0,S~Ph,AP~P,L~N) kMPFaOnN,kMPFaOffN +MPF(B!0,DP~P,S~Su,L~N).CDC25(B!0,S~Ph,AP~P,L~N)->MPF(B,DP~U,S~no,L~N)+CDC25(B,L~N,S~no,AP~P) kMPFaN + +## ACTIVATION OF MPF BY Cdc25c ## +MPF(B,DP~P,S~no,L~C)+CDC25(B,L~C,S~no,AP~P,T~C)<->MPF(B!0,DP~P,S~Su,L~C).CDC25(B!0,L~C,S~Ph,AP~P,T~C) kMPFaOn,kMPFaOff +MPF(B!0,DP~P,S~Su,L~C).CDC25(B!0,L~C,S~Ph,AP~P,T~C)->MPF(B,DP~U,S~no,L~C)+CDC25(B,L~C,S~no,AP~P,T~C) kMPFa +MPF(B,DP~P,S~no,L~N)+CDC25(B,L~N,S~no,AP~P,T~C)<->MPF(B!0,DP~P,S~Su,L~N).CDC25(B!0,S~Ph,AP~P,T~C,L~N) kMPFaOnN,kMPFaOffN +MPF(B!0,DP~P,S~Su,L~N).CDC25(B!0,S~Ph,AP~P,L~N,T~C)->MPF(B,DP~U,S~no,L~N)+CDC25(B,L~N,S~no,AP~P,T~C) kMPFaN + +## SPONTANEOUS DEACTIVATION OF CDC25's ## +CDC25(B,L~C,S~no,T~C,AP~P)+DUM(L~C)->CDC25(B,L~C,S~no,T~C,AP~U)+DUM(L~C) kCDCcD +CDC25(B,L~N,S~no,T~C,AP~P)+DUM(L~N)->CDC25(B,S~no,T~C,AP~U,L~N)+DUM(L~N) kCDCcDn + +## DEGRADATION OF SEQUESTERED CDC25's ## +CDC25(B!0,L~C,SD~U,S~Sq,SE~P).E33(B!0,Sq~Y,L~C,S~no)->E33(B,Sq~N,L~C,S~no) kCDCout + +## ACTIVATION OF Cdc25c BY MPF ## +MPF(B,L~N,DP~U,S~no)+CDC25(B,L~N,S~no,AP~U,T~C)<->MPF(B!0,L~N,DP~U,S~Ki).CDC25(B!0,L~N,S~Su,AP~U,T~C) kCDCaOnN,kCDCaOffN +MPF(B!0,L~N,DP~U,S~Ki).CDC25(B!0,L~N,S~Su,AP~U,T~C)->MPF(B,L~N,DP~U,S~no)+CDC25(B,L~N,S~no,AP~P,T~C) kCDCaN +MPF(B,L~C,DP~U,S~no)+CDC25(B,L~C,S~no,AP~U,T~C)<->MPF(B!0,L~C,DP~U,S~Ki).CDC25(B!0,L~C,S~Su,AP~U,T~C) kCDCaOn,kCDCaOff +#MPF(B!0,L~C,DP~U,S~Ki).CDC25(B!0,L~C,S~Su,AP~U,T~C)->MPF(B,L~C,DP~U,S~no)+CDC25(B,L~C,S~no,SD~*,AP~P,T~C) kCDCa +MPF(B!0,L~C,DP~U,S~Ki).CDC25(B!0,L~C,S~Su,AP~U,T~C)->MPF(B,L~C,DP~U,S~no)+CDC25(B,L~C,S~no,AP~P,T~C) kCDCa + +## DEACTIVATION OF Wee1 BY MPF ## +MPF(B,L~N,DP~U,S~no)+WEE1(B,L~N,DP~U,S~no)<->MPF(B!0,L~N,DP~U,S~Ki).WEE1(B!0,L~N,DP~U,S~Su) kWEEdOn,kWEEdOff +MPF(B!0,L~N,DP~U,S~Ki).WEE1(B!0,L~N,DP~U,S~Su)->WEE1(B,L~N,DP~M,SP~U,S~no)+MPF(B,L~N,DP~U,S~no) kWEEd + +## PIN1 Destruction of Wee1 ## +PIN1(B,L~N,S~no)+WEE1(B,L~N,DP~P,S~no)->PIN1(B,L~N,S~no) kWEEdes +PIN1(B,L~N,S~no)+WEE1(B,L~N,DP~M,S~no)->PIN1(B,L~N,S~no) kWEEdes2 + +## DEACTIVATION OF MPF BY WEE1 AND pkMYT1 ## +WEE1(B,L~N,S~no,SP~U)+MPF(B,L~N,DP~U,S~no)<->MPF(B!0,L~N,DP~U,S~Su).WEE1(B!0,L~N,SP~U,S~Ki) kMPFdOnN,kMPFdOffN +MPF(B!0,L~N,DP~U,S~Su).WEE1(B!0,L~N,SP~U,S~Ki)->WEE1(B,L~N,SP~U,S~no)+MPF(B,L~N,DP~P,S~no) kMPFdN +WEE1(B,L~N,S~no,SP~P)+MPF(B,L~N,DP~U,S~no)<->MPF(B!0,L~N,DP~U,S~Su).WEE1(B!0,L~N,SP~P,S~Ki) kMPFsdOnN,kMPFsdOffN +MPF(B!0,L~N,DP~U,S~Su).WEE1(B!0,L~N,SP~P,S~Ki)->WEE1(B,L~N,SP~P,S~no)+MPF(B,L~N,DP~P,S~no) kMPFsdN +MYT1(B,L~C,S~no)+MPF(B,L~C,DP~U,S~no)<->MPF(B!0,L~C,DP~U,S~Su).MYT1(B!0,L~C,S~Ki) kMPFdOn,kMPFdOff +MPF(B!0,L~C,DP~U,S~Su).MYT1(B!0,L~C,S~Ki)->MYT1(B,L~C,S~no)+MPF(B,L~C,DP~P,S~no) kMPFd + +## PHOSPHORYLATION OF MPF CYTOPLASMIC RETENTION SITE BY UNKOWN KINASE ## +ProX(B,S~no,L~C)+MPF(B,L~C,CR~U,S~no)<->MPF(B!0,L~C,CR~U,S~Su).ProX(B!0,L~C,S~Ki) kMPFsOn,kMPFsOff +MPF(B!0,L~C,CR~U,S~Su).ProX(B!0,S~Ki,L~C)->ProX(B,L~C,S~no)+MPF(B,L~C,CR~P,S~no) kMPFs + +## CHK1 AND CHK2 ENABLING SEQUESTERATION OF CDC25 ## +CHK1(B,AP~P,S~no,L~C)+CDC25(B,L~C,S~no,SD~U,SE~U)<->CHK1(B!0,AP~P,S~Ki,L~C).CDC25(B!0,L~C,SD~U,SE~U,S~Su) kCDCpOn,kCDCpOff +CHK1(B,AP~P,S~no,L~N)+CDC25(B,L~N,S~no,SD~U,SE~U)<->CHK1(B!0,AP~P,S~Ki,L~N).CDC25(B!0,L~N,SD~U,SE~U,S~Su) kCDCpOnN,kCDCpOffN +CHK1(B!0,AP~P,S~Ki,L~C).CDC25(B!0,L~C,SD~U,SE~U,S~Su)->CHK1(B,AP~P,S~no,L~C)+CDC25(B,L~C,S~no,SD~U,SE~P) kCDCp +CHK1(B!0,AP~P,S~Ki,L~N).CDC25(B!0,L~N,SD~U,SE~U,S~Su)->CHK1(B,AP~P,S~no,L~N)+CDC25(B,L~N,S~no,SD~U,SE~P) kCDCpN + +CHK2(B,L~C,S~no,AP~P)+CDC25(B,L~C,S~no,SD~U,SE~U)<->CHK2(B!0,L~C,S~Ki,AP~P).CDC25(B!0,L~C,SD~U,SE~U,S~Su) kCDCpOn,kCDCpOff +CHK2(B!0,L~C,S~Ki,AP~P).CDC25(B!0,L~C,SD~U,SE~U,S~Su)->CHK2(B,L~C,S~no,AP~P)+CDC25(B,L~C,S~no,SD~U,SE~P) kCDCp +CHK2(B,L~N,S~no,AP~P)+CDC25(B,L~N,S~no,SD~U,SE~U)<->CHK2(B!0,L~N,S~Ki,AP~P).CDC25(B!0,L~N,SD~U,SE~U,S~Su) kCDCpOnN,kCDCpOffN +CHK2(B!0,L~N,S~Ki,AP~P).CDC25(B!0,L~N,SD~U,SE~U,S~Su)->CHK2(B,L~N,S~no,AP~P)+CDC25(B,L~N,S~no,SD~U,SE~P) kCDCpN + +## SUPERACTIVATION OF Wee1 BY CHK1 ## +CHK1(B,AP~P,S~no,L~N)+WEE1(B,L~N,SP~U,S~no)<->WEE1(B!0,L~N,SP~U,S~Su).CHK1(B!0,AP~P,L~N,S~Ki) kWEEsaOn,kWEEsaOff +WEE1(B!0,L~N,SP~U,S~Su).CHK1(B!0,AP~P,L~N,S~Ki)->CHK1(B,AP~P,S~no,L~N)+WEE1(B,L~N,SP~P,S~no) kWEEsa + +## PP2A REMOVING SEQUESTRATION ENABLING PHOSPHORYLATION FROM CDC25's ## +PP2A(B,L~C,S~no)+CDC25(B,L~C,S~no,SE~P)<->PP2A(B!0,L~C,S~Ph).CDC25(B!0,L~C,S~Su,SE~P) kCDCdqOn,kCDCdqOff +PP2A(B!0,L~C,S~Ph).CDC25(B!0,L~C,S~Su,SE~P)->PP2A(B,L~C,S~no)+CDC25(B,L~C,S~no,SE~U) kCDCdq +PP2A(B,L~N,S~no)+CDC25(B,L~N,S~no,SE~P)<->PP2A(B!0,S~Ph,L~N).CDC25(B!0,L~N,S~Su,SE~P) kCDCdqOnN,kCDCdqOffN +PP2A(B!0,S~Ph,L~N).CDC25(B!0,L~N,S~Su,SE~P)->PP2A(B,L~N,S~no)+CDC25(B,L~N,S~no,SE~U) kCDCdqN + +## PP2A DISRUPTING 14-3-3 SEQUESTERATION OF CDC25's ## +PP2A(B,L~C,S~no)+CDC25(B!0,L~C,SD~U,S~Sq,SE~P).E33(B!0,L~C,S~no,Sq~Y)->PP2A(B,L~C,S~no)+E33(B,L~C,S~no,Sq~N)+CDC25(B,L~C,SD~U,S~no,SE~U) kCDCus + +## PP2A REMOVING THE SEQUESTERATION DISABLING PHOSPHORYLATION FROM CDC25's ## +PP2A(B,L~C,S~no)+CDC25(B,L~C,S~no,SD~P)->PP2A(B,L~C,S~no)+CDC25(B,L~C,S~no,SD~U) krPLKph +PP2A(B,L~C,S~no)+CDC25(B,L~N,S~no,SD~P)->PP2A(B,L~C,S~no)+CDC25(B,L~N,S~no,SD~U) krPLKphN + +## 14-3-3 SEQUESTERING CDC25's ## +E33(B,L~C,S~no,Sq~N)+CDC25(B,L~C,SD~U,S~no,SE~P)->CDC25(B!0,L~C,SD~U,S~Sq,SE~P).E33(B!0,L~C,S~no,Sq~N) kE33bCDC +E33(B,L~N,S~no,Sq~N)+CDC25(B,L~N,SD~U,S~no,SE~P)->CDC25(B!0,L~N,SD~U,S~Sq,SE~P).E33(B!0,L~N,S~no,Sq~N) kE33bCDCn +CDC25(B!0,L~C,SD~U,S~Sq,SE~P).E33(B!0,L~C,S~no,Sq~N)->CDC25(B!0,L~C,SD~U,S~Sq,SE~P).E33(B!0,L~C,S~no,Sq~Y) kCDCsq +CDC25(B!0,L~C,SD~U,S~Sq,SE~P).E33(B!0,L~C,S~no,Sq~N)->E33(B,L~C,Sq~N,S~no)+CDC25(B,L~C,SD~U,S~no,SE~U) kE33CDCdis +CDC25(B!0,L~N,SD~U,S~Sq,SE~P).E33(B!0,L~N,S~no,Sq~N)->CDC25(B!0,L~C,SD~U,S~Sq,SE~P).E33(B!0,L~C,S~no,Sq~Y) kCDCsqN +CDC25(B!0,L~N,SD~U,S~Sq,SE~P).E33(B!0,L~N,S~no,Sq~N)->E33(B,L~N,Sq~N,S~no)+CDC25(B,L~N,SD~U,S~no,SE~U) kE33CDCdisN + +## CHK1 AND CHK2 PHOSPHORYLATION OF CDC25a LEADING TO DEGRADATION ## +CHK1(B,AP~P,S~no,L~C)+CDC25(B,L~C,S~no,AP~P,T~A) -> CHK1(B,AP~P,S~no,L~C) kCDCaOut +CHK2(B,AP~P,S~no,L~C)+CDC25(B,L~C,S~no,AP~P,T~A) -> CHK2(B,AP~P,S~no,L~C) kCDCaOut +CHK1(B,AP~P,S~no,L~N)+CDC25(B,L~N,S~no,AP~P,T~A) -> CHK1(B,AP~P,S~no,L~N) kCDCaOutN +CHK2(B,AP~P,S~no,L~N)+CDC25(B,L~N,S~no,AP~P,T~A) -> CHK2(B,AP~P,S~no,L~N) kCDCaOutN + +## CHK1 DEACTIVATION OF CDC25b ## +CHK1(B,AP~P,S~no,L~C)+CDC25(B,L~C,S~no,AP~P,T~B)<->CDC25(B!0,L~C,AP~P,T~B,S~Su).CHK1(B!0,AP~P,S~Ki,L~C) kCDCBdOn,kCDCBdOff +CDC25(B!0,L~C,AP~P,T~B,S~Su).CHK1(B!0,AP~P,S~Ki,L~C)->CHK1(B,AP~P,S~no,L~C)+CDC25(B,L~C,S~no,AP~D,T~B) kCDCBd +CHK1(B,AP~P,S~no,L~N)+CDC25(B,L~N,S~no,AP~P,T~B)<->CDC25(B!0,L~N,AP~P,T~B,S~Su).CHK1(B!0,AP~P,S~Ki,L~N) kCDCBdOnN,kCDCBdOffN +CDC25(B!0,L~N,AP~P,T~B,S~Su).CHK1(B!0,AP~P,S~Ki,L~N)->CHK1(B,AP~P,S~no,L~N)+CDC25(B,L~N,S~no,AP~D,T~B) kCDCBdN + +## NUCLEAR IMPORT AND EXPORT RULES ## +Importin(L~M)+E33(B,Sq~N,S~no,L~C)->Importin(L~M)+E33(B,Sq~N,S~no,L~N) kipE33 +DUM(L~M)+E33(B,Sq~N,S~no,L~N)->DUM(L~M)+E33(B,Sq~N,S~no,L~C) kxpE33 + +Importin(L~M)+CHK1(B,S~no,L~C)->Importin(L~M)+CHK1(B,S~no,L~N) kipCHK1 +DUM(L~M)+CHK1(B,S~no,L~N)->DUM(L~M)+CHK1(B,S~no,L~C) kxpCHK1 +Importin(L~M)+CHK2(B,S~no,L~C)->Importin(L~M)+CHK2(B,S~no,L~N) kipCHK2 +DUM(L~M)+CHK2(B,AP~P,S~no,L~N)->DUM(L~M)+CHK2(B,AP~P,S~no,L~C) kxpCHK2 + +Importin(L~M)+CDC25(B,L~C,S~no,T~A)->Importin(L~M)+CDC25(B,L~N,S~no,T~A) kipCDC25A +Importin(L~M)+CDC25(B,L~C,S~no,T~B)->Importin(L~M)+CDC25(B,L~N,S~no,T~B) kipCDC25B + +CRM1(L~M)+CDC25(B,L~N,S~no,T~A)->CRM1(L~M)+CDC25(B,L~C,S~no,T~A) kxpCDC25A +CRM1(L~M)+CDC25(B,L~N,S~no,T~B)->CRM1(L~M)+CDC25(B,L~C,S~no,T~B) kxpCDC25B + +Importin(L~M,CdcFI~N)+CDC25(B,L~C,S~no,T~C)->Importin(L~M,CdcFI~N)+CDC25(B,L~N,S~no,,T~C) kipCDCi +Importin(L~M,CdcFI~Y)+CDC25(B,L~C,S~no,T~C)->Importin(L~M,CdcFI~Y)+CDC25(B,L~N,S~no,T~C) kipCDCa +CRM1(L~M)+CDC25(B,L~N,S~no,T~C,SD~P)->CRM1(L~M)+CDC25(B,L~C,S~no,T~C,SD~P) kxpCDCf +CRM1(L~M)+CDC25(B,L~N,S~no,T~C,SD~U)->CRM1(L~M)+CDC25(B,L~C,S~no,T~C,SD~U) kxpCDCs +PLK1(B,L~N,S~no)+CRM1(L~M)->PLK1(B,L~C,S~no)+CRM1(L~M) kxpPLK +PLK1(B,L~C,S~no)+Importin(L~M)->PLK1(B,L~N,S~no)+Importin(L~M) kipPLK + +CRM1(L~M)+MPF(B,L~N,NE~U,S~no)->CRM1(L~M)+MPF(B,L~C,NE~U,S~no) kxpMPFf +CRM1(L~M)+MPF(B,L~N,NE~P,S~no)->CRM1(L~M)+MPF(B,L~C,NE~P,S~no) kxpMPFs + +Importin(L~M)+MPF(B,L~C,NE~U,NE2~U,CR~P,S~no)->Importin(L~M)+MPF(B,L~N,NE~U,NE2~U,CR~P,S~no) kipMPF1 +Importin(L~M)+MPF(B,L~C,NE~U,NE2~U,CR~U,S~no)->Importin(L~M)+MPF(B,L~N,NE~U,NE2~U,CR~U,S~no) kipMPF5 +Importin(L~M)+MPF(B,L~C,NE2~P,CR~P,S~no)->Importin(L~M)+MPF(B,L~N,NE2~P,CR~P,S~no) kipMPF10 +Importin(L~M)+MPF(B,L~C,NE2~P,CR~U,S~no)->Importin(L~M)+MPF(B,L~N,NE2~P,CR~U,S~no) kipMPF100 +Importin(L~M)+MPF(B,L~C,NE~P,NE2~U,CR~U,S~no)->Importin(L~M)+MPF(B,L~N,NE~P,NE2~U,CR~U,S~no) kipMPF10 + +## MODIFICATION OF IMPORTIN FOR FAST TRANSPORT ## +Importin(L~M,CdcFI~N)+MPF(B,L~C,DP~U,CR~U,S~no) -> Importin(L~M,CdcFI~Y)+MPF(B,L~C,DP~U,CR~U,S~no) kImpA +DUM(L~M)+Importin(L~M,CdcFI~Y) -> DUM(L~M)+Importin(L~M,CdcFI~N) kImpD + +## CHK1 AND CHK2 SPONTANEOUS DEACTIVATION ## +CHK1(B,AP~P,S~no)+DUM(L~C)->CHK1(B,AP~U,S~no)+DUM(L~C) kCHKd +CHK2(B,S~no,AP~P)+DUM(L~C)->CHK2(B,S~no,AP~U)+DUM(L~C) kCHKd + +## CHK1 AND CHK2 SPONTANEOUS ACTIVATION ## +CHK1(B,AP~U,S~no)->CHK1(B,AP~P,S~no) kCHKa +CHK2(B,S~no,AP~U)->CHK2(B,S~no,AP~P) kCHKa + +## REMOVAL OF MPF CYTOPLASMIC RETENTION PHOSPHORYLATION BY CDC25's ## +MPF(B,L~C,CR~P,S~no)+CDC25(B,L~C,S~no,AP~P)<-> MPF(B!0,L~C,CR~P,S~Su).CDC25(B!0,L~C,S~Ph,AP~P) kMPFusOn,kMPFusOff +MPF(B!0,L~C,CR~P,S~Su).CDC25(B!0,L~C,S~Ph,AP~P)-> MPF(B,L~C,S~no,CR~U)+CDC25(B,L~C,S~no,AP~P) kMPFus + +## Plk1 RELEASE OF CDC25's SEQUESTERATION ## +PLK1(B,L~C,S~no,AP~P)+CDC25(B,L~C,S~no,SD~U)<->PLK1(B!0,L~C,AP~P,S~Ki).CDC25(B!0,L~C,S~Su,SD~U) kCDCsdOn,kCDCsdOff +PLK1(B!0,L~C,S~Ki,AP~P).CDC25(B!0,L~C,SD~U,S~Su)->PLK1(B,L~C,S~no,AP~P)+CDC25(B,L~C,S~no,SD~P) kCDCsd +PLK1(B,L~N,S~no,AP~P)+CDC25(B,L~N,S~no,SD~U)<->PLK1(B!0,L~N,AP~P,S~Ki).CDC25(B!0,L~N,S~Su,SD~U) kCDCsdOnN,kCDCsdOffN +PLK1(B!0,L~N,S~Ki,AP~P).CDC25(B!0,L~N,SD~U,S~Su)->PLK1(B,L~N,S~no,AP~P)+CDC25(B,L~N,S~no,SD~P) kCDCsdN + +PLK1(B,L~C,S~no,AP~P)+CDC25(B!0,L~C,SD~U,S~Sq,SE~P).E33(B!0,Sq~Y,L~C,S~no)->PLK1(B,L~C,S~no,AP~P)+E33(B,L~C,S~no,Sq~N)+CDC25(B,L~C,SE~U,S~no,SD~U) kCDCus2 + +## Plk1 PHOSPHORYLATING MPF ## +PLK1(B,L~N,S~no,AP~P)+MPF(B,L~N,S~no,NE~U,NE2~U)<->PLK1(B!0,L~N,AP~P,S~Ki).MPF(B!0,L~N,NE~U,NE2~U,S~Su) kMPFneOnN,kMPFneOffN +PLK1(B,L~C,S~no,AP~P)+MPF(B,L~C,NE~U,NE2~U,S~no)<->PLK1(B!0,AP~P,L~C,S~Ki).MPF(B!0,L~C,S~Su,NE~U,NE2~U) kMPFneOn,kMPFneOff +PLK1(B,L~N,S~no,AP~P)+MPF(B,L~N,S~no,NE~U,NE2~P)<->PLK1(B!0,L~N,AP~P,S~Ki).MPF(B!0,L~N,NE~U,NE2~P,S~Su) kMPFneOnN2,kMPFneOffN +PLK1(B,L~C,S~no,AP~P)+MPF(B,L~C,NE~U,NE2~P,S~no)<->PLK1(B!0,AP~P,L~C,S~Ki).MPF(B!0,L~C,S~Su,NE~U,NE2~P) kMPFneOn2,kMPFneOff +PLK1(B!0,L~C,S~Ki,AP~P).MPF(B!0,L~C,NE~U,S~Su)->PLK1(B,L~C,S~no,AP~P)+MPF(B,L~C,S~no,NE~P) kMPFne +PLK1(B!0,L~N,S~Ki,AP~P).MPF(B!0,L~N,NE~U,S~Su)->PLK1(B,L~N,S~no,AP~P)+MPF(B,L~N,S~no,NE~P) kMPFneN + +## MPF PHOSPHORYLATING Plk1 ## +PLK1(B,L~C,S~no,AP~U)+MPF(B,L~C,S~no,DP~U)<->PLK1(B!0,L~C,S~Su,AP~U).MPF(B!0,L~C,S~Ki,DP~U) kPLKaOn,kPLKaOff +PLK1(B,L~N,S~no,AP~U)+MPF(B,L~N,S~no,DP~U)<->PLK1(B!0,L~N,S~Su,AP~U).MPF(B!0,L~N,S~Ki,DP~U) kPLKaOnN,kPLKaOffN +PLK1(B!0,L~N,S~Su,AP~U).MPF(B!0,L~N,S~Ki,DP~U)->PLK1(B,L~N,S~no,AP~P)+MPF(B,L~N,S~no,DP~U) kPLKaN +PLK1(B!0,L~C,S~Su,AP~U).MPF(B!0,L~C,S~Ki,DP~U)->PLK1(B,L~C,S~no,AP~P)+MPF(B,L~C,S~no,DP~U) kPLKa + +## Plk1 PHOSPHORYLATING CHK1 ## +PLK1(B,L~C,S~no,AP~P)+CHK1(B,AP~P,S~no,L~C)->PLK1(B,L~C,S~no,AP~U)+CHK1(B,AP~P,S~no,L~C) kPLKd +PLK1(B,L~C,S~no,AP~P)+CHK1(B,AP~P,S~no,L~C)->PLK1(B,L~C,S~no,AP~P)+CHK1(B,AP~U,S~no,L~C) kCHK1d +PLK1(B,L~N,S~no,AP~P)+CHK1(B,AP~P,S~no,L~N)->PLK1(B,S~no,AP~U,L~N)+CHK1(B,AP~P,S~no,L~N) kPLKdN +PLK1(B,L~N,S~no,AP~P)+CHK1(B,AP~P,S~no,L~N)->PLK1(B,S~no,AP~P,L~N)+CHK1(B,AP~U,S~no,L~N) kCHK1dN + +##PLK1 PHOSPHORYLATING WEE1## +PLK1(B,L~N,S~no,AP~P)+WEE1(B,L~N,DP~U,S~no)<->PLK1(B!0,L~N,S~no,AP~P).WEE1(B!0,L~N,DP~U,S~no) kWEEdOn2,kWEEdOff +PLK1(B!0,L~N,S~no,AP~P).WEE1(B!0,L~N,DP~U,S~no)->PLK1(B,L~N,S~no,AP~P)+WEE1(B,L~N,DP~P,S~no) kWEEd +PLK1(B,L~N,S~no,AP~P)+WEE1(B,L~N,DP~M,S~no)<->PLK1(B!0,L~N,S~no,AP~P).WEE1(B!0,L~N,DP~M,S~no) kWEEdOn3,kWEEdOff +PLK1(B!0,L~N,S~no,AP~P).WEE1(B!0,L~N,DP~M,S~no)->PLK1(B,L~N,S~no,AP~P)+WEE1(B,L~N,DP~P,S~no) kWEEd + +## Plk1 PHOSPHORYLATING pkMyt1 ## +PLK1(B,L~C,S~no,AP~P)+MYT1(B,S~no,L~C)<->PLK1(B!0,L~C,AP~P,S~Ki).MYT1(B!0,L~C,S~Su) kMYTdOn,kMYTdOff +PLK1(B!0,L~C,AP~P,S~Ki).MYT1(B!0,L~C,S~Su)->PLK1(B,L~C,S~no,AP~P) kMYTd + +## MPF AUTOPHOSPHORYLATION ## +MPF(B!0,L~N,NE2~U,S~Su).MPF(B!0,L~N,DP~U,S~Ki)-> MPF(B,L~N,S~no,NE2~P)+MPF(B,L~N,DP~U,S~no) kMPFimpN +MPF(B,L~N,S~no,NE2~U)+MPF(B,L~N,DP~U,S~no)<-> MPF(B!0,L~N,NE2~U,S~Su).MPF(B!0,L~N,DP~U,S~Ki) kMPFimpOnN,kMPFimpOffN +MPF(B,L~C,NE2~U,S~no)+MPF(B,L~C,DP~U,S~no)<-> MPF(B!0,L~C,NE2~U,S~Su).MPF(B!0,L~C,DP~U,S~Ki) kMPFimpOn,kMPFimpOff +MPF(B!0,L~C,NE2~U,S~Su).MPF(B!0,L~C,DP~U,S~Ki)-> MPF(B,L~C,NE2~P,S~no)+MPF(B,L~C,DP~U,S~no) kMPFimp + +## Phosphorylation of Histone H3 by MPF to Mark Mitotic Entry ## +MPF(B,DP~U,L~N,S~no)+H3(B,AP~U,L~N,S~no)<->MPF(B!0,DP~U,L~N,S~Ki).H3(B!0,AP~U,L~N,S~Su) kH3aOn,kH3aOff +MPF(B!0,DP~U,L~N,S~Ki).H3(B!0,AP~U,L~N,S~Su)->MPF(B,DP~U,L~N,S~no)+H3(B,AP~P,L~N,S~no) kH3a + +end reaction rules +############################################################################################################################ + +begin observables +# The observables were set according to each figure. + +Molecules Histone_H3 H3(AP~P) +Molecules Tot_WEE1 WEE1() +Molecules Active_WEE1 WEE1(DP~U) +Molecules Super_WEE1 WEE1(SP~P,DP~U) +Molecules Total_MYT1 MYT1() +Molecules Tot_PLK PLK1() +Molecules Ca_PLK PLK1(L~C,AP~P) +Molecules Na_PLK PLK1(L~N,AP~P) +Molecules Active_PLK PLK1(AP~P) +Molecules Tot_CDC25a CDC25(T~A) +Molecules A_CDC25a CDC25(T~A,AP~P,S~no) +Molecules seq_CDC25a CDC25(T~A,B!1).E33(B!1,Sq~Y) +Molecules Na_Cdc25a_N CDC25(T~A,AP~P,S~no,L~N) +Molecules Tot_CDC25b CDC25(T~B) +Molecules Act_CDC25b CDC25(T~B,AP~P,S~no) +Molecules seq_CDC25b CDC25(B!1,T~B).E33(B!1,Sq~Y) +Molecules Na_Cdc25b CDC25(T~B,AP~P,S~no,L~N) +Molecules Ca_CDC25b CDC25(T~B,AP~P,S~no,L~C) +Molecules Tot_CDC25c CDC25(T~C) +#Molecules Act_CDC25c CDC25(T~*,AP~P,S~no,L~C) +#Molecules Act_CDC25c CDC25(AP~P,S~no,L~C) + +Molecules Ca_CDC25c CDC25(T~C,AP~P,S~no,L~C) +Molecules Na_CDC25c CDC25(T~C,AP~P,L~N) +Molecules seq_CDC25c CDC25(B!1,T~C).E33(B!1,Sq~Y) +Molecules Ca_MPF MPF(L~C,DP~U) +Molecules Tot_MPF MPF() +Molecules C_MPF MPF(L~C) +Molecules N_MPF MPF(L~N) +Molecules Na_MPF MPF(L~N,DP~U) +Molecules Act_CHK1 CHK1(AP~P,L~C) +Molecules Na_CHK1 CHK1(AP~P,L~N) +Molecules Act_CHK2 CHK2(AP~P,L~C) +Molecules Na_CHK2 CHK2(AP~P,L~N) + +end observables + + +################################################################################### +## THIS NEXT SECTION CONTAINING "setParameter" COMMANDS ### +## was used alter the paramaters for the pramater scan and depletion experiments. ### +################################################################################### + +## pkMYT1 ## +#setParameter(MYT10,0.005); ##setParameter(MYT10,0.5); +#setParameter(kMYTin,0.0001); ##setParameter(kMYTin,0.001); + +## WEE1 ## +#setParameter(WEE10,0.005); ##setParameter(WEE10,0.5); +#setParameter(kWEEin,0.0005); ##setParameter(kWEEin,0.005); + +## MPF ## +#setParameter(MPF0,0.1); +#setParameter(kMPFin,0.001); + +## CDC25 ## +#setParameter(kCDC25Bin,0.0000); #setParameter(kCDC25Bin,0.0003); +#setParameter(kCDC25Cin,0.00005); +#setParameter(kCDC25Ain,0.00001); + +#setParameter(CDC25A0,0.5); +#setParameter(CDC25B0,0.0); +#setParameter(CDC25C0,0.1); + +#setParameter(kCDCout,0.0001); + +#setParameter(kCDCaOut,0.011); +#setParameter(kCDCaOutN,0.099); + +#setParameter(kCDCaOn,5.0); +#setParameter(kCDCaOnN,45.0); + +#setParameter(kCDCcD,5.0); +#setParameter(kCDCcDn,5.0); + +#setParameter(kCDCBdOn,200.0); +#setParameter(kCDCBdOnN,1800.0); + +#setParameter(kCDCBa,1.0); + +#setParameter(kCDCAaCDCB,0.1); +#setParameter(kCDCAaCDCBn,0.9); + +#setParameter(kCDC25Ades,0.0000001); + +#setParameter(kE33CDCdis,0.01); +#setParameter(kE33CDCdis,0.01); + +#setParameter(kCDCsq,100.0); +#setParameter(kCDCsqN,100.0); + +## CHK1 ## +#setParameter(CHK1a0,0.005); +#setParameter(CHK1i0,0.09); +#setParameter(CHK1an0,0.005); + +## CHK2 ## +#setParameter(CHK2a0,0.01); +#setParameter(CHK2i0,0.09); + +## PLK1 ## +#setParameter(PLK10c,0.07); ##setParameter(PLK10c,0.7); +#setParameter(PLK10n,0.03); ##setParameter(PLK10n,0.3); + +## PIN1 ## +#setParameter(PIN10,1.0); + +## PP2A ## +#setParameter(PP2Ac0,1.0); +#setParameter(PP2An0,1.0); + +#setParameter(kipE33,0.2); +#setParameter(kxpE33,0.1); + +#setParameter(kCDCus,0.001); +#setParameter(kCDCus2,0.3); + +#setParameter(kMPFaOn,60.0); +#setParameter(kMPFaOnN,540.0); + +#setParameter(kipCDCi,0.1); +#setParameter(kipCDCa,1.0); + +#setParameter(kxpCDCf,1.0); +#setParameter(kxpCDCs,0.01); + +#setParameter(kImpA,0.5); +#setParameter(kImpD,0.01); + +#setParameter(kipE33,0.1); +#setParameter(kxpE33,0.1); + +#setParameter(kipMPF1,0.01); +#setParameter(kipMPF5,0.05); +#setParameter(kipMPF10,0.10); +#setParameter(kipMPF50,0.5); +#setParameter(kipMPF100,5.0); +#setParameter(kxpMPFf,1.0); +#setParameter(kxpMPFs,0.01); +#setParameter(kipCHK1,0.90); +#setParameter(kxpCHK1,0.10); +#setParameter(kipCHK2,0.90); +#setParameter(kxpCHK2,0.10); +#setParameter(kipCDCi,0.01); +#setParameter(kipCDCa,0.10); +#setParameter(kxpCDCf,0.10); +#setParameter(kxpCDCs,0.001); +#setParameter(kxpPLK,0.07); +#setParameter(kipPLK,0.03); + +## Histone H3 ## +#setParameter(H30,1.0); + +#setParameter(kCDC25Cin,0.0000005); +#setParameter(CDC25C0,0.001); + +############################################################################################################### +##This Section is Used to Set the Simulation Conditions. ## +## ## +##The same "generate_network" command is used for all simulations. The conditions as set below will run the model for a ## +##simulated 12 hours. The output files will have the suffix "_noDamage", "_Damage", or "_Recovery" appended to the file ## +##name corresponding to conditions #1, #2 or #3 below. ## +##To simulate just the condition 1 below, uncomment the line following the "simulate_ode" command. To run condition 2, ## +##make sure conditions 1 and 3 are commented out. To run condition 3, uncomment conditions 2 AND 3. Keep condition 1 ## +##commented out. ## +################################################################################################################ + +generate_network\ +({overwrite=>1,check_iso=>1,max_iter=>25,max_stoich=>{MPF=>unlimited,CDC25=>unlimited,PIN1=>unlimited,WEE1=>unlimited,\ +ProX=>unlimited,DUM=>unlimited,MYT1=>unlimited,CRM1=>1e10,Importin=>1e10}}); + +########################################################################################################################### +# 1. Normal mitotic entry + +saveConcentrations(); +simulate_ode({t_end=>2667,n_steps=>2667,atol=>1e-12,rtol=>1e-12,sparse=>1,suffix=>noDamage}); + +########################################################################################################################### +# 2. Constant DNA Damage Signal + +#resetConcentrations(); +#setParameter(kCHKd,0.0000001); ##This turns off the ability to spontaneously inactivate the CHK's +#setParameter(kCHKa,0.001); ##This turns up the rate of spontaneous CHK activation so that most of the CHK's become acitvated. +#simulate_ode({t_end=>1789,n_steps=>1789,atol=>1e-12,rtol=>1e-12,sparse=>1,suffix=>Damage}); + +########################################################################################################################### +# 3. Normal Recovery from Damage. + +#setParameter(kCHKd,0.001); ##This turns up the rate of spontaneous CHK deactivation such that most of the CHK's are inactive. +#setParameter(kCHKa,0.0000001);##This turns down the rate of spontaneous CHK activation such that most of the CHK's are inactive. +#simulate_ode({t_end=>2700,n_steps=>2700,atol=>1e-12,rtol=>1e-12,sparse=>1,suffix=>Recovery}); \ No newline at end of file diff --git a/Published/Kesseler2013/README.md b/Published/Kesseler2013/README.md new file mode 100644 index 00000000..8ed12bd5 --- /dev/null +++ b/Published/Kesseler2013/README.md @@ -0,0 +1,21 @@ +# Kesseler 2013 + +G2/Mitosis transition + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Kesseler_2013.bngl + +## Tags + +published, kesseler, 2013, mpf, cdc25, wee1, myt1, pin1, pp2a, prox, e33 diff --git a/Published/Kesseler2013/metadata.yaml b/Published/Kesseler2013/metadata.yaml new file mode 100644 index 00000000..bb5daecd --- /dev/null +++ b/Published/Kesseler2013/metadata.yaml @@ -0,0 +1,22 @@ +id: "Kesseler_2013" +name: "Kesseler 2013" +description: "G2/Mitosis transition" +tags: ["published", "kesseler", "2013", "mpf", "cdc25", "wee1", "myt1", "pin1", "pp2a", "prox", "e33"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/complex-models/Kesseler_2013.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/Kocieniewski2012/Kocieniewski_2012.bngl b/Published/Kocieniewski2012/Kocieniewski_2012.bngl new file mode 100644 index 00000000..013b8d13 --- /dev/null +++ b/Published/Kocieniewski2012/Kocieniewski_2012.bngl @@ -0,0 +1,60 @@ +begin model + +begin parameters +# Molecule Numbers +Atot 1e5 +Btot 1e5 +Ctot 5e5 +Stot 1e5 +# Rates +a 1e-6 +d1 0.1 +d2 100 +pscaff 100 +u 0.1 +S 1 +end parameters + +begin molecule types +MAP3K(s,S~I~A) +MAP2K(s,R1~Y~Yp,R2~Y~Yp) +MAPK(s,R1~Y~Yp,R2~Y~Yp) +Scaff(map3k,map2k,mapk) +end molecule types + +begin seed species +MAP3K(s,S~I) Atot +MAP2K(s,R1~Y,R2~Y) Btot +MAPK(s,R1~Y,R2~Y) Ctot +Scaff(map3k,map2k,mapk) Stot +end seed species + +begin observables +Molecules MAPKchainone MAPK(s!1,R1~Yp).Scaff(mapk!1,map2k!2).MAP2K(s!2,R1~Yp,R2~Yp) +Molecules MAPKchaintwo MAP3K(s!1,S~A).Scaff(map3k!1,map2k!2).MAP2K(s!2,R1~Yp,R2~Yp) +end observables + +begin reaction rules +MAP3K(s,S~I) -> MAP3K(s,S~A) S +MAP3K(s,S~A) + Scaff(map3k) <-> MAP3K(s!1,S~A).Scaff(map3k!1) a, d1 +MAP3K(s!1,S~I).Scaff(map3k!1) -> MAP3K(s,S~I) + Scaff(map3k) d2 +MAP2K(s,R1~Y,R2~Y) + Scaff(map2k) <-> MAP2K(s!1,R1~Y,R2~Y).Scaff(map2k!1) a, d1 +MAP2K(s,R1~Yp,R2~Y) + Scaff(map2k) <-> MAP2K(s!1,R1~Yp,R2~Y).Scaff(map2k!1) a, d1 +MAP2K(s,R1~Y,R2~Yp) + Scaff(map2k) <-> MAP2K(s!1,R1~Y,R2~Yp).Scaff(map2k!1) a, d1 +MAP2K(s,R1~Yp,R2~Yp) + Scaff(map2k) <-> MAP2K(s!1,R1~Yp,R2~Yp).Scaff(map2k!1) a, d1 +MAPK(s,R1~Y,R2~Y) + Scaff(mapk) <-> MAPK(s!1,R1~Y,R2~Y).Scaff(mapk!1) a, d1 +MAPK(s,R1~Yp,R2~Y) + Scaff(mapk) <-> MAPK(s!1,R1~Yp,R2~Y).Scaff(mapk!1) a, d1 +MAPK(s,R1~Y,R2~Yp) + Scaff(mapk) <-> MAPK(s!1,R1~Y,R2~Yp).Scaff(mapk!1) a, d1 +MAPK(s!1,R1~Yp,R2~Yp).Scaff(mapk!1) -> MAPK(s,R1~Yp,R2~Yp) + Scaff(mapk) d2 +MAP3K(s!1,S~A).Scaff(map3k!1,map2k!2).MAP2K(s!2,R1~Y) -> MAP3K(s!1,S~A).Scaff(map3k!1,map2k!2).MAP2K(s!2,R1~Yp) pscaff +MAP3K(s!1,S~A).Scaff(map3k!1,map2k!2).MAP2K(s!2,R2~Y) -> MAP3K(s!1,S~A).Scaff(map3k!1,map2k!2).MAP2K(s!2,R2~Yp) pscaff +MAPK(s!1,R1~Y).Scaff(mapk!1,map2k!2).MAP2K(s!2,R1~Yp,R2~Yp) -> MAPK(s!1,R1~Yp).Scaff(mapk!1,map2k!2).MAP2K(s!2,R1~Yp,R2~Yp) pscaff +MAPK(s!1,R2~Y).Scaff(mapk!1,map2k!2).MAP2K(s!2,R1~Yp,R2~Yp) -> MAPK(s!1,R2~Yp).Scaff(mapk!1,map2k!2).MAP2K(s!2,R1~Yp,R2~Yp) pscaff +MAP3K(S~A) -> MAP3K(S~I) u +MAP2K(R1~Yp) -> MAP2K(R1~Y) u +MAP2K(R2~Yp) -> MAP2K(R2~Y) u +MAPK(R1~Yp) -> MAPK(R1~Y) u +MAPK(R2~Yp) -> MAPK(R2~Y) u +end reaction rules + +end model \ No newline at end of file diff --git a/Published/Kocieniewski2012/README.md b/Published/Kocieniewski2012/README.md new file mode 100644 index 00000000..635e6f85 --- /dev/null +++ b/Published/Kocieniewski2012/README.md @@ -0,0 +1,21 @@ +# Kocieniewski 2012 + +Actin dynamics + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Kocieniewski_2012.bngl + +## Tags + +published, kocieniewski, 2012, map3k, map2k, mapk, scaff diff --git a/Published/Kocieniewski2012/metadata.yaml b/Published/Kocieniewski2012/metadata.yaml new file mode 100644 index 00000000..d08a90c6 --- /dev/null +++ b/Published/Kocieniewski2012/metadata.yaml @@ -0,0 +1,22 @@ +id: "Kocieniewski_2012" +name: "Kocieniewski 2012" +description: "Actin dynamics" +tags: ["published", "kocieniewski", "2012", "map3k", "map2k", "mapk", "scaff"] +category: "regulation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/cell-regulation/Kocieniewski_2012.bngl" +playground: + visible: false + gallery_category: "regulation" + featured: false + difficulty: "advanced" diff --git a/Published/Kozer2013/Kozer_2013.bngl b/Published/Kozer2013/Kozer_2013.bngl new file mode 100644 index 00000000..e81f320e --- /dev/null +++ b/Published/Kozer2013/Kozer_2013.bngl @@ -0,0 +1,150 @@ +#File S1 (a plain-text file) +#This file is supplementary material for the report indicated below. +#Title: Exploring higher-order EGFR oligomerisation and phosphorylation---a combined experimental and theoretical approach +#Authors: Noga Kozer, Dipak Barua, Suzanne Orchard, Eduoard C. Nice, Antony W. Burgess, William S. Hlavacek and Andrew H.A. Clayton + +#This file is a model specification written in BNGL (Faeder et al., 2009) (Ref. 44) that can be processed by BioNetGen (http://bionetgen.org) after changing the extension from .txt to .bngl + +#Note: steady-state ligand dose-response curves can be generated by using the Parameter Scan function of RuleBender (http://rulebender.cs.pitt.edu), an IDE for BioNetGen. + +begin parameters + +#See Table 1 for additional information about parameter values. +#It should be noted that BioNetGen treats rate constants as single-site rate constants. Thus, care must be taken to specify such rate constants, i.e., rate constants that do not incorporate statistical factors (which arise, for example, because a reactant has multiple indistinguishable copies of a reactive site) or factors that arise because of reactions that have the form A+A->product(s). See Faeder et al. (2009) (Ref. 44) for more details. + +LT 30 # Total ligand concentration (nM). A default concentration of 30 nM was used in cases where the ligand dose was not varied. In dose-response analyses, this concentration is varied in the range 0.001-100 nM. +RT 0.09 # Total receptor concentration (nM). The value is based on 90,000 EGFR per cell and a density of 6*10^6 cell/mL. + +K11 4.6 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR, which is not crosslinked with other EGFR via the ectodomain.The value is taken from Macdonald and Pike (2008) (Ref. 34), where it represents EGF binding with monomeric EGFR. +k11r 0.02 # Dissociation constant (/s). This value is taken from Elleman et al. (2001) (Ref. 47). +k11f 0.09 # Association constant (/nM/s). The value is derived from k11f = K11*k11r. + +K21 5.3 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR that is crosslinked via ectodomain with a second EGFR, and the crosslinked receptors both are free of EGF.The value is taken from Macdonald and Pike (2008) (Ref. 34). +k21r 0.02 # Single-site dissociation constaint (/s). We assume k21r to be the same as k11r. +k21f 0.053 # Association constant (/nM/s). The value is derived from k21f = K21*k21r/2. Division by 2 is a correction to obtain the single-site association rate constant (k21f) from the effective equilibrium association constant (K21). + +K22 0.34 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR that is crosslinked via ectodomain with a second EGFR and the second EGFR is occupied by EGF.The value is taken from Macdonald and Pike (2008) (Ref. 34). +k22r 0.2 # Single-site dissociation constaint (/s). We assume that k22r is 10-fold larger than k11r. This assumption is consistent with the difference between K11 (or K21) and K22. +k22f 0.136 # Single-site association constant in (/nM/s). The value is erived from k22f = 2*K22*k22r. Multiplication with 2 is applied to get single site association rate constant (k22f) from effective equilibrium association constant (K22). + +L20 212 # Equlibrium crossliinking constaint (/nM). The constant characterizes ectodomain-ectodomain interaction when both receptors are free from EGF. This parameter value is based on the value of 530 dm^2/nmol reported by Macdonald and Pike (2008) (Ref. 34) and the following assumptions: a receptor surface density of 1.175e-3 nmol/dm^2 (~20 eGFP-EGFR on average for a beam with a radius of 0.3 microns) for a cell line expressing 30,000 copies of EGFR per cell, receptor density is proportional to total receptor copy number, and a total receptor concentration of approximately 0.009 nM in the experiments of Macdonald and Pike (2008) involving cells expressing 87,000 copies of EGFR per cell (from the x-intercept of the Scatchard plot shown in the inset of Fig. 5A in the paper of Macdonald and Pike). In other words, we assume that the dimensionless quantity L20*RT is approximately 1.8 for cells with 87,000 copies of EGFR per cell. Moreover, we assume that the total number of cells used in the experiments of Macdonald and Pike (for a cell line with 87,000 copies of EGFR per cell) was such that the total concentration of EGFR was approximately 0.009 nM. If we further assume that the total number of cells used was the same in all experiments of Macdonald and Pike, then the dimensional value of L20 (in units consistent with those used for total EGF concentration) is 212 /nM (obtained by dividing the dimesionless quantity L20*RT by RT when RT is expressed in the same units as those used for total EGF concentration). +l20r 1.24 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011) (Ref. 46). +l20f 526 # Association rate constant in (/nM/s). Derived from l20f = 2*L20*l20r. Multiplication factor 2 is applied because the reactant pair are the same species (Fig.1). + +L21 244 # Equilibrium crosslinking constant (/nM). The constant characterizes ectodomain-ectodomain interaction when only one receptor is bound to EGF. The value is derived from the detailed balance relation, L21 = K21*L20/K11. +l21r 0.738 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011) (Ref. 46). +l21f 180 # Association rate constant (/nM/s). The value is derived from l21f = L21*l21r. + +L22 18.0 # Equilibrium crosslinking constant (/nM). The constant characterizes ectodomain-ectodomain interaction when both receptors are bound to EGF. The value is derived from the detailed balance relation, L22 = K22*L21/K11. +l22r 0.272 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011) (Ref. 46). +l22f 9.79 # Association rate constant (/nM/s). The value is derived from l22f = 2*L22*l22r. Multiplication factor 2 is applied because the reactant pair are the same species (Fig.1). + +k_o 6.0 # Rate constant for ligand-mediated activating conformation change in the cytosolic tail of EGFR (/s). The value is obtained from fitting. +k_c 1.6 # Rate constant for ligand-independent deactivating conformation change in the cytosolic tail of EGFR (/s). The value is obtained from fitting. + +kaf 15.4 # Rate constant for EGFR tail-tail association mediated by EGFR kinase domain and juxtamembrane domains (/s). The value is obtained from fitting. +kar 8.89 # Rate constant for EGFR tail-tail dissociation (/s). The value is obtained from model fitting. + +kp 1 # EGFR phosphorylation rate constant (/s). The value is consistent with data in Kleiman et al. (2011) (Ref. 48). +kdp 1 # EGFR dephoshporylation rate constant (/s). The value is consistent with data in Kleiman et al. (2011) (Ref. 48). + +chi_r 4.37e+04 # Enhancement factor for ring-closure reactions (nM). The value is obtained from fitting. + +# The parameter alpha does not influence simulation results; this parameter is used as a scale factor to relate simulation results to the experimental data. It multiplies the quantity (observable) defined below called "Clusters." The product is taken to be directly comparable to measured relative receptor cluster density. The value of alpha is obtained from fitting. + +end parameters + + +begin molecule types +EGF(rec) +EGFR(back,lig,cd~c~o,Y~u~p) +end molecule types + + +begin seed species +EGF(rec) LT +EGFR(back,lig,cd~c,Y~u) RT +end seed species + + +begin reaction rules + +# EGF binding to EGFR not crosslinked via the ectodomain. +EGF(rec) + EGFR(back,lig) <-> EGF(rec!1).EGFR(back,lig!1) k11f,k11r + +# EGF binding to EGFR that is crosslinked via the ectodomain to a second EGFR and both crosslinked EGFR are free of EGF. +EGF(rec) + EGFR(back!1,lig).EGFR(back!1,lig) <-> EGF(rec!2).EGFR(back!1,lig!2).EGFR(back!1,lig) k21f,k21r + +# EGF binding to EGFR that is crosslinked via the ectodomain to a second EGFR and the second EGFR is bound to EGF. +EGF(rec) + EGF(rec!1).EGFR(back!2,lig!1).EGFR(back!2,lig) <-> EGF(rec!3).EGF(rec!1).EGFR(back!2,lig!1).EGFR(back!2,lig!3) k22f,k22r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and both EGFR are free of EGF. +EGFR(back,lig) + EGFR(back,lig) <-> EGFR(back!1,lig).EGFR(back!1,lig) l20f,l20r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and only one EGFR is free of EGF. +EGFR(back,lig) + EGF(rec!1).EGFR(back,lig!1) <-> EGFR(back!2,lig).EGF(rec!1).EGFR(back!2,lig!1) l21f,l21r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and both EGFR are occupied by EGF. +EGF(rec!1).EGFR(back,lig!1) + EGF(rec!2).EGFR(back,lig!2) <-> EGF(rec!1).EGFR(back!3,lig!1).EGF(rec!2).EGFR(back!3,lig!2) l22f,l22r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and both EGFR are free of EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig).EGFR(cd~o!2,back,lig).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig).EGFR(cd~o!2,back!1,lig).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l20f, l20r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and only one EGFR is free of EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig).EGFR(cd~o!2,back,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig).EGFR(cd~o!2,back!1,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l21f, l21r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and both EGFR are occuplied by EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig!+).EGFR(cd~o!2,back,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig!+).EGFR(cd~o!2,back!1,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l22f, l22r + +# EGF-induced activating conformation change of EGFR cytosolic tail +EGFR(lig!+,cd~c) -> EGFR(lig!+,cd~o) k_o + +# EGF-independent deactivating conformatoin change of EGFR cytosolic tail +EGFR(cd~o) -> EGFR(cd~c) k_c + +# Crosslinking of conformationally-modified cytosolic tails of EGFR that are not tethered +EGFR(cd~o) + EGFR(cd~o) <-> EGFR(cd~o!1).EGFR(cd~o!1) kaf, kar + +# Crosslinking of conformationally-modified cytosolic tails of EGFR that are tethered (ring-closure reaction) +EGFR(cd~o,back!1).EGFR(cd~o!3,back!1).EGFR(cd~o!3,back!2).EGFR(cd~o,back!2) <-> EGFR(cd~o!4,back!1).EGFR(cd~o!3,back!1).EGFR(cd~o!3,back!2).EGFR(cd~o!4,back!2) chi_r*kaf, kar + +# EGFR phosphorylation +EGFR(cd~o!1).EGFR(cd~o!1,Y~u) -> EGFR(cd~o!1).EGFR(cd~o!1,Y~p) kp + +# EGFR dephosphorylation +EGFR(Y~p) -> EGFR(Y~u) kdp + +end reaction rules + + +begin observables + +# Unbound EGF +Molecules EGFfree EGF(rec) + +# Ligand-free EGFR +Molecules EGFRfree EGFR(lig) + +# Clusters +Species Clusters EGFR==1 EGFR==2 EGFR==3 EGFR==4 + +# EGFR monomer +Species monomer EGFR==1 + +# EGFR dimer +Species dimer EGFR==2 + +# EGFR trimer +Species trimer EGFR==3 + +# EGFR tetramer +Species tetramer EGFR>3 + +# Phosphorylated-EGFR +Molecules pEGFR EGFR(Y~p) + +end observables + +#the max_stoich setting below prohibits oligomers larger than tetramers +generate_network({overwrite=>1,max_stoich=>{EGF=>4,EGFR=>4}}); +simulate_ode({t_end=>10000, n_steps=>1000}); \ No newline at end of file diff --git a/Published/Kozer2013/README.md b/Published/Kozer2013/README.md new file mode 100644 index 00000000..2cf43561 --- /dev/null +++ b/Published/Kozer2013/README.md @@ -0,0 +1,21 @@ +# Kozer 2013 + +EGFR oligomerization + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Kozer_2013.bngl + +## Tags + +published, kozer, 2013, egf, egfr diff --git a/Published/Kozer2013/metadata.yaml b/Published/Kozer2013/metadata.yaml new file mode 100644 index 00000000..e0167a2d --- /dev/null +++ b/Published/Kozer2013/metadata.yaml @@ -0,0 +1,22 @@ +id: "Kozer_2013" +name: "Kozer 2013" +description: "EGFR oligomerization" +tags: ["published", "kozer", "2013", "egf", "egfr"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/complex-models/Kozer_2013.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/Kozer2014/Kozer_2014.bngl b/Published/Kozer2014/Kozer_2014.bngl new file mode 100644 index 00000000..a450d8c2 --- /dev/null +++ b/Published/Kozer2014/Kozer_2014.bngl @@ -0,0 +1,189 @@ +#Supplemental file (a plain-text file) +# +#This file is supplementary material for the report indicated below. +#Title: Recruitment of the adaptor protein Grb2 to EGFR tetramers +#Authors: Noga Kozer, Dipak Barua, Christine Henderson, Eduoard C. Nice, +# Antony W. Burgess, William S. Hlavacek and Andrew H.A. Clayton + +#This file is a model specification written in BNGL (Faeder et al., 2009) +# [Methods Mol. Biol. 500:113-167]. +#It can be processed by BioNetGen (http://bionetgen.org). +#The file extension should be .bngl + +begin parameters + +NA 6.02e14 # [=] number of molecules per nmol +f 0.01 # fraction of cell to consider in simulation, dimensionless +V=f*1.0e-12 # [=] L +cellDen 6.0e8 # [=] number of cells per L +Vo=f/cellDen # volume of fluid surrounding a single cell + +#See Kozer et al. (2013) for additional information about parameter values. +# [Mol. BioSyst. 9:1849-1863] + +#It should be noted that BioNetGen treats rate constants as single-site rate constants. Thus, care must be taken to specify such rate constants, i.e., rate constants that do not incorporate statistical factors (which arise, for example, because a reactant has multiple indistinguishable copies of a reactive site) or factors that arise because of reactions that have the form A+A->product(s). See Faeder et al. (2009) for more details. + +LT 3.0*NA*Vo # Total ligand concentration (nM). A default concentration of 30 nM was used in cases where the ligand dose was not varied. In dose-response analyses, this concentration is varied in the range 0.001-100 nM. +RT 0.09*NA*Vo # Total receptor concentration (nM). The value is based on 90,000 EGFR per cell and a density of 6*10^5 cell/mL. +GT f*9.0e4 # number per cell + +K11 4.6 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR, which is not crosslinked with other EGFR via the ectodomain.The value is taken from Macdonald and Pike (2008) [PNAS 105:112-117], where it represents EGF binding with monomeric EGFR. +k11r 0.02 # Dissociation constant (/s). This value is taken from Elleman et al. (2001) [Biochemistry 40:8930-3939]. +k11f 0.09/(NA*Vo) # Association constant (/nM/s). The value is derived from k11f = K11*k11r. + +K21 5.3 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR that is crosslinked via ectodomain with a second EGFR, and the crosslinked receptors both are free of EGF.The value is taken from Macdonald and Pike (2008). +k21r 0.02 # Single-site dissociation constaint (/s). We assume k21r to be the same as k11r. +k21f 0.053/(NA*Vo) # Association constant (/nM/s). The value is derived from k21f = K21*k21r/2. Division by 2 is a correction to obtain the single-site association rate constant (k21f) from the effective equilibrium association constant (K21). + +K22 0.34 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR that is crosslinked via ectodomain with a second EGFR and the second EGFR is occupied by EGF.The value is taken from Macdonald and Pike (2008). +k22r 0.2 # Single-site dissociation constaint (/s). We assume that k22r is 10-fold larger than k11r. This assumption is consistent with the difference between K11 (or K21) and K22. +k22f 0.136/(NA*Vo) # Single-site association constant in (/nM/s). The value is erived from k22f = 2*K22*k22r. Multiplication with 2 is applied to get single site association rate constant (k22f) from effective equilibrium association constant (K22). + +L20 212 # Equlibrium crossliinking constaint (/nM). The constant characterizes ectodomain-ectodomain interaction when both receptors are free from EGF. This parameter value is based on the value of 530 dm^2/nmol reported by Macdonald and Pike (2008) and the following assumptions: a receptor surface density of 1.175e-3 nmol/dm^2 (~20 eGFP-EGFR on average for a beam with a radius of 0.3 microns) for a cell line expressing 30,000 copies of EGFR per cell, receptor density is proportional to total receptor copy number, and a total receptor concentration of approximately 0.009 nM in the experiments of Macdonald and Pike (2008) involving cells expressing 87,000 copies of EGFR per cell (from the x-intercept of the Scatchard plot shown in the inset of Fig. 5A in the paper of Macdonald and Pike). In other words, we assume that the dimensionless quantity L20*RT is approximately 1.8 for cells with 87,000 copies of EGFR per cell. Moreover, we assume that the total number of cells used in the experiments of Macdonald and Pike (for a cell line with 87,000 copies of EGFR per cell) was such that the total concentration of EGFR was approximately 0.009 nM. If we further assume that the total number of cells used was the same in all experiments of Macdonald and Pike, then the dimensional value of L20 (in units consistent with those used for total EGF concentration) is 212 /nM (obtained by dividing the dimesionless quantity L20*RT by RT when RT is expressed in the same units as those used for total EGF concentration). +l20r 1.24 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011) [Nat. Struct. Mol. Biol. 18:1244-1249]. +l20f 526/(NA*Vo) # Association rate constant in (/nM/s). Derived from l20f = 2*L20*l20r. Multiplication factor 2 is applied because the reactant pair are the same species. + +L21 244 # Equilibrium crosslinking constant (/nM). The constant characterizes ectodomain-ectodomain interaction when only one receptor is bound to EGF. The value is derived from the detailed balance relation, L21 = K21*L20/K11. +l21r 0.738 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011). +l21f 180/(NA*Vo) # Association rate constant (/nM/s). The value is derived from l21f = L21*l21r. + +L22 18.0 # Equilibrium crosslinking constant (/nM). The constant characterizes ectodomain-ectodomain interaction when both receptors are bound to EGF. The value is derived from the detailed balance relation, L22 = K22*L21/K11. +l22r 0.272 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011). +l22f 9.79/(NA*Vo) # Association rate constant (/nM/s). The value is derived from l22f = 2*L22*l22r. Multiplication factor 2 is applied because the reactant pair are the same species. + +k_o 6.0 # Rate constant for ligand-mediated activating conformation change in the cytosolic tail of EGFR (/s). The value is obtained from fitting. +k_c 1.6 # Rate constant for ligand-independent deactivating conformation change in the cytosolic tail of EGFR (/s). The value is obtained from fitting. + +kaf 15.4/(NA*Vo) # Rate constant for EGFR tail-tail association mediated by EGFR kinase domain and juxtamembrane domains (/s). The value is obtained from fitting. +kar 8.89 # Rate constant for EGFR tail-tail dissociation (/s). The value is obtained from model fitting. + +kp 1 # EGFR phosphorylation rate constant (/s). The value is consistent with data in Kleiman et al. (2011) [Mol. Cell 43:723-737]. +kdp 1 # EGFR dephoshporylation rate constant (/s). The value is consistent with data in Kleiman et al. (2011). + +chi_r 4.37e+04*(NA*Vo) # Enhancement factor for ring-closure reactions (nM). The value is obtained from fitting. + +# The parameter alpha does not influence simulation results; this parameter is used as a scale factor to relate simulation results to the experimental data. It multiplies the quantity (observable) defined below called "Clusters." The product is taken to be directly comparable to relative receptor cluster density measured by Kozer et al. (2013). The value of alpha is obtained from fitting. + +KDg=713. # nM from Chook YM, Gish GD, Kay CM, Pai EF, Pawson T (1996) [J Biol Chem 271:30472-30478] +kmg 0.31 # /s from Chook et al. (1996) +kpg=(kmg/KDg)/(NA*V) # /nM/s + +end parameters + + +begin molecule types +EGF(rec) +EGFR(back,lig,cd~c~o,Y~u~p) +Grb2(SH2) +end molecule types + + +begin seed species +EGF(rec) LT +EGFR(back,lig,cd~c,Y~u) RT +Grb2(SH2) GT +end seed species + + +begin reaction rules + +# EGF binding to EGFR not crosslinked via the ectodomain. +EGF(rec) + EGFR(back,lig) <-> EGF(rec!1).EGFR(back,lig!1) k11f,k11r + +# EGF binding to EGFR that is crosslinked via the ectodomain to a second EGFR and both crosslinked EGFR are free of EGF. +EGF(rec) + EGFR(back!1,lig).EGFR(back!1,lig) <-> EGF(rec!2).EGFR(back!1,lig!2).EGFR(back!1,lig) k21f,k21r + +# EGF binding to EGFR that is crosslinked via the ectodomain to a second EGFR and the second EGFR is bound to EGF. +EGF(rec) + EGF(rec!1).EGFR(back!2,lig!1).EGFR(back!2,lig) <-> EGF(rec!3).EGF(rec!1).EGFR(back!2,lig!1).EGFR(back!2,lig!3) k22f,k22r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and both EGFR are free of EGF. +EGFR(back,lig) + EGFR(back,lig) <-> EGFR(back!1,lig).EGFR(back!1,lig) l20f,l20r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and only one EGFR is free of EGF. +EGFR(back,lig) + EGF(rec!1).EGFR(back,lig!1) <-> EGFR(back!2,lig).EGF(rec!1).EGFR(back!2,lig!1) l21f,l21r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and both EGFR are occupied by EGF. +EGF(rec!1).EGFR(back,lig!1) + EGF(rec!2).EGFR(back,lig!2) <-> EGF(rec!1).EGFR(back!3,lig!1).EGF(rec!2).EGFR(back!3,lig!2) l22f,l22r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and both EGFR are free of EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig).EGFR(cd~o!2,back,lig).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig).EGFR(cd~o!2,back!1,lig).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l20f, l20r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and only one EGFR is free of EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig).EGFR(cd~o!2,back,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig).EGFR(cd~o!2,back!1,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l21f, l21r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and both EGFR are occuplied by EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig!+).EGFR(cd~o!2,back,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig!+).EGFR(cd~o!2,back!1,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l22f, l22r + +# EGF-induced activating conformation change of EGFR cytosolic tail +EGFR(lig!+,cd~c) -> EGFR(lig!+,cd~o) k_o + +# EGF-independent deactivating conformatoin change of EGFR cytosolic tail +EGFR(cd~o) -> EGFR(cd~c) k_c + +# Crosslinking of conformationally-modified cytosolic tails of EGFR that are not tethered +EGFR(cd~o) + EGFR(cd~o) <-> EGFR(cd~o!1).EGFR(cd~o!1) kaf, kar + +# Crosslinking of conformationally-modified cytosolic tails of EGFR that are tethered (ring-closure reaction) +EGFR(cd~o,back!1).EGFR(cd~o!3,back!1).EGFR(cd~o!3,back!2).EGFR(cd~o,back!2) <-> EGFR(cd~o!4,back!1).EGFR(cd~o!3,back!1).EGFR(cd~o!3,back!2).EGFR(cd~o!4,back!2) chi_r*kaf, kar + +# EGFR phosphorylation +EGFR(cd~o!1).EGFR(cd~o!1,Y~u) -> EGFR(cd~o!1).EGFR(cd~o!1,Y~p) kp + +# EGFR dephosphorylation +EGFR(Y~p) -> EGFR(Y~u) kdp + +# Grb2 binds phosphorylated receptor +Grb2(SH2) + EGFR(Y~p) <-> Grb2(SH2!1).EGFR(Y~p!1) kpg,kmg + +end reaction rules + + + +begin observables + +# Unbound EGF +Molecules EGFfree EGF(rec) + +# Ligand-free EGFR +Molecules EGFRfree EGFR(lig) + +# Clusters +Species Clusters EGFR==1 EGFR==2 EGFR==3 EGFR==4 + +# EGFR monomer +Species monomer EGFR==1 + +# EGFR dimer +Species dimer EGFR==2 + +# EGFR trimer +Species trimer EGFR==3 + +# EGFR tetramer +Species tetramer EGFR>3 + +# Phosphorylated-EGFR +Molecules pEGFR EGFR(Y~p!?) + +# Grb2 +Molecules Grb2_pEGFR EGFR(Y~p!1).Grb2(SH2!1) + +# Free Grb2 +Molecules Grb2Free Grb2(SH2) + +# Grb2-EGFR monomer +Species Grb2EGFRMonomer EGFR(cd,back,Y~p!1).Grb2(SH2!1) + +# Grb2-EGFR dimer +Species Grb2EGFRDimer1 EGFR(cd,back!1,Y~p!2).Grb2(SH2!2).EGFR(cd,back!1,Y) +Species Grb2EGFRDimer2 EGFR(cd~o!1,back,Y~p!2).Grb2(SH2!2).EGFR(cd~o!1,back,Y) +Species Grb2EGFRDimer3 EGFR(cd,back!1,Y~p!2).Grb2(SH2!2).EGFR(cd,back!1,Y~p!3).Grb2(SH2!3) +Species Grb2EGFRDimer4 EGFR(cd~o!1,back,Y~p!2).Grb2(SH2!2).EGFR(cd~o!1,back,Y~p!3).Grb2(SH2!3) + + +end observables + +#the max_stoich setting below prohibits oligomers larger than tetramers +generate_network({overwrite=>1,max_stoich=>{EGF=>4,EGFR=>4}}); + +simulate_ode({t_end=>120,n_steps=>100}); \ No newline at end of file diff --git a/Published/Kozer2014/README.md b/Published/Kozer2014/README.md new file mode 100644 index 00000000..2fe2e3ff --- /dev/null +++ b/Published/Kozer2014/README.md @@ -0,0 +1,21 @@ +# Kozer 2014 + +Grb2-EGFR recruitment + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Kozer_2014.bngl + +## Tags + +published, kozer, 2014, egf, egfr, grb2 diff --git a/Published/Kozer2014/metadata.yaml b/Published/Kozer2014/metadata.yaml new file mode 100644 index 00000000..20bcd9a4 --- /dev/null +++ b/Published/Kozer2014/metadata.yaml @@ -0,0 +1,22 @@ +id: "Kozer_2014" +name: "Kozer 2014" +description: "Grb2-EGFR recruitment" +tags: ["published", "kozer", "2014", "egf", "egfr", "grb2"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/complex-models/Kozer_2014.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/Lang2024/Lang_2024.bngl b/Published/Lang2024/Lang_2024.bngl new file mode 100644 index 00000000..65f22036 --- /dev/null +++ b/Published/Lang2024/Lang_2024.bngl @@ -0,0 +1,354 @@ +begin model +begin parameters + kPhRbD 0.005544005544/1 + kPhRbE 0.00693000693/1 + kDpRb 0.001386001386 + kPhRb 0.02079002079/1 + kSyCe1 1.386001386e-05*1 + kSyCe2 4.158004158 + kDeCe 0.0001386001386 + kDiE2fRb 0.0003465003465 + kAsE2fRb 0.3465003465/1 + kSyE2f1 6.93000693e-06*1 + kSyE2f2 0.693000693 + kDeE2f1 6.93000693e-05 + kDeE2f2 0.001386001386/1 + kPhE2f 0.001386001386/1 + kDpE2f2 0.0693000693/1 + kSyEmi1 3.465003465e-05*1 + kSyEmi2 3.465003465 + kDeEmi1 0.0003465003465 + kDeEmi2 0.0003465003465 + kDeEmi3 0.003465003465 + kPhEmiA 3.465003465e-05/1 + kPhEmiB 0.00017325017325/1 + kDpEmi 3.465003465e-06 + kSyCa1 6.93000693e-06*1 + kSyCa2 0.5197505197 + kDeCa1 6.93000693e-06 + kDeCa2 0.002772002772/1 + kDeCa3 0.000693000693/1 + kDpCdh 0.003465003465 + kPhCdhA 0.01732501732/1 + kPhCdhE 0.000693000693/1 + kPhCdhB 0.1732501733/1 + kDiACE 0.0003465003465 + kAsACE 0.3465003465/1 + kDiACdh 0.0003465003465 + kAsACdh 0.3465003465/1 + kPhCeA 0.00693000693/1 + kPhCeE 6.93000693e-05/1 + kPhFoxE 0.000693000693/1 + kPhFoxA 0.000693000693/1 + kPhFoxB 0.003465003465/1 + kDpFox 1e-05 + kSyCb1 6.93000693e-06*1 + kSyCb2 0.5197505197 + kDeCb1 6.93000693e-06 + kDeCb2 0.00086625086625/1 + kDeCb3 0.00086625086625/1 + kPhEnsa 0.000693000693/1 + kDpEnsa 0.0003465003465 + kPhGw 0.00693000693/1 + kDpGw1 0.0017325017325 + kDpGw2 0.0693000693/1 + kWee1 6.93000693e-05/1 + kWee2 0.00693000693/1 + kPhWeeA 0.000693000693/1 + kPhWeeB 0.00693000693/1 + kDpWee 0.0693000693/1 + kCdc25_1 0.000693000693/1 + kCdc25_2 0.00693000693/1 + kDpCdc25 0.0693000693/1 + kDipEB55 4.7124047124e-05 + kAspEB55 0.39501039501/1 + kSyCdc_1 6.93000693e-06*1 + kSyCdc_2 0.693000693 + kDeCdc_1 2.772002772e-05 + kDeCdc_2 0.0002772002772/1 + kDipACdc 0.00086625086625 + kAspACdc 0.00693000693/1 + kPhApcA 6.93000693e-05/1 +# kPhApcB 6.93000693e-05 # + kDpApc_1 0/1 + kDpApc_2 0.03465003465/1 + kSyFox1 6.93000693e-06*1 + kSyFox2 0.5197505197 + kDeFox1 6.93000693e-06 + kDeFox2 0.003465003465/1 + kAsEPx 0.3465003465/1 + kDiEPx 0.03465003465 + kAsFPcb 0.3465003465/1 + kDiFPcb 0.0693000693 + kAsFPcdc 0.3465003465/1 + kDiFPcdc 0.17325017325 + kPhC25B 0.00693000693/1 + kPhCAEE 0.00055440055/1 # former kPhCdhEf4 + kPhCAEA 0.01386001385/1 # former kPhCdhAf4 + kPhCAEB 0.13860013864/1 # former kPhCdhBf4 +# ikSyCb 1.0 +# jiWee 0.1*1 + kDpE2f1 0 + kPhC25A 0/1 +# iWee_0 0 + kSySkp2 1e-04*1 + kDeSkp2_1 0.0001 + kDeSkp2_2 0.002/1 + kAsTP53PCDKN1A 0.3/1 + kDiTP53PCDKN1A 0.15 + kSyCDKN1A_1 1e-05*1 + kSyCDKN1A_2 4 + kDeCDKN1A_1 0.00002 + kDeCDKN1A_2 0.00025/1 + kAsCdkn1aC 0.007/1 + kDiCdkn1aC 0.0003 + kPhCDKN1AByCe 0.005/1 + kPhCDKN1AByCa 0.0002/1 + kPhCDKN1AByCb 0.002/1 + kDpCDKN1A 0.002 +end parameters +begin compartments + #volume units: L + cell 3 1 +end compartments +begin molecule types + E2F(DBD,RB1,Ser332~u~p) + RB1(E2F,Ser807_Ser811~u~p) + PPP2R2B(ENSA_ARPP19) + CCNB_promoter(FOXM1) + CCNA(CDKN1A) + CCNA_promoter(E2F) + FOXM1_promoter(E2F) + ENSA_ARPP19(PPP2R2B,Ser62_Ser67~u~p) + FZR1(APC,FBXO5,nTerm~u~p) + CCNE(CDKN1A) + MASTL(Thr198~u~p) + FBXO5_promoter(E2F) + CDC20_promoter(FOXM1) + FBXO5(APC,FZR1,Ser182~u~p) # The FBXO5 C-terminus binds to APC and FZR1 +# iWEE() + FOXM1(DBD,Thr600~u~p) + WEE1(Ser123~u~p) + CCNE_promoter(E2F) + E2F_promoter(E2F) + CCND() + CDC20(APC) + CDC25(pSites~u~p) + CCNB(CDKN1A,CDK1_Thr14_Tyr15~u~p) + APC(FZR1_CDC20,FBXO5,Ser355~u~p) + SKP2() + CDKN1A(CCNE_A_B,Ser130~u~p) + TP53(DBD,Ser15~u~p) + CDKN1A_promoter(TP53) +end molecule types +begin seed species + @cell:CCND() (1.0*1) #Cd + @cell:CCNE(CDKN1A) (0.232249137*1) #Ce + @cell:E2F(DBD,RB1,Ser332~u) (0.0184790235*1) #E2f + @cell:E2F(DBD,RB1,Ser332~p) (3.8081857e-05*1) #pE2f + @cell:CCNA(CDKN1A) (0.00702849494*1) #Ca + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) (0.00188236293*1) #Cb + @cell:E2F(DBD,RB1!1,Ser332~u).RB1(E2F!1,Ser807_Ser811~u) (0.0714613324*1) #E2fRb + @cell:E2F(DBD,RB1!1,Ser332~p).RB1(E2F!1,Ser807_Ser811~u) (0.000150538592*1) #pE2fRb + @cell:RB1(E2F,Ser807_Ser811~u) (0.0876426874*1) #Rb + @cell:RB1(E2F,Ser807_Ser811~p) (0.840745442*1) #pRb + @cell:PPP2R2B(ENSA_ARPP19) (0.0771916254*1) #B55 + @cell:APC(FZR1_CDC20,FBXO5,Ser355~u) (4.02871328*1) #Apc + @cell:CDC20(APC) (0.229952789*1) #Cdc20 + @cell:APC(FZR1_CDC20!1,FBXO5,Ser355~p).CDC20(APC!1) (0.0698900785*1) #Apc # This was added manually when checking for model correctness + @cell:APC(FZR1_CDC20,FBXO5,Ser355~p) (0.0630910652*1) #pApc + @cell:APC(FZR1_CDC20!1,FBXO5,Ser355~u).FZR1(APC!1,FBXO5,nTerm~u) (0.713544185*1) #ApcCdh + @cell:FZR1(APC,FBXO5,nTerm~u) (0.000571340946*1) #Cdh + @cell:FZR1(APC,FBXO5,nTerm~p) (0.16112308*1) #pCdh + @cell:APC(FZR1_CDC20!1,FBXO5!2,Ser355~u).FZR1(APC!1,FBXO5!3,nTerm~u).FBXO5(APC!2,FZR1!3,Ser182~u) (0.108941313*1) #ACE + @cell:FBXO5(APC,FZR1,Ser182~u) (0.000717816142*1) #Emi + @cell:APC(FZR1_CDC20!1,FBXO5!2,Ser355~p).FZR1(APC!1,FBXO5!3,nTerm~u).FBXO5(APC!2,FZR1!3,Ser182~u) (0.00221254711*1) #pACE + @cell:APC(FZR1_CDC20!1,FBXO5,Ser355~p).FZR1(APC!1,FBXO5,nTerm~u) (0.0136075334*1) #pApcCdh + @cell:FBXO5(APC,FZR1,Ser182~p) (1.88049366e-05*1) #pEmi + @cell:FOXM1(DBD,Thr600~u) (0.0055647336*1) #Fox + @cell:FOXM1(DBD,Thr600~p) (0.00038111617*1) #pFox + @cell:FOXM1(DBD!1,Thr600~p).CCNB_promoter(FOXM1!1) (1.90325916e-07*1) #pFoxProCb + @cell:CCNB_promoter(FOXM1) (9.98096741e-05*1) #ProCb + @cell:CDC20_promoter(FOXM1) (9.99238147e-05*1) #ProCdc + @cell:FOXM1(DBD!1,Thr600~p).CDC20_promoter(FOXM1!1) (7.61853468e-08*1) #pFoxProCdc + @cell:WEE1(Ser123~u) (0.980441633*1) #Wee + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~p) (0.00751291485*1) #pCb + @cell:WEE1(Ser123~p) (0.019558367*1) #pWee + @cell:CDC25(pSites~p) (0.0184380668*1) #pCdc25 + @cell:CDC25(pSites~u) (0.981561933*1) #Cdc25 + @cell:MASTL(Thr198~u) (0.997525705*1) #Gw + @cell:MASTL(Thr198~p) (0.00247429497*1) #pGw + @cell:ENSA_ARPP19(PPP2R2B,Ser62_Ser67~u) (0.826863064*1) #Ensa + @cell:ENSA_ARPP19(PPP2R2B,Ser62_Ser67~p) (0.000328561161*1) #pEnsa + @cell:ENSA_ARPP19(PPP2R2B!1,Ser62_Ser67~p).PPP2R2B(ENSA_ARPP19!1) (0.172808375*1) #pEB55 + @cell:CCNE_promoter(E2F) (8.44790241e-05*1) #ProCe + @cell:CCNA_promoter(E2F) (8.44790241e-05*1) #ProCa + @cell:E2F_promoter(E2F) (8.44790241e-05*1) #ProE2f + @cell:FBXO5_promoter(E2F) (8.44790241e-05*1) #ProEmi + @cell:FOXM1_promoter(E2F) (8.44790241e-05*1) #ProFox + @cell:E2F(DBD!1,RB1,Ser332~u).CCNE_promoter(E2F!1) (1.55209759e-05*1) #E2fProCe + @cell:E2F(DBD!1,RB1,Ser332~u).CCNA_promoter(E2F!1) (1.55209759e-05*1) #E2fProCa + @cell:E2F(DBD!1,RB1,Ser332~u).E2F_promoter(E2F!1) (1.55209759e-05*1) #E2fProE2f + @cell:E2F(DBD!1,RB1,Ser332~u).FBXO5_promoter(E2F!1) (1.55209759e-05*1) #E2fProEmi + @cell:E2F(DBD!1,RB1,Ser332~u).FOXM1_promoter(E2F!1) (1.55209759e-05*1) #E2fProFox + @cell:E2F(DBD!1,RB1,Ser332~p).CCNE_promoter(E2F!1) (0*1) #E2fProCe + @cell:E2F(DBD!1,RB1,Ser332~p).CCNA_promoter(E2F!1) (0*1) #E2fProCa + @cell:E2F(DBD!1,RB1,Ser332~p).E2F_promoter(E2F!1) (0*1) #E2fProE2f + @cell:E2F(DBD!1,RB1,Ser332~p).FBXO5_promoter(E2F!1) (0*1) #E2fProEmi + @cell:E2F(DBD!1,RB1,Ser332~p).FOXM1_promoter(E2F!1) (0*1) #E2fProFox +# @cell:iWEE() (0*1) #iWee + @cell:SKP2() (1*1) + @cell:TP53(DBD,Ser15~p) (0*1) + @cell:CDKN1A_promoter(TP53) (1e-04*1) +end seed species +begin observables + Species tCCNE CCNE() + Species tCCNA CCNA() + Species tCCNB CCNB() + Species tCDKN1A CDKN1A() +end observables +begin reaction rules + SyE2f1: 0 -> @cell:E2F(DBD,RB1,Ser332~u) kSyE2f1 + AspFoxPcb: @cell:FOXM1(DBD,Thr600~p) + CCNB_promoter(FOXM1) <-> @cell:FOXM1(DBD!1,Thr600~p).CCNB_promoter(FOXM1!1) kAsFPcb,kDiFPcb + SyE2f2: @cell:E2F(DBD!1,RB1).E2F_promoter(E2F!1) -> @cell:E2F(DBD!1,RB1).E2F_promoter(E2F!1) + @cell:E2F(DBD,RB1,Ser332~u) kSyE2f2 + DeE2f1: @cell:E2F(DBD!?,RB1!?,Ser332) -> 0 kDeE2f1 DeleteMolecules + PhRbE2fByCd: @cell:RB1(E2F!1,Ser807_Ser811~u).E2F(DBD,RB1!1,Ser332) + @cell:CCND() -> @cell:RB1(E2F,Ser807_Ser811~p) + @cell:E2F(DBD,RB1,Ser332) + @cell:CCND() kPhRbD + PhRbE2fByCe: @cell:RB1(E2F!1,Ser807_Ser811~u).E2F(DBD,RB1!1,Ser332) + @cell:CCNE(CDKN1A) -> @cell:RB1(E2F,Ser807_Ser811~p) + @cell:E2F(DBD,RB1,Ser332) + @cell:CCNE(CDKN1A) kPhRbE + PhRbE2fByCa: @cell:RB1(E2F!1,Ser807_Ser811~u).E2F(DBD,RB1!1,Ser332) + @cell:CCNA(CDKN1A) -> @cell:RB1(E2F,Ser807_Ser811~p) + @cell:E2F(DBD,RB1,Ser332) + @cell:CCNA(CDKN1A) kPhRb + PhRbE2fByCb: @cell:RB1(E2F!1,Ser807_Ser811~u).E2F(DBD,RB1!1,Ser332) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) -> @cell:RB1(E2F,Ser807_Ser811~p) + @cell:E2F(DBD,RB1,Ser332) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) kPhRb + PhE2fByCa: @cell:E2F(DBD!?,RB1!?,Ser332~u) + @cell:CCNA(CDKN1A) -> @cell:E2F(DBD!?,RB1!?,Ser332~p) + @cell:CCNA(CDKN1A) kPhE2f + PhE2fByCb: @cell:E2F(DBD!?,RB1!?,Ser332~u) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) -> @cell:E2F(DBD!?,RB1!?,Ser332~p) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) kPhE2f + DppE2f: @cell:E2F(DBD!?,RB1!?,Ser332~p) -> @cell:E2F(DBD!?,RB1!?,Ser332~u) kDpE2f1 + DppE2fByB55: @cell:E2F(DBD!?,RB1!?,Ser332~p) + @cell:PPP2R2B(ENSA_ARPP19) -> @cell:E2F(DBD!?,RB1!?,Ser332~u) + @cell:PPP2R2B(ENSA_ARPP19) kDpE2f2 + DeE2f2: @cell:E2F(DBD!?,RB1!?,Ser332~p) + @cell:SKP2() -> @cell:SKP2() kDeE2f2 DeleteMolecules + PhRbByCd: @cell:RB1(E2F,Ser807_Ser811~u) + @cell:CCND() -> @cell:RB1(E2F,Ser807_Ser811~p) + @cell:CCND() kPhRbD + PhRbByCe: @cell:RB1(E2F,Ser807_Ser811~u) + @cell:CCNE(CDKN1A) -> @cell:RB1(E2F,Ser807_Ser811~p) + @cell:CCNE(CDKN1A) kPhRbE + PhRbByCa: @cell:RB1(E2F,Ser807_Ser811~u) + @cell:CCNA(CDKN1A) -> @cell:RB1(E2F,Ser807_Ser811~p) + @cell:CCNA(CDKN1A) kPhRb + PhRbByCb: @cell:RB1(E2F,Ser807_Ser811~u) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) -> @cell:RB1(E2F,Ser807_Ser811~p) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) kPhRb + SyCe1: 0 -> @cell:CCNE(CDKN1A) kSyCe1 + SyCa2: @cell:E2F(DBD!1,RB1).CCNA_promoter(E2F!1) -> @cell:E2F(DBD!1,RB1).CCNA_promoter(E2F!1) + @cell:CCNA(CDKN1A) kSyCa2 + DeCe1: @cell:CCNE() -> 0 kDeCe DeleteMolecules + DeCe2: @cell:CCNE(CDKN1A) + @cell:CCNE() -> @cell:CCNE(CDKN1A) kPhCeE DeleteMolecules + DpRb: @cell:RB1(E2F,Ser807_Ser811~p) -> @cell:RB1(E2F,Ser807_Ser811~u) kDpRb # Todo: change once phospho-Rb:E2F complexes can exist. + DppApcCdc20_1: @cell:APC(FZR1_CDC20!1,FBXO5,Ser355~p).CDC20(APC!1) -> @cell:APC(FZR1_CDC20,FBXO5,Ser355~u) + @cell:CDC20(APC) kDpApc_1 + DppApcCdc20: @cell:APC(FZR1_CDC20!1,FBXO5,Ser355~p).CDC20(APC!1) + @cell:PPP2R2B(ENSA_ARPP19) -> @cell:APC(FZR1_CDC20,FBXO5,Ser355~u) + @cell:CDC20(APC) + @cell:PPP2R2B(ENSA_ARPP19) kDpApc_2 + PhApcByCa: @cell:APC(FZR1_CDC20!?,FBXO5!?,Ser355~u) + @cell:CCNA(CDKN1A) -> @cell:CCNA(CDKN1A) + @cell:APC(FZR1_CDC20!?,FBXO5!?,Ser355~p) kPhApcA + PhApcByCb: @cell:APC(FZR1_CDC20!?,FBXO5!?,Ser355~u) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) -> @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) + @cell:APC(FZR1_CDC20!?,FBXO5!?,Ser355~p) kPhApcA + DppApcByB55_1: @cell:APC(Ser355~p) -> @cell:APC(Ser355~u) kDpApc_1 exclude_reactants(1,CDC20()) + DppApcByB55_2: @cell:APC(Ser355~p) + @cell:PPP2R2B(ENSA_ARPP19) -> @cell:PPP2R2B(ENSA_ARPP19) + @cell:APC(Ser355~u) kDpApc_2 exclude_reactants(1,CDC20()) + PhCdhApcByCa: @cell:APC(FZR1_CDC20!1,FBXO5,Ser355).FZR1(APC!1,FBXO5,nTerm~u) + @cell:CCNA(CDKN1A) -> @cell:APC(FZR1_CDC20,FBXO5,Ser355) + @cell:FZR1(APC,FBXO5,nTerm~p) + @cell:CCNA(CDKN1A) kPhCdhA + PhCAEByCe: @cell:APC(FZR1_CDC20!1,FBXO5!3,Ser355).FZR1(APC!1,FBXO5!2,nTerm~u).FBXO5(APC!3,FZR1!2,Ser182~u) + @cell:CCNE(CDKN1A) -> @cell:APC(FZR1_CDC20,FBXO5,Ser355) + @cell:FZR1(APC,FBXO5,nTerm~p) + @cell:FBXO5(APC,FZR1,Ser182~u) + @cell:CCNE(CDKN1A) kPhCAEE + PhCAEByCa: @cell:APC(FZR1_CDC20!1,FBXO5!3,Ser355).FZR1(APC!1,FBXO5!2,nTerm~u).FBXO5(APC!3,FZR1!2,Ser182~u) + @cell:CCNA(CDKN1A) -> @cell:APC(FZR1_CDC20,FBXO5,Ser355) + @cell:FZR1(APC,FBXO5,nTerm~p) + @cell:FBXO5(APC,FZR1,Ser182~u) + @cell:CCNA(CDKN1A) kPhCAEA + PhCAEByCb: @cell:APC(FZR1_CDC20!1,FBXO5!3,Ser355).FZR1(APC!1,FBXO5!2,nTerm~u).FBXO5(APC!3,FZR1!2,Ser182~u) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) -> @cell:APC(FZR1_CDC20,FBXO5,Ser355) + @cell:FZR1(APC,FBXO5,nTerm~p) + @cell:FBXO5(APC,FZR1,Ser182~u) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) kPhCAEB + PhCdhApcByCe: @cell:APC(FZR1_CDC20!1,FBXO5,Ser355).FZR1(APC!1,FBXO5,nTerm~u) + @cell:CCNE(CDKN1A) -> @cell:APC(FZR1_CDC20,FBXO5,Ser355) + @cell:FZR1(APC,FBXO5,nTerm~p) + @cell:CCNE(CDKN1A) kPhCdhE + DeEmi1: @cell:FBXO5(APC!?,FZR1!?,Ser182) -> 0 kDeEmi1 DeleteMolecules + DeEmi2: @cell:FBXO5(APC!+,FZR1!+,Ser182~u) -> 0 kDeEmi2 DeleteMolecules # FBXO5 is never in complex if phosphorylated. + PhEACByCa: @cell:APC(FZR1_CDC20!1,FBXO5!3,Ser355).FZR1(APC!1,FBXO5!2,nTerm~u).FBXO5(APC!3,FZR1!2,Ser182) + @cell:CCNA(CDKN1A) -> @cell:APC(FZR1_CDC20!1,FBXO5,Ser355).FZR1(APC!1,FBXO5,nTerm~u) + @cell:FBXO5(APC,FZR1,Ser182~p) + @cell:CCNA(CDKN1A) kPhEmiA + PhEACByCb: @cell:APC(FZR1_CDC20!1,FBXO5!3,Ser355).FZR1(APC!1,FBXO5!2,nTerm~u).FBXO5(APC!3,FZR1!2,Ser182) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) -> @cell:APC(FZR1_CDC20!1,FBXO5,Ser355).FZR1(APC!1,FBXO5,nTerm~u) + @cell:FBXO5(APC,FZR1,Ser182~p) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) kPhEmiB + PhEmiByCa: @cell:FBXO5(APC,FZR1,Ser182~u) + @cell:CCNA(CDKN1A) -> @cell:FBXO5(APC,FZR1,Ser182~p) + @cell:CCNA(CDKN1A) kPhEmiA + PhEmiByCb: @cell:FBXO5(APC,FZR1,Ser182~u) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) -> @cell:FBXO5(APC,FZR1,Ser182~p) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) kPhEmiB + DppEmi: @cell:FBXO5(APC,FZR1,Ser182~p) -> @cell:FBXO5(APC,FZR1,Ser182~u) kDpEmi + DeEmi3: @cell:FBXO5(APC,FZR1,Ser182~p) -> 0 kDeEmi3 DeleteMolecules # FBXO5 is never in complex if phosphorylated. + SyFox1: 0 -> @cell:FOXM1(DBD,Thr600~u) kSyFox1 + SyEmi2: @cell:E2F(DBD!1,RB1).FBXO5_promoter(E2F!1) -> @cell:E2F(DBD!1,RB1).FBXO5_promoter(E2F!1) + @cell:FBXO5(APC,FZR1,Ser182~u) kSyEmi2 + PhCdhByCe: @cell:FZR1(APC,FBXO5,nTerm~u) + @cell:CCNE(CDKN1A) -> @cell:FZR1(APC,FBXO5,nTerm~p) + @cell:CCNE(CDKN1A) kPhCdhE + PhCdhByCa: @cell:FZR1(APC,FBXO5,nTerm~u) + @cell:CCNA(CDKN1A) -> @cell:FZR1(APC,FBXO5,nTerm~p) + @cell:CCNA(CDKN1A) kPhCdhA + PhCdhByCb: @cell:FZR1(APC,FBXO5,nTerm~u) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) -> @cell:FZR1(APC,FBXO5,nTerm~p) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) kPhCdhB + DppCdh: @cell:FZR1(APC,FBXO5,nTerm~p) -> @cell:FZR1(APC,FBXO5,nTerm~u) kDpCdh + SyCa1: 0 -> @cell:CCNA(CDKN1A) kSyCa1 + DeCa1: @cell:CCNA() -> 0 kDeCa1 DeleteMolecules + DeCe3: @cell:CCNE() + @cell:CCNA(CDKN1A) -> @cell:CCNA(CDKN1A) kPhCeA DeleteMolecules + DeCa2: @cell:CCNA() + @cell:APC(FZR1_CDC20!1,FBXO5,Ser355).FZR1(APC!1,FBXO5,nTerm~u) -> @cell:APC(FZR1_CDC20!1,FBXO5,Ser355).FZR1(APC!1,FBXO5,nTerm~u) kDeCa2 DeleteMolecules + DeCa3: @cell:CCNA() + @cell:APC(FZR1_CDC20!1,FBXO5,Ser355~p).CDC20(APC!1) -> @cell:APC(FZR1_CDC20!1,FBXO5,Ser355~p).CDC20(APC!1) kDeCa3 DeleteMolecules + SyFox2: @cell:E2F(DBD!1,RB1).FOXM1_promoter(E2F!1) -> @cell:E2F(DBD!1,RB1).FOXM1_promoter(E2F!1) + @cell:FOXM1(DBD,Thr600~u) kSyFox2 + DeFox: @cell:FOXM1(DBD!?,Thr600) -> 0 kDeFox1 DeleteMolecules + DeFoxByApcCdh: @cell:FOXM1(DBD!?,Thr600) + @cell:APC(FZR1_CDC20!1,FBXO5,Ser355).FZR1(APC!1,FBXO5,nTerm~u) -> @cell:APC(FZR1_CDC20!1,FBXO5,Ser355).FZR1(APC!1,FBXO5,nTerm~u) kDeFox2 DeleteMolecules + PhFoxByCe: @cell:FOXM1(DBD,Thr600~u) + @cell:CCNE(CDKN1A) -> @cell:CCNE(CDKN1A) + @cell:FOXM1(DBD,Thr600~p) kPhFoxE + PhFoxByCa: @cell:FOXM1(DBD,Thr600~u) + @cell:CCNA(CDKN1A) -> @cell:CCNA(CDKN1A) + @cell:FOXM1(DBD,Thr600~p) kPhFoxA + PhFoxByCb: @cell:FOXM1(DBD,Thr600~u) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) -> @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) + @cell:FOXM1(DBD,Thr600~p) kPhFoxB + DppFox_1: @cell:FOXM1(DBD,Thr600~p) -> @cell:FOXM1(DBD,Thr600~u) kDpFox + DppFox_2: @cell:FOXM1(DBD!1,Thr600~p).CDC20_promoter(FOXM1!1) -> @cell:FOXM1(DBD,Thr600~u) + @cell:CDC20_promoter(FOXM1) kDpFox + DppFox_3: @cell:FOXM1(DBD!1,Thr600~p).CCNB_promoter(FOXM1!1) -> @cell:FOXM1(DBD,Thr600~u) + @cell:CCNB_promoter(FOXM1) kDpFox + SyCb1: 0 -> @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) kSyCb1 + SyCb2: @cell:FOXM1(DBD!1,Thr600~p).CCNB_promoter(FOXM1!1) -> @cell:FOXM1(DBD!1,Thr600~p).CCNB_promoter(FOXM1!1) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) kSyCb2 + DeCb: @cell:CCNB(CDK1_Thr14_Tyr15) -> 0 kDeCb1 DeleteMolecules + DeCbByApcCdh: @cell:CCNB(CDK1_Thr14_Tyr15) + @cell:APC(FZR1_CDC20!1,FBXO5,Ser355).FZR1(APC!1,FBXO5,nTerm~u) -> @cell:APC(FZR1_CDC20!1,FBXO5,Ser355).FZR1(APC!1,FBXO5,nTerm~u) kDeCb2 DeleteMolecules + DeCbByApcCdc: @cell:CCNB(CDK1_Thr14_Tyr15) + @cell:APC(FZR1_CDC20!1,FBXO5,Ser355~p).CDC20(APC!1) -> @cell:APC(FZR1_CDC20!1,FBXO5,Ser355~p).CDC20(APC!1) kDeCb3 DeleteMolecules + DeCdc: @cell:CDC20(APC!?) -> 0 kDeCdc_1 DeleteMolecules + DeCdcByApcCdh: @cell:CDC20(APC!?) + @cell:APC(FZR1_CDC20!1,FBXO5,Ser355).FZR1(APC!1,FBXO5,nTerm~u) -> @cell:APC(FZR1_CDC20!1,FBXO5,Ser355).FZR1(APC!1,FBXO5,nTerm~u) kDeCdc_2 DeleteMolecules + SyCdc20_1: 0 -> @cell:CDC20(APC) kSyCdc_1 + SyCdc20_2: @cell:FOXM1(DBD!1,Thr600~p).CDC20_promoter(FOXM1!1) -> @cell:FOXM1(DBD!1,Thr600~p).CDC20_promoter(FOXM1!1) + @cell:CDC20(APC) kSyCdc_2 + AspFoxPcdc: @cell:FOXM1(DBD,Thr600~p) + @cell:CDC20_promoter(FOXM1) <-> @cell:FOXM1(DBD!1,Thr600~p).CDC20_promoter(FOXM1!1) kAsFPcdc, kDiFPcdc + PhCbByWee: @cell:CCNB(CDK1_Thr14_Tyr15~u) + @cell:WEE1(Ser123~u) -> @cell:WEE1(Ser123~u) + @cell:CCNB(CDK1_Thr14_Tyr15~p) kWee2 # functionRate01() #Modifiers(iWee) + PhCbBypWee: @cell:CCNB(CDK1_Thr14_Tyr15~u) + @cell:WEE1(Ser123~p) -> @cell:WEE1(Ser123~p) + @cell:CCNB(CDK1_Thr14_Tyr15~p) kWee1 # functionRate02() #Modifiers(iWee) + DppCbBypCdc25: @cell:CCNB(CDK1_Thr14_Tyr15~p) + @cell:CDC25(pSites~p) -> @cell:CDC25(pSites~p) + @cell:CCNB(CDK1_Thr14_Tyr15~u) kCdc25_2 + DppCbByCdc25: @cell:CCNB(CDK1_Thr14_Tyr15~p) + @cell:CDC25(pSites~u) -> @cell:CDC25(pSites~u) + @cell:CCNB(CDK1_Thr14_Tyr15~u) kCdc25_1 + PhCdc25ByCb: @cell:CDC25(pSites~u) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) -> @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) + @cell:CDC25(pSites~p) kPhC25B + PhCdc25ByCa: @cell:CDC25(pSites~u) + @cell:CCNA(CDKN1A) -> @cell:CCNA(CDKN1A) + @cell:CDC25(pSites~p) kPhC25A + DppCdc25: @cell:CDC25(pSites~p) + @cell:PPP2R2B(ENSA_ARPP19) -> @cell:PPP2R2B(ENSA_ARPP19) + @cell:CDC25(pSites~u) kDpCdc25 + DppWee: @cell:WEE1(Ser123~p) + @cell:PPP2R2B(ENSA_ARPP19) -> @cell:PPP2R2B(ENSA_ARPP19) + @cell:WEE1(Ser123~u) kDpWee + PhWeeByCa: @cell:WEE1(Ser123~u) + @cell:CCNA(CDKN1A) -> @cell:CCNA(CDKN1A) + @cell:WEE1(Ser123~p) kPhWeeA + PhWeeByCb: @cell:WEE1(Ser123~u) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) -> @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) + @cell:WEE1(Ser123~p) kPhWeeB + PhGw: @cell:MASTL(Thr198~u) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) -> @cell:MASTL(Thr198~p) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) kPhGw + DppGw: @cell:MASTL(Thr198~p) -> @cell:MASTL(Thr198~u) kDpGw1 + DppGwByB55: @cell:MASTL(Thr198~p) + @cell:PPP2R2B(ENSA_ARPP19) -> @cell:PPP2R2B(ENSA_ARPP19) + @cell:MASTL(Thr198~u) kDpGw2 + PhEnsa: @cell:ENSA_ARPP19(PPP2R2B,Ser62_Ser67~u) + @cell:MASTL(Thr198~p) -> @cell:ENSA_ARPP19(PPP2R2B,Ser62_Ser67~p) + @cell:MASTL(Thr198~p) kPhEnsa + DppEB55: @cell:ENSA_ARPP19(PPP2R2B!1,Ser62_Ser67~p).PPP2R2B(ENSA_ARPP19!1) -> @cell:PPP2R2B(ENSA_ARPP19) + @cell:ENSA_ARPP19(PPP2R2B,Ser62_Ser67~u) kDpEnsa + SyEmi1: 0 -> @cell:FBXO5(APC,FZR1,Ser182~u) kSyEmi1 + SyCe2: @cell:E2F(DBD!1,RB1).CCNE_promoter(E2F!1) -> @cell:E2F(DBD!1,RB1).CCNE_promoter(E2F!1) + @cell:CCNE(CDKN1A) kSyCe2 + PhCdhApcByCb: @cell:APC(FZR1_CDC20!1,FBXO5,Ser355).FZR1(APC!1,FBXO5,nTerm~u) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) -> @cell:APC(FZR1_CDC20,FBXO5,Ser355) + @cell:FZR1(APC,FBXO5,nTerm~p) + @cell:CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) kPhCdhB + AsE2fRb: @cell:E2F(DBD,RB1,Ser332) + @cell:RB1(E2F,Ser807_Ser811~u) <-> @cell:E2F(DBD,RB1!1,Ser332).RB1(E2F!1,Ser807_Ser811~u) kAsE2fRb,kDiE2fRb + AsApcCdh: @cell:APC(FZR1_CDC20,FBXO5,Ser355) + @cell:FZR1(APC,FBXO5,nTerm~u) <-> @cell:APC(FZR1_CDC20!1,FBXO5,Ser355).FZR1(APC!1,FBXO5,nTerm~u) kAsACdh,kDiACdh + AsACE: @cell:APC(FZR1_CDC20!1,FBXO5,Ser355).FZR1(APC!1,FBXO5,nTerm~u) + @cell:FBXO5(APC,FZR1,Ser182~u) <-> @cell:APC(FZR1_CDC20!1,FBXO5!2,Ser355).FZR1(APC!1,FBXO5!3,nTerm~u).FBXO5(APC!2,FZR1!3,Ser182~u) kAsACE,kDiACE + AspApcCdc20: @cell:APC(FZR1_CDC20,FBXO5,Ser355~p) + @cell:CDC20(APC) <-> @cell:APC(FZR1_CDC20!1,FBXO5,Ser355~p).CDC20(APC!1) kAspACdc, kDipACdc + AspEB55: @cell:ENSA_ARPP19(PPP2R2B,Ser62_Ser67~p) + @cell:PPP2R2B(ENSA_ARPP19) <-> @cell:ENSA_ARPP19(PPP2R2B!1,Ser62_Ser67~p).PPP2R2B(ENSA_ARPP19!1) kAspEB55,kDipEB55 + AsE2fProCe: @cell:E2F(DBD,RB1) + @cell:CCNE_promoter(E2F) <-> @cell:E2F(DBD!1,RB1).CCNE_promoter(E2F!1) kAsEPx, kDiEPx + AsE2fProCa: @cell:E2F(DBD,RB1) + @cell:CCNA_promoter(E2F) <-> @cell:E2F(DBD!1,RB1).CCNA_promoter(E2F!1) kAsEPx, kDiEPx + AsE2fProE2f: @cell:E2F(DBD,RB1) + @cell:E2F_promoter(E2F) <-> @cell:E2F(DBD!1,RB1).E2F_promoter(E2F!1) kAsEPx, kDiEPx + AsE2fProEmi: @cell:E2F(DBD,RB1) + @cell:FBXO5_promoter(E2F) <-> @cell:E2F(DBD!1,RB1).FBXO5_promoter(E2F!1) kAsEPx, kDiEPx + AsE2fProFox: @cell:E2F(DBD,RB1) + @cell:FOXM1_promoter(E2F) <-> @cell:E2F(DBD!1,RB1).FOXM1_promoter(E2F!1) kAsEPx, kDiEPx + SySkp2: 0 -> @cell:SKP2() kSySkp2 + DeSkp2_1: @cell:SKP2() -> 0 kDeSkp2_1 DeleteMolecules + DeSkp2_2: @cell:SKP2() + @cell:APC(FZR1_CDC20!1,FBXO5).FZR1(APC!1,FBXO5) -> @cell:APC(FZR1_CDC20!1,FBXO5).FZR1(APC!1,FBXO5) kDeSkp2_2 DeleteMolecules + AsTP53PCDKN1A: @cell:TP53(DBD,Ser15~p) + @cell:CDKN1A_promoter(TP53) <-> @cell:TP53(DBD!1,Ser15~p).CDKN1A_promoter(TP53!1) kAsTP53PCDKN1A, kDiTP53PCDKN1A + SyCDKN1A_1: 0 -> @cell:CDKN1A(CCNE_A_B,Ser130~u) kSyCDKN1A_1 + SyCDKN1A_2: @cell:TP53(DBD!1,Ser15~p).CDKN1A_promoter(TP53!1) -> @cell:TP53(DBD!1,Ser15~p).CDKN1A_promoter(TP53!1) + @cell:CDKN1A(CCNE_A_B,Ser130~u) kSyCDKN1A_2 + DeCDKN1A_1: @cell:CDKN1A() -> 0 kDeCDKN1A_1 DeleteMolecules + DeCDKN1A_2: @cell:CDKN1A(Ser130~p) + @cell:SKP2() -> @cell:SKP2() kDeCDKN1A_2 DeleteMolecules + DeCDKN1A_3: @cell:CDKN1A(Ser130~u) + @cell:SKP2() -> @cell:SKP2() kDeCDKN1A_2 DeleteMolecules # There seems contraticting evidence as to whether Ser130 phosphorylation stabilizes of destabilizes CDKN1A. + AsCDKN1ACCNA: @cell:CDKN1A(CCNE_A_B,Ser130~u) + @cell:CCNA(CDKN1A) <-> @cell:CDKN1A(CCNE_A_B!1,Ser130~u).CCNA(CDKN1A!1) kAsCdkn1aC, kDiCdkn1aC + AsCDKN1ACCNE: @cell:CDKN1A(CCNE_A_B,Ser130~u) + @cell:CCNE(CDKN1A) <-> @cell:CDKN1A(CCNE_A_B!1,Ser130~u).CCNE(CDKN1A!1) kAsCdkn1aC, kDiCdkn1aC + AsCDKN1ACCNB: @cell:CDKN1A(CCNE_A_B,Ser130~u) + @cell:CCNB(CDKN1A) <-> @cell:CDKN1A(CCNE_A_B!1,Ser130~u).CCNB(CDKN1A!1) kAsCdkn1aC, kDiCdkn1aC + PhCDKN1AByCe: @cell:CDKN1A(CCNE_A_B,Ser130~u) + CCNE(CDKN1A) -> @cell:CDKN1A(CCNE_A_B,Ser130~p) + CCNE(CDKN1A) kPhCDKN1AByCe + PhCdkn1aCaByCe: @cell:CDKN1A(CCNE_A_B!1,Ser130~u).CCNA(CDKN1A!1) + CCNE(CDKN1A) -> @cell:CDKN1A(CCNE_A_B,Ser130~p) + CCNA(CDKN1A) + CCNE(CDKN1A) kPhCDKN1AByCe + PhCdkn1aCeByCe: @cell:CDKN1A(CCNE_A_B!1,Ser130~u).CCNE(CDKN1A!1) + CCNE(CDKN1A) -> @cell:CDKN1A(CCNE_A_B,Ser130~p) + CCNE(CDKN1A) + CCNE(CDKN1A) kPhCDKN1AByCe + PhCdkn1aCbByCe: @cell:CDKN1A(CCNE_A_B!1,Ser130~u).CCNB(CDKN1A!1) + CCNE(CDKN1A) -> @cell:CDKN1A(CCNE_A_B,Ser130~p) + CCNB(CDKN1A) + CCNE(CDKN1A) kPhCDKN1AByCe + PhCDKN1AByCa: @cell:CDKN1A(CCNE_A_B,Ser130~u) + CCNA(CDKN1A) -> @cell:CDKN1A(CCNE_A_B,Ser130~p) + CCNA(CDKN1A) kPhCDKN1AByCa # There is no evidence that CCNA phosphorylates CDKN1A, but it would be surprising if it didn't have some CDKN1A phosphorylating activity, given that CCNE and CCNB have. + PhCdkn1aCaByCa: @cell:CDKN1A(CCNE_A_B!1,Ser130~u).CCNA(CDKN1A!1) + CCNA(CDKN1A) -> @cell:CDKN1A(CCNE_A_B,Ser130~p) + CCNA(CDKN1A) + CCNA(CDKN1A) kPhCDKN1AByCa + PhCdkn1aCeByCa: @cell:CDKN1A(CCNE_A_B!1,Ser130~u).CCNE(CDKN1A!1) + CCNA(CDKN1A) -> @cell:CDKN1A(CCNE_A_B,Ser130~p) + CCNE(CDKN1A) + CCNA(CDKN1A) kPhCDKN1AByCa + PhCdkn1aCbByCa: @cell:CDKN1A(CCNE_A_B!1,Ser130~u).CCNB(CDKN1A!1) + CCNA(CDKN1A) -> @cell:CDKN1A(CCNE_A_B,Ser130~p) + CCNB(CDKN1A) + CCNA(CDKN1A) kPhCDKN1AByCa + PhCDKN1AByCb: @cell:CDKN1A(CCNE_A_B,Ser130~u) + CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) -> @cell:CDKN1A(CCNE_A_B,Ser130~p) + CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) kPhCDKN1AByCb + PhCdkn1aCaByCb: @cell:CDKN1A(CCNE_A_B!1,Ser130~u).CCNA(CDKN1A!1) + CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) -> @cell:CDKN1A(CCNE_A_B,Ser130~p) + CCNA(CDKN1A) + CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) kPhCDKN1AByCb + PhCdkn1aCeByCb: @cell:CDKN1A(CCNE_A_B!1,Ser130~u).CCNE(CDKN1A!1) + CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) -> @cell:CDKN1A(CCNE_A_B,Ser130~p) + CCNE(CDKN1A) + CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) kPhCDKN1AByCb + PhCdkn1aCbByCb: @cell:CDKN1A(CCNE_A_B!1,Ser130~u).CCNB(CDKN1A!1) + CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) -> @cell:CDKN1A(CCNE_A_B,Ser130~p) + CCNB(CDKN1A) + CCNB(CDKN1A,CDK1_Thr14_Tyr15~u) kPhCDKN1AByCb + DpCDKN1A: @cell:CDKN1A(Ser130~p) -> @cell:CDKN1A(Ser130~u) kDpCDKN1A +end reaction rules +end model + +generate_network({overwrite=>1}) +writeSBML() +#simulate({method=>"ode",t_end=>1e6,n_steps=>1e3,atol=>1e-8,rtol=>1e-8}) + +simulate({method=>"ode",t_end=>0.73e5,n_steps=>1e3,atol=>1e-8,rtol=>1e-8}) +saveConcentrations(); +setConcentration("@cell:TP53(DBD,Ser15~p)","1*1"); +simulate({method=>"ode",continue=>1,t_start=>0.73e5,t_end=>1.5e5,n_steps=>1e3}); +saveConcentrations(); +setConcentration("@cell:TP53(DBD,Ser15~p)","0*1"); +simulate({method=>"ode",continue=>1,t_start=>1.5e5,t_end=>2.8e5,n_steps=>1e3}); +saveConcentrations(); +setConcentration("@cell:TP53(DBD,Ser15~p)","1*1"); +simulate({method=>"ode",continue=>1,t_start=>2.8e5,t_end=>3.2e5,n_steps=>1e3}); +saveConcentrations(); +setConcentration("@cell:TP53(DBD,Ser15~p)","0*1"); +simulate({method=>"ode",continue=>1,t_start=>3.2e5,t_end=>4.0e5,n_steps=>1e3}); \ No newline at end of file diff --git a/Published/Lang2024/README.md b/Published/Lang2024/README.md new file mode 100644 index 00000000..37107636 --- /dev/null +++ b/Published/Lang2024/README.md @@ -0,0 +1,21 @@ +# Lang 2024 + +Cell cycle regulation + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- Lang_2024.bngl + +## Tags + +published, lang, 2024, e2f, rb1, ppp2r2b, ccnb_promoter, ccna, ccna_promoter, foxm1_promoter, ensa_arpp19 diff --git a/Published/Lang2024/metadata.yaml b/Published/Lang2024/metadata.yaml new file mode 100644 index 00000000..248a8916 --- /dev/null +++ b/Published/Lang2024/metadata.yaml @@ -0,0 +1,22 @@ +id: "Lang_2024" +name: "Lang 2024" +description: "Cell cycle regulation" +tags: ["published", "lang", "2024", "e2f", "rb1", "ppp2r2b", "ccnb_promoter", "ccna", "ccna_promoter", "foxm1_promoter", "ensa_arpp19"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/growth-factor-signaling/Lang_2024.bngl" +playground: + visible: true + gallery_category: "signaling" + featured: false + difficulty: "intermediate" diff --git a/Published/Ligon2014/Ligon_2014.bngl b/Published/Ligon2014/Ligon_2014.bngl new file mode 100644 index 00000000..fa12c093 --- /dev/null +++ b/Published/Ligon2014/Ligon_2014.bngl @@ -0,0 +1,134 @@ +begin parameters + kFast 1e20 + kA 0.016*3600 # attach + kE 0.45*3600 # endocytosis + kL 0.4*3600 # lyse endosome + kU 0.4*3600 # unpack lipoplex + kTL 100.0*3600 # translate + dW 0 # wash (degrade external lipoplexes) + dM 0.051*3600 # delta mRNA degradation + dG 0.056*3600 # beta GFP degradation + dL 0.01*3600 # lipoplex degradation + dE 1.0*3600 # endosome degradation +end parameters + +begin molecule types + #Lext(p,n~345~355) + #Lext(p,n~345~355~PLUS~MINUS) + Lext(p,n~345~346~347~348~349~350~351~352~353~354~355) + Pit(s~p~e,l1,l2,l3,l4,l5,l6,l7,l8,l9,l10) # pit now has flag fpr pit vs. endosome + #End(l1,l2,l3,l4,l5,l6,l7,l8,l9,l10) + Lint(n~345~346~347~348~349~350~351~352~353~354~355) + mRNA population + GFP population + Trash + I population + Timer population +end molecule types + +begin seed species + Lext(p,n~345) 1 + Lext(p,n~346) 2 + Lext(p,n~347) 6 + Lext(p,n~348) 12 + Lext(p,n~349) 18 + Lext(p,n~350) 20 + Lext(p,n~351) 18 + Lext(p,n~352) 12 + Lext(p,n~353) 6 + Lext(p,n~354) 3 + Lext(p,n~355) 1 + Pit(s~p,l1,l2,l3,l4,l5,l6,l7,l8,l9,l10) 1 + mRNA 0 + GFP 0 + I 1 + Timer 0 +end seed species + +begin observables + Molecules Lext Lext(p,n) + Molecules Pit Pit(s~p) + Molecules Endo Pit(s~e) + #Molecules Pit0 Pit() + #Molecules Pit1 Lext(p!1,n).Pit(l1!1,l2,l3,l4,l5,l6,l7,l8,l9,l10) + #Molecules Pit2 Lext(p!2,n).Lext(p!1,n).Pit(l1!1,l2!2,l3,l4,l5,l6,l7,l8,l9,l10) + #Molecules Pit3 Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(l1!1,l2!2,l3!3,l4,l5,l6,l7,l8,l9,l10) + #Molecules Pit4 Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(l1!1,l2!2,l3!3,l4!4,l5,l6,l7,l8,l9,l10) + #Molecules Pit5 Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(l1!1,l2!2,l3!3,l4!4,l5!5,l6,l7,l8,l9,l10) + #Molecules Pit6 Lext(p!6,n).Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(l1!1,l2!2,l3!3,l4!4,l5!5,l6!6,l7,l8,l9,l10) + #Molecules Pit7 Lext(p!7,n).Lext(p!6,n).Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(l1!1,l2!2,l3!3,l4!4,l5!5,l6!6,l7!7,l8,l9,l10) + #Molecules Pit8 Lext(p!8,n).Lext(p!7,n).Lext(p!6,n).Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(l1!1,l2!2,l3!3,l4!4,l5!5,l6!6,l7!7,l8!8,l9,l10) + #Molecules Pit9 Lext(p!9,n).Lext(p!8,n).Lext(p!7,n).Lext(p!6,n).Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(l1!1,l2!2,l3!3,l4!4,l5!5,l6!6,l7!7,l8!8,l9!9,l10) + #Molecules Pit10 Lext(p!10,n).Lext(p!9,n).Lext(p!8,n).Lext(p!7,n).Lext(p!6,n).Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(l1!1,l2!2,l3!3,l4!4,l5!5,l6!6,l7!7,l8!8,l9!9,l10!10) + Molecules Lint Lint() + Molecules mRNA mRNA + Molecules GFP GFP + Molecules TimerCount Timer +end observables + +begin functions + wash = if(TimerCount>3600,1e20,0) +end functions + +begin reaction rules + # degrade external lipoplex (washing) + Lext(p,n) -> Trash wash + # attach - external lipoplex attaches to clathrin-coated pit + Lext(p,n) + Pit(s~p,l1,l2,l3,l4,l5,l6,l7,l8,l9,l10) -> Lext(p!1,n).Pit(s~p,l1!1,l2,l3,l4,l5,l6,l7,l8,l9,l10) + Pit(s~p,l1,l2,l3,l4,l5,l6,l7,l8,l9,l10) kA + Lext(p,n) + Lext(p!1,n).Pit(s~p,l1!1,l2,l3,l4,l5,l6,l7,l8,l9,l10) -> Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3,l4,l5,l6,l7,l8,l9,l10) kA + Lext(p,n) + Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3,l4,l5,l6,l7,l8,l9,l10) -> Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3!3,l4,l5,l6,l7,l8,l9,l10) kA + Lext(p,n) + Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3!3,l4,l5,l6,l7,l8,l9,l10) -> Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3!3,l4!4,l5,l6,l7,l8,l9,l10) kA + Lext(p,n) + Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3!3,l4!4,l5,l6,l7,l8,l9,l10) -> Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3!3,l4!4,l5!5,l6,l7,l8,l9,l10) kA + Lext(p,n) + Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3!3,l4!4,l5!5,l6,l7,l8,l9,l10) -> Lext(p!6,n).Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3!3,l4!4,l5!5,l6!6,l7,l8,l9,l10) kA + Lext(p,n) + Lext(p!6,n).Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3!3,l4!4,l5!5,l6!6,l7,l8,l9,l10) -> \ + Lext(p!7,n).Lext(p!6,n).Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3!3,l4!4,l5!5,l6!6,l7!7,l8,l9,l10) kA + #Lext(p,n) + Lext(p!7,n).Lext(p!6,n).Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3!3,l4!4,l5!5,l6!6,l7!7,l8,l9,l10) -> \ + # Lext(p!8,n).Lext(p!7,n).Lext(p!6,n).Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3!3,l4!4,l5!5,l6!6,l7!7,l8!8,l9,l10) kA + #Lext(p,n) + Lext(p!8,n).Lext(p!7,n).Lext(p!6,n).Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3!3,l4!4,l5!5,l6!6,l7!7,l8!8,l9,l10) -> \ + # Lext(p!9,n).Lext(p!8,n).Lext(p!7,n).Lext(p!6,n).Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3!3,l4!4,l5!5,l6!6,l7!7,l8!8,l9!9,l10) kA + #Lext(p,n) + Lext(p!9,n).Lext(p!8,n).Lext(p!7,n).Lext(p!6,n).Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3!3,l4!4,l5!5,l6!6,l7!7,l8!8,l9!9,l10) -> \ + # Lext(p!10,n).Lext(p!9,n).Lext(p!8,n).Lext(p!7,n).Lext(p!6,n).Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3!3,l4!4,l5!5,l6!6,l7!7,l8!8,l9!9,l10!10) kA + # endocytosis - pit is converted to endosome + Lext(p!1,n).Pit(s~p,l1!1,l2,l3,l4,l5,l6,l7,l8,l9,l10) -> Lext(p!1,n).Pit(s~e,l1!1,l2,l3,l4,l5,l6,l7,l8,l9,l10) kE DeleteMolecules + Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3,l4,l5,l6,l7,l8,l9,l10) -> Lext(p!2,n).Lext(p!1,n).Pit(s~e,l1!1,l2!2,l3,l4,l5,l6,l7,l8,l9,l10) kE DeleteMolecules + Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3!3,l4,l5,l6,l7,l8,l9,l10) -> Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~e,l1!1,l2!2,l3!3,l4,l5,l6,l7,l8,l9,l10) kE DeleteMolecules + Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3!3,l4!4,l5,l6,l7,l8,l9,l10) -> Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~e,l1!1,l2!2,l3!3,l4!4,l5,l6,l7,l8,l9,l10) kE DeleteMolecules + Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~p,l1!1,l2!2,l3!3,l4!4,l5!5,l6,l7,l8,l9,l10) -> Lext(p!5,n).Lext(p!4,n).Lext(p!3,n).Lext(p!2,n).Lext(p!1,n).Pit(s~e,l1!1,l2!2,l3!3,l4!4,l5!5,l6,l7,l8,l9,l10) kE DeleteMolecules + # 5 more endocytosis reactions needed + # endosome degradation + Pit(s~e,l1,l2,l3,l4,l5,l6,l7,l8,l9,l10) -> Trash dE + # the following reactions hit combinatorial complexity, but would be OK if it were possible to use the state of the reactant in the product + #!! lysis of endosome with 1 lipoplex - 11 reactions + #Lext(p!1,n~?).Pit(s~e,l1!1,l2,l3,l4,l5,l6,l7,l8,l9,l10) -> Lint(n) kL + Lext(p!1,n~345).Pit(s~e,l1!1,l2,l3,l4,l5,l6,l7,l8,l9,l10) -> Lint(n~345) kL + Lext(p!1,n~346).Pit(s~e,l1!1,l2,l3,l4,l5,l6,l7,l8,l9,l10) -> Lint(n~346) kL + Lext(p!1,n~347).Pit(s~e,l1!1,l2,l3,l4,l5,l6,l7,l8,l9,l10) -> Lint(n~347) kL + Lext(p!1,n~348).Pit(s~e,l1!1,l2,l3,l4,l5,l6,l7,l8,l9,l10) -> Lint(n~348) kL + Lext(p!1,n~349).Pit(s~e,l1!1,l2,l3,l4,l5,l6,l7,l8,l9,l10) -> Lint(n~349) kL + Lext(p!1,n~350).Pit(s~e,l1!1,l2,l3,l4,l5,l6,l7,l8,l9,l10) -> Lint(n~350) kL + Lext(p!1,n~351).Pit(s~e,l1!1,l2,l3,l4,l5,l6,l7,l8,l9,l10) -> Lint(n~351) kL + Lext(p!1,n~352).Pit(s~e,l1!1,l2,l3,l4,l5,l6,l7,l8,l9,l10) -> Lint(n~352) kL + Lext(p!1,n~353).Pit(s~e,l1!1,l2,l3,l4,l5,l6,l7,l8,l9,l10) -> Lint(n~353) kL + Lext(p!1,n~354).Pit(s~e,l1!1,l2,l3,l4,l5,l6,l7,l8,l9,l10) -> Lint(n~354) kL + Lext(p!1,n~355).Pit(s~e,l1!1,l2,l3,l4,l5,l6,l7,l8,l9,l10) -> Lint(n~355) kL + #!! lysis of endosome with 2 lipoplexes - 11^2 reactions + Lext(p!2,n~345).Lext(p!1,n~345).Pit(s~e,l1!1,l2!2,l3,l4,l5,l6,l7,l8,l9,l10) -> Lint(n~345) + Lint(n~345) kL + # lysis of endosome with 10 lipoplexes - 11^10 reactions + # lipoplex degradation + Lint -> Trash dL + #!! unpacking of lipoplex - 11 reactions with sum of 345 to 355 elements + # Lint(n) -> n*mRNA kU + # Lint(n~345) -> 345*mRNA kU + Lint(n~345) -> mRNA+mRNA+mRNA+mRNA+mRNA kU + Lint(n~346) -> mRNA+mRNA+mRNA+mRNA+mRNA kU + # mRNA degradation + mRNA -> Trash dM + # translation + mRNA -> mRNA + GFP kTL + # GFP degradation + GFP -> Trash dG + I -> I + Timer 1 +end reaction rules + +simulate_nf({suffix=>nf,t_end=>30*3600,n_steps=>300}); +#writeXML(); \ No newline at end of file diff --git a/Published/Ligon2014/README.md b/Published/Ligon2014/README.md new file mode 100644 index 00000000..e84dd080 --- /dev/null +++ b/Published/Ligon2014/README.md @@ -0,0 +1,21 @@ +# Ligon 2014 + +Lipoplex delivery + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: nf +- Imported from: published + +## Files + +- Ligon_2014.bngl + +## Tags + +published, nfsim, ligon, 2014, lext, pit, lint diff --git a/Published/Ligon2014/metadata.yaml b/Published/Ligon2014/metadata.yaml new file mode 100644 index 00000000..85367e94 --- /dev/null +++ b/Published/Ligon2014/metadata.yaml @@ -0,0 +1,22 @@ +id: "Ligon_2014" +name: "Ligon 2014" +description: "Lipoplex delivery" +tags: ["published", "nfsim", "ligon", "2014", "lext", "pit", "lint"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["nf"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/growth-factor-signaling/Ligon_2014.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/LinERK2019/Lin_ERK_2019.bngl b/Published/LinERK2019/Lin_ERK_2019.bngl new file mode 100644 index 00000000..36fbdc8a --- /dev/null +++ b/Published/LinERK2019/Lin_ERK_2019.bngl @@ -0,0 +1,496 @@ +# filename: ERK_model.bngl +# availability: https://github.com/RuleWorld/RuleHub/tree/master/Contributed/Lin2019 +# compatibility: BioNetGen version 2.4 or higher +# contributors: Yen Ting Lin, Song Feng, and William S. Hlavacek +# date: 19 March 2019 +# This file is a variation of that provided by Kochanczyk et al. (2017). +# The actions section, for example, has been edited to define various simulations, +# including that of Fig. 2(a) in Lin et al. (2019). +# References: +# - Kochanczyk M et al. (2017) Sci Rep 7: 38244. +# https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5206726/ +# - Lin YT, Feng S, Hlavacek WS (2019) Scaling methods for accelerating +# kinetic Monte Carlo simulations of chemical reaction networks. +# LA-UR-19-22745 +# https://arxiv.org/abs/1903.08615 + +begin model + +begin parameters + +# The time unit is s. + + # ---- General model settings ----------------------------------------------- + # + EGF 20 # EGF ligand concentration [pg/ml]; influences the EGFR + # activation rate (a1); this parameter assumes various + # values, as specified in the simulation protocol (see + # bottom of this file) + + ERKpp_SOS1_FB 1.0 # strength of the ERK~PP--SOS negative feedback + ERKpp_MEK_FB 1.0 # strength of the ERK~PP--MEK negative feedback + ERKpp_RAF1_FB 1.0 # strength of the ERK~PP--RAF negative feedback + + lambda 1.0 # scaling factor (used in standard scaling) + # a fraction of the system, 0 < lambda <= 1, lambda=1 => no scaling + # changing value of this parameters affects only + # stochastic simulations + + RAS_t0_active 0 # initial condition: fraction of RAS active at t=0 + + + # ---- Protein abundances (copy numbers per cell) --------------------------- + + # -- Plasma membrane proteins: + # + EGFR_tot 3e5 * lambda + RAS_tot 6e4 * lambda + SOS_tot 1e5 * lambda + RasGAP_tot 6e3 * lambda + + # -- Cytoplasmic proteins: + # + RAF_tot 5e5 * lambda + MEK_tot 2e5 * lambda + ERK_tot 3e6 * lambda + + # -- Experimental read-out: + # + EKAR3_tot 1e6 * lambda + ERKTR_tot 1e6 * lambda + + + # ---- Kinetic rates -------------------------------------------------------- + + # Kinetic parameters naming convention: + # + # a -- activation <-> d -- deactivation, + # b -- binding <-> u -- unbinding, + # p -- phosphorylation <-> q -- dephosphorylation, + # k -- catalysis + + + # -- Receptor activity: + # + a1 5e-5*EGF # EGFR activation due to EGF binding + d1 1e-2 # EGFR deactivation due to EGF unbinding + + + # -- Positive feedback through RAS & SOS: + # + b1 1e-5/lambda # EGFR--SOS binding; EGFR is EGF-bound, SOS~U + u1a 1e-2 # EGFR--SOS unbinding; EGFR is EGF-bound, SOS~U + u1b 1e+2 # EGFR--SOS unbinding; EGFR is EGF-free, SOS~P+; FAST + # + b2a 1e-6/lambda # SOS(rem)--RAS~GTP binding + u2a 1 # SOS(rem)--RAS~GTP unbinding + b2b 1e-7/lambda # SOS(rem)--RAS~GDP binding + u2b 1 # SOS(rem)--RAS~GDP unbinding + # + k2a 1e-4/lambda # SOS max nt-exchanger activity; + # # SOS allosterically strongly upregulated by RAS~GTP + k2b 1e-5/lambda # SOS med nt-exchanger activity; + # # SOS allosterically moderately upregulated by RAS~GDP +# k2c 0 /lambda # SOS low nt-exchanger activity; +# # SOS not bound to RAS at REM domain; negligible rate +# => commented out + + # -- RasGAP activity: + # + b3 1e-5/lambda # RasGAP--RAS(sos,g~GTP) binding + u3 1e-2 # RasGAP--RAS(sos,g~GDP) unbinding + k3 1e+2 # FAST RAS signaling inactivation by bound RasGAP + # # (through RasGAP-assisted ~GTP -> ~GDP hydrolysis) + + + # -- Signal transduction through RAF, MEK, and ERK: + # + a2 1e-7/lambda # RAF activation by RAS~GTP + d2 1e-2 # RAF inactivation ("spontaneous") + # + p1 1e-7/lambda # phosphorylation of MEK on activation sites by RAF + q1 1e-2 # dephosphorylation of MEK on activation sites ("spontaneous") + p2 3e-6/lambda # phosphorylation of ERK on activation sites by MEK + q2 1e-2 # dephosphorylation of ERK on activation sites ("spontaneous") + + + # -- Negative feedback to SOS (4 phospho-sites, phosphorylation of any + # sufficies for inhibition): + # + p3 3e-9/lambda*ERKpp_SOS1_FB # feedback phosphorylation of SOS by active ERK + # + q3 3e-4 # dephosphorylation of the SOS feedback site ("spontaneous") + + + # -- Negative feedback to MEK (MEK1's Thr292): + # + p4 6e-10/lambda*ERKpp_MEK_FB # feedback phosphorylation of MEK (Thr292) by ERK + # + q4 3e-4 # dephosphorylation of the MEK feedback site (Thr292) ("spontaneous") + # + q5 1e+2 # FAST dephosphorylation of MEK on activation sites + # # ("spontaneous" due to the known MEK's phosphatase, PHP, + # # which binds to MEK's Thr292~P and is implicit in the model) + + + # -- Negative feedback to RAF (hyperphosphorylation): + # + p6 6e-10/lambda*ERKpp_RAF1_FB # (hyper)phosphorylation rate + q6 3e-4 # de(hyper)phosphorylation rate + + + # -- ERK_pp reporters activation/deactivation: + # + a0_ekar3 3e-9/lambda + d0_ekar3 1e-3 + # + a0_erktr 1e-9/lambda + d0_erktr 2e-3 + +end parameters + + +begin molecule types + + ## EGFR, epidermal growth factor receptor: + # + # egf -- indicates whether the receptor is bound (A) or not (I) to EGF ligand, + # ligand-bound receptor is active. + # sos -- a site for binding SOS. + # + # ASSUMING: direct binding of EGFR to SOS (in fact, Grb2 and/or Shc mediate + # this interaction, but these details are irrelevent to the model). + # + EGFR(egf~I~A,sos) + + ## SOS, assumed to be the main RAS GEF: + # + # egfr -- EGFR-binding site (simplification; realistically, PXXP region + # binds Grb2, which binds EGFR). + # + # rem -- allosteric RAS-binding site. + # + # S -- indicates whether SOS is: dephosphorylated (U), monophosphorylated (P), + # double phosphorylated (PP), triple phosphorylated(PPP) or + # quadruple phosphorylated (PPPP). + # + # ASSUMING: Fast binding/unbinding kinetics at the primary RAS binding site, + # GEF (a.k.a CDC25-HD) => GEF domain is absent in the model. + # + # ASSUMING: no steric hindrance for simultaneous binding at egfr and rem sites + # (REM domain and PXXP region in SOS structure are separated by + # CDC25-HD). + # + SOS(rem,egfr,S~U~P~PP~PPP~PPPP) + + ## RAS, which accounts for RAS all isoforms (mainly for K-RAS, usually most + # abundant). + # + # sos -- used to indicate whether SOS is bound. + # g -- used to idicate whether RAS is bound to GDP or GTP nucleotide; + # is is ASSUMED that RAS is nt-free for a very short time, + # thus it is not represented in the model. + # + RAS(sos,g~GDP~GTP) + + ## A RAS activating protein (Ras GAP, e.g. RASA1): + # + # ras -- a site to bind RAS. + # + RasGAP(ras) + + ## RAF kinase: + # + # S -- indicates whether RAF is: not inactived (I), actived (A), inactivated + # due to hyperphosphorylation (P). + # + RAF(S~A~I~P) + + ## Mek1 kinase: + # + # d -- MEK homo- and heterodimerization domain. + # + # S1 -- indicates whether Mek1 is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp); double phosphorylation + # is considered activating. + # + # T292 -- represents Thr292 residue, which undergoes feedback phosphorylation + # (Yp) by ERK; when phosphorylated, it becomes a binding domain + # for PHP phosphatase. + # + # ASSUMING: the presence of only the MEK isoform; MEK2 does not receive the + # negative feedback from active ERK. + # + MEK(T292~U~P,S~U~P~PP) + + ## ERK kinase, which account for both isoforms, ERK1 and ERK2: + # + # S1 -- indicates whether Erk is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp); double phosphorylation is + # considered activating. + # + ERK(S~U~P~PP) + + ## ERK_pp reporters: + # + EKAR3(act~I~A) + ERKTR(act~I~A) + +end molecule types + + +begin seed species + + EGFR(egf~I,sos) EGFR_tot + RAS(sos,g~GDP) RAS_tot *(1 - RAS_t0_active) + RAS(sos,g~GTP) RAS_tot * RAS_t0_active + SOS(rem,egfr,S~U) SOS_tot + RasGAP(ras) RasGAP_tot + RAF(S~I) RAF_tot + MEK(T292~U,S~U) MEK_tot + ERK(S~U) ERK_tot + + EKAR3(act~I) EKAR3_tot + ERKTR(act~I) ERKTR_tot + +end seed species + +begin observables + +Species Species8 ERK(S~U) +Species Species12 RAS(g~GTP!1,sos).RasGAP(ras!1) +Species Species14 EGFR(egf~A,sos!1).SOS(S~U,egfr!1,rem) +Species Species18 EGFR(egf~A,sos!1).RAS(g~GTP,sos!2).SOS(S~U,egfr!1,rem!2) + +end observables + +begin functions + +scaledUpSpecies8()=Species8/lambda +scaledUpSpecies12()=Species12/lambda +scaledUpSpecies14()=Species14/lambda +scaledUpSpecies18()=Species18/lambda + +end functions + +begin reaction rules + + # -- EGF Receptor activation due to (monomeric) EGF ligand binding: + # + EGFR(egf~I) <-> EGFR(egf~A) a1,d1 + + + # -- EGFR interactions with SOS: + # + # Active EGFR--SOS binding/unbinding: + EGFR(egf~A,sos) + SOS(rem,egfr,S~U) <-> \ + EGFR(egf~A,sos!1).SOS(rem,egfr!1,S~U) b1,u1a + # + # Inactive EGFR--SOS unbinding: + EGFR(egf~I,sos!1).SOS(rem,egfr!1) -> \ + EGFR(egf~I,sos) + SOS(rem,egfr) u1b + # + # ASSUMING: REM domain of SOS is unbound when SOS is binding to EGFR + # (SOS is recruited to the membrane). + # + # ASSUMING: REM domain of SOS is unbound when SOS is unbinding from EGFR + # (SOS decisively no longer active on the membrane). + # + # ASSUMING: the phosphorylation state of SOS influences only its unbinding + # from *active* EGFR (== phosphorylation status of SOS is irrelevant + # when it dissociates from inactive EGFR). + + + # -- SOS interactions with RAS: + # + # SOS--active RAS binding/unbinding => strong allosteric up-regulation of + # SOS's GEF activity: + SOS(rem,egfr!+) + RAS(sos,g~GTP) <-> \ + SOS(rem!1,egfr!+).RAS(sos!1,g~GTP) b2a,u2a + # + # SOS--inactive RAS binding/unbinding => moderate allosteric up-regulation + # of SOS's GEF activity: + SOS(rem,egfr!+) + RAS(sos,g~GDP) <-> \ + SOS(rem!1,egfr!+).RAS(sos!1,g~GDP) b2b,u2b + # + # SOS complexed with active RAS (and thus allosterically strongly up-regulated) + # helps another RAS with nucleotide exchange: + SOS(rem!1,egfr!+).RAS(sos!1,g~GTP) + RAS(sos,g~GDP) -> \ + SOS(rem!1,egfr!+).RAS(sos!1,g~GTP) + RAS(sos,g~GTP) k2a + # + # SOS complexed with inactive RAS (and thus allosterically moderately up-regulated) + # helps another RAS with nucleotide exchange: + SOS(rem!1,egfr!+).RAS(sos!1,g~GDP) + RAS(sos,g~GDP) -> \ + SOS(rem!1,egfr!+).RAS(sos!1,g~GDP) + RAS(sos,g~GTP) k2b + # + # When SOS is not allosterically upregulated, it cannot accelerate nucleotide + # exchange. Therefore, kinetic rate is 0 (the reaction below is commented out + # on purpose): + # +# SOS(rem,EGFR!+) + RAS(sos,g~GDP) -> \ +# SOS(rem,EGFR!+) + RAS(sos,g~GTP) k2c + + + # -- RasGAP & RAS interactions: + # + # Catalytic activation of G-protein => inhibition of signaling. + # Michaelis--Menten-like kinetics introduces nonlinearity. + # (This is not exactly M--M, as the active complex cannot dissociate + # until the substrate is transformed.) + # + RasGAP(ras) + RAS(sos,g~GTP) -> \ + RasGAP(ras!1).RAS(sos,g~GTP!1) b3 + # + RasGAP(ras!1).RAS(sos,g~GTP!1) -> \ + RasGAP(ras!1).RAS(sos,g~GDP!1) k3 + # + RasGAP(ras!1).RAS(sos,g~GDP!1) -> \ + RasGAP(ras) + RAS(sos,g~GDP) u3 + + + # -- Activity of RAF: + # + # Activation of RAF on active RAS (complex formation, RAF dimerization neglected): + RAS(sos,g~GTP) + RAF(S~I) -> \ + RAS(sos,g~GTP) + RAF(S~A) a2 + # + # RAF deactivation: + RAF(S~A) -> RAF(S~I) d2 + + + # -- Activity of MEK: + # + # Phosphorylation of MEK on activating sites by RAF: + RAF(S~A) + MEK(S~U) -> \ + RAF(S~A) + MEK(S~P) p1*2 + # + RAF(S~A) + MEK(S~P) -> \ + RAF(S~A) + MEK(S~PP) p1 + # + # Dephosphorylation of MEK on activating sites: + MEK(S~PP) -> MEK(S~P) q1*2 + MEK(S~P) -> MEK(S~U) q1 + + + # -- Activity of ERK: + # + # Activation of ERK by MEK: + MEK(S~PP) + ERK(S~U) -> \ + MEK(S~PP) + ERK(S~P) p2*2 + # + # Activation of ERK by MEK, further: + MEK(S~PP) + ERK(S~P) -> \ + MEK(S~PP) + ERK(S~PP) p2 + # + # dephosphorylation of ERK on activating sites: + ERK(S~PP) -> ERK(S~P) q2*2 + ERK(S~P) -> ERK(S~U) q2 + + + # -- Negative feedback phosphorylation of SOS by doubly phosphorylated ERK: + # + # Phosphorylation of SOS by ERK: + ERK(S~PP) + SOS(egfr,S~U) -> \ + ERK(S~PP) + SOS(egfr,S~P) p3*4 + # + # Phosphorylation of SOS1 by ERK, further: + ERK(S~PP) + SOS(egfr,S~P) -> \ + ERK(S~PP) + SOS(egfr,S~PP) p3*3 + # + # Phosphorylation of SOS by ERK, even further: + ERK(S~PP) + SOS(egfr,S~PP) -> \ + ERK(S~PP) + SOS(egfr,S~PPP) p3*2 + # + # Phosphorylation of SOS by ERK, even much further: + ERK(S~PP) + SOS(egfr,S~PPP) -> \ + ERK(S~PP) + SOS(egfr,S~PPPP) p3 + + + # -- Dephosphorylation of (ERK-mediated negative feedback site of) SOS: + # + SOS(egfr,S~P) -> SOS(egfr,S~U) q3 + SOS(egfr,S~PP) -> SOS(egfr,S~P) q3*2 + SOS(egfr,S~PPP) -> SOS(egfr,S~PP) q3*3 + SOS(egfr,S~PPPP)-> SOS(egfr,S~PPP) q3*4 + + + # -- Negative feedback phosphorylation of MEK by ERK (ERK1) on Thr292: + # + ERK(S~PP) + MEK(T292~U) -> \ + ERK(S~PP) + MEK(T292~P) p4 + + + # -- Dephosphorylation of MEK on the negative feedback site (Thr292). + # + MEK(T292~P) -> MEK(T292~U) q4 + + + # -- Dephosphorylation at MEK's activating site: + # + MEK(T292~P,S~PP) -> MEK(T292~P,S~P) q5*2 + MEK(T292~P,S~P) -> MEK(T292~P,S~U) q5 + + + # -- Negative feedback to RAF from ERKpp, and RAF recirculation: + # + ERK(S~PP) + RAF(S~A) -> \ + ERK(S~PP) + RAF(S~P) p6 + # + ERK(S~PP) + RAF(S~I) -> \ + ERK(S~PP) + RAF(S~P) p6 + # + RAF(S~P) -> RAF(S~I) q6 + + + ## -- ERK_pp sensors' dynamics: + # + ERK(S~PP) + EKAR3(act~I) -> \ + ERK(S~PP) + EKAR3(act~A) a0_ekar3 + # + EKAR3(act~A) -> EKAR3(act~I) d0_ekar3 + # + # + ERK(S~PP) + ERKTR(act~I) -> \ + ERK(S~PP) + ERKTR(act~A) a0_erktr + # + ERKTR(act~A) -> ERKTR(act~I) d0_erktr + +end reaction rules + +end model + +begin actions + +# generate reaction network +# - The output of this command is a BNG-NET file (ERK_model.net). +generate_network({overwrite=>1}) + +saveParameters() +saveConcentrations() + +# perform a deterministic simulation +# - Simulation results for outputs defined as observables and functions +# are reported in a GDAT file (ERK_model_ODE.gdat). +# - Simluation results for all chemical species concentrations +# are reported in a CDAT file if print_CDAT=>1 (ERK_model_ODE.cdat). +simulate({suffix=>"ODE",method=>"ode",print_CDAT=>0,t_start=>0,t_end=>8640,n_steps=>1000}) + +# perform an exact stochastic simulation - results are shown in Fig. 2(a) +# resetConcentrations() +# simulate({suffix=>"exact",method=>"ssa",print_CDAT=>0,t_start=>0,t_end=>8640,n_steps=>1000}) + +# perform a stochastic simulation using standard scaling ($\lambda=0.01$) +# - Results are shown in Fig. 3(a), (c), (e) and (g). +# setParameter("lambda",0.01) +# resetConcentrations() +# simulate({suffix=>"std_scaling",method=>"ssa",print_CDAT=>0,t_start=>0,t_end=>8640,n_steps=>1000,\ +# print_functions=>1}) + +# perform a stochastic simulation using partial scaling ($N_c=300$) +# - Results are shown in Fig. 3(b), (d), (f) and (h). +# resetParameters() +# resetConcentrations() +# simulate({suffix=>"partial_scaling",method=>"ssa",poplevel=>300,print_CDAT=>0,\ +# t_start=>0,t_end=>8640,n_steps=>1000}) + +end actions diff --git a/Published/LinERK2019/README.md b/Published/LinERK2019/README.md new file mode 100644 index 00000000..b7650e67 --- /dev/null +++ b/Published/LinERK2019/README.md @@ -0,0 +1,21 @@ +# Lin 2019 + +ERK signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode, ssa +- Imported from: published + +## Files + +- Lin_ERK_2019.bngl + +## Tags + +published, literature, signaling, lin, erk, 2019, egfr, sos, ras, rasgap, raf, mek, ekar3 diff --git a/Published/LinERK2019/metadata.yaml b/Published/LinERK2019/metadata.yaml new file mode 100644 index 00000000..e287713a --- /dev/null +++ b/Published/LinERK2019/metadata.yaml @@ -0,0 +1,22 @@ +id: "Lin_ERK_2019" +name: "Lin 2019" +description: "ERK signaling" +tags: ["published", "literature", "signaling", "lin", "erk", "2019", "egfr", "sos", "ras", "rasgap", "raf", "mek", "ekar3"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode", "ssa"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/literature/Lin_ERK_2019.bngl" +playground: + visible: true + gallery_category: "other" + featured: false + difficulty: "intermediate" diff --git a/Published/LinPrion2019/Lin_Prion_2019.bngl b/Published/LinPrion2019/Lin_Prion_2019.bngl new file mode 100644 index 00000000..c5936070 --- /dev/null +++ b/Published/LinPrion2019/Lin_Prion_2019.bngl @@ -0,0 +1,160 @@ +# filename: prion_model.bngl +# availability: https://github.com/RuleWorld/RuleHub/tree/master/Contributed/Lin2019 +# compatibility: BioNetGen version 2.4 or higher +# contributors: Yen Ting Lin, Song Feng, and William S. Hlavacek +# date: 19 March 2019 +# This file provides a formulation of the model of Rubenstein et al. (2007). +# We have confirmed that this formulation is consistent with the original formulation. +# The actions section at bottom defines various simulations, including that of Fig. 2(b) +# in Lin et al. (2019). +# References: +# - Rubenstein R et al. (2007) Biophys Chem 125: 360-367. +# https://www.ncbi.nlm.nih.gov/pubmed/17084016 +# - Lin YT, Feng S, Hlavacek WS (2019) Scaling methods for accelerating +# kinetic Monte Carlo simulations of chemical reaction networks. +# LA-UR-19-22745 +# https://arxiv.org/abs/1903.08615 + +begin model + +# The time unit is days. + +# Dynamics of the nucleated polymerization model of prion replication + +# Reference: +# - Rubenstein R, Gray PC, Cleland TJ, et al. (2007) Biophys Chem 125: 360-367. + +begin parameters + +lambda_scaling_factor 1.0 + +# Avogadro constant +NA 6.02214e23 # molecules per mol + +# volume +Volume 1e-12 # L +# 602 copies per reaction compartment corresponds to 1 nM +# 1e-9 M * (NA*V) = 602 + +# Table 1 +# +a 0.047 # per day (the value of this parameter will be adjusted in the actions block) +# +beta 2.92e-3/lambda_scaling_factor # per day +# +b 0.0314 # per day +# +lambda_model_parameter 30000*lambda_scaling_factor # per day +# +d 4 # per day +# +x_0=lambda_model_parameter/d # (=2400/4=600) dimensionless +# +n 2 # (2 or 3) dimensionless + +gamma 100 # per day + +epsilon 1e-10 # a small number (used to avoid a divide-by-zero error) + +end parameters + +begin molecule types + +PrP(a~C~Sc,x,y) + +end molecule types + +begin seed species + +PrP(a~C,x,y) x_0 # 1 nM +PrP(a~Sc,x,y!1).PrP(a~Sc,x!1,y!2).PrP(a~Sc,x!2,y) 3*lambda_scaling_factor # 0.005 nM + +end seed species + +begin observables + +Species Species1 PrP(a~C,x,y) +Species Species2 PrP(a~Sc,x!1,y!2).PrP(a~Sc,x!2,y).PrP(a~Sc,x,y!1) +Species Species15 PrP(a~Sc,x!1,y!2).PrP(a~Sc,x!2,y!3).PrP(a~Sc,x!3,y!4).PrP(a~Sc,x!4,y!5).PrP(a~Sc,x!5,y!6).PrP(a~Sc,x!6,y!7).PrP(a~Sc,x!7,y!8).PrP(a~Sc,x!8,y!9).PrP(a~Sc,x!9,y!10).PrP(a~Sc,x!10,y!11).PrP(a~Sc,x!11,y!12).PrP(a~Sc,x!12,y!13).PrP(a~Sc,x!13,y).PrP(a~Sc,x,y!1) +Species Species30 PrP(a~Sc,x!1,y!2).PrP(a~Sc,x!2,y!3).PrP(a~Sc,x!3,y!4).PrP(a~Sc,x!4,y!5).PrP(a~Sc,x!5,y!6).PrP(a~Sc,x!6,y!7).PrP(a~Sc,x!7,y!8).PrP(a~Sc,x!8,y!9).PrP(a~Sc,x!9,y!10).PrP(a~Sc,x!10,y!11).PrP(a~Sc,x!11,y!12).PrP(a~Sc,x!12,y!13).PrP(a~Sc,x!13,y!14).PrP(a~Sc,x!14,y!15).PrP(a~Sc,x!15,y!16).PrP(a~Sc,x!16,y!17).PrP(a~Sc,x!17,y!18).PrP(a~Sc,x!18,y!19).PrP(a~Sc,x!19,y!20).PrP(a~Sc,x!20,y!21).PrP(a~Sc,x!21,y!22).PrP(a~Sc,x!22,y!23).PrP(a~Sc,x!23,y!24).PrP(a~Sc,x!24,y!25).PrP(a~Sc,x!25,y!26).PrP(a~Sc,x!26,y!27).PrP(a~Sc,x!27,y!28).PrP(a~Sc,x!28,y).PrP(a~Sc,x,y!1) + +end observables + +begin functions +scaledUpSpecies1()=Species1/lambda_scaling_factor +scaledUpSpecies2()=Species2/lambda_scaling_factor +scaledUpSpecies15()=Species15/lambda_scaling_factor +scaledUpSpecies30()=Species30/lambda_scaling_factor +end functions + +begin reaction rules + +# Equation (1) - PrPC synthesis +0->PrP(a~C,x,y) lambda_model_parameter + +# Equation (2) - PrPC degradation +PrP(a~C,x,y)->0 d + +# Equation (3) - clearance of PrPSc chains (slow) +# This rule deletes any species containing a molecule of PrP in the Sc conformation. +# The {MatchOnce} qualifier means that the rate of degradation +# does NOT depend on the number of copies of PrPSc in the species to be deleted. +{MatchOnce}PrP(a~Sc)->0 a + +# Equation (4) - PrPSc chain elongation +PrP(a~Sc,y)+PrP(a~C,x,y)->PrP(a~Sc,y!1).PrP(a~Sc,x!1,y) beta + +# Equation (5) - PrPSc chain breakage +PrP(a~Sc,y!1).PrP(a~Sc,x!1)->PrP(a~Sc,y)+PrP(a~Sc,x) b + +# Equation (6) - conformation change (Sc to C) +# n = 2 +# include the line below if n>=1 +PrP(a~Sc,x,y)->PrP(a~C,x,y) gamma +# include the line below if n>=2 +PrP(a~Sc,x,y!1).PrP(a~Sc,x!1,y)->PrP(a~C,x,y)+PrP(a~C,x,y) gamma +# include the line below if n>=3 +#PrP(a~Sc,x,y!1).PrP(a~Sc,x!1,y!2).PrP(a~Sc,x!2,y)->PrP(a~C,x,y)+PrP(a~C,x,y)+PrP(a~C,x,y) gamma + +end reaction rules + +end model + +begin actions + +# generate reaction network +# - The output of this command is a BNG-NET file (prion_model.net). +# - The max_stoich setting truncates network generation. +# - We have confirmed that the truncated network satisfactorily captures the populated chemical species. +# - Network truncation should be reevaluated if the parameter settings are changed. +generate_network({overwrite=>1,check_iso=>1,max_stoich=>{PrP=>120}}) + +saveParameters() +saveConcentrations() + +# perform a deterministic simulation +# - Simulation results for outputs defined as observables and functions +# are reported in a GDAT file (prion_model_ODE.gdat). +# - Simluation results for all chemical species concentrations +# are reported in a CDAT file if print_CDAT=>1 (prion_model_ODE.cdat). +simulate({suffix=>"ODE",method=>"ode",print_CDAT=>0,t_start=>0,t_end=>300,n_steps=>30000}) + +# perform an exact stochastic simulation - results are shown in Fig. 2(b) +# resetConcentrations() +# simulate({suffix=>"exact",method=>"ssa",print_CDAT=>0,t_start=>0,t_end=>300,n_steps=>30000}) + +# perform a stochastic simulation using standard scaling ($\lambda=0.01$) +# - Results are shown in Fig. 4(a), (c), (e) and (g). +# setParameter("lambda_scaling_factor",0.01) +# resetConcentrations() +# simulate({suffix=>"std_scaling",method=>"ssa",print_CDAT=>0,t_start=>0,t_end=>300,n_steps=>30000,\ +# print_functions=>1}) + +# perform a stochastic simulation using partial scaling ($N_c=300$) +# - Results are shown in Fig. 4(b), (d), (f) and (h). +# resetParameters() +# resetConcentrations() +# simulate({suffix=>"partial_scaling",method=>"ssa",poplevel=>10,print_CDAT=>0,\ +# t_start=>0,t_end=>300,n_steps=>30000}) + +end actions diff --git a/Published/LinPrion2019/README.md b/Published/LinPrion2019/README.md new file mode 100644 index 00000000..3c19d761 --- /dev/null +++ b/Published/LinPrion2019/README.md @@ -0,0 +1,21 @@ +# Lin 2019 + +Prion replication + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode, ssa +- Imported from: published + +## Files + +- Lin_Prion_2019.bngl + +## Tags + +published, literature, prion, lin, 2019, prp, scaledupspecies1, scaledupspecies2, scaledupspecies15, scaledupspecies30 diff --git a/Published/LinPrion2019/metadata.yaml b/Published/LinPrion2019/metadata.yaml new file mode 100644 index 00000000..1cc264c6 --- /dev/null +++ b/Published/LinPrion2019/metadata.yaml @@ -0,0 +1,22 @@ +id: "Lin_Prion_2019" +name: "Lin 2019" +description: "Prion replication" +tags: ["published", "literature", "prion", "lin", "2019", "prp", "scaledupspecies1", "scaledupspecies2", "scaledupspecies15", "scaledupspecies30"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode", "ssa"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/literature/Lin_Prion_2019.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/Published/LinTCR2019/Lin_TCR_2019.bngl b/Published/LinTCR2019/Lin_TCR_2019.bngl new file mode 100644 index 00000000..95ed4293 --- /dev/null +++ b/Published/LinTCR2019/Lin_TCR_2019.bngl @@ -0,0 +1,250 @@ +# filename: TCR_model.bngl +# availability: https://github.com/RuleWorld/RuleHub/tree/master/Contributed/Lin2019 +# compatibility: BioNetGen version 2.4 or higher +# contributors: Yen Ting Lin, Song Feng, and William S. Hlavacek +# date: 19 March 2019 +# This file provides an updated formulation of the model of Lipniacki et al. (2008), +# which is compatible with current BNGL conventions. +# We have confirmed that this formulation is consistent with the original formulation. +# The actions section at bottom defines various simulations, including that of Fig. 2(c) +# in Lin et al. (2019). +# References: +# - Lipniacki T, Hat B, Faeder JR, Hlavacek WS (2008) J Theor Biol 254: 110-122. +# https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2577002/ +# - Lin YT, Feng S, Hlavacek WS (2019) Scaling methods for accelerating +# kinetic Monte Carlo simulations of chemical reaction networks. +# LA-UR-19-22745 +# https://arxiv.org/abs/1903.08615 + +begin model + +begin parameters + +# The time unit is s. + +# universal static scaling factor (used in standard scaling) +lambda 1 # dimensionless, 0 no scaling + +# These settings agree with Table 1 in Lipniacki et al. (2008). +N1 30*lambda +N2 0*lambda + +TCR 30000*lambda +LCK 100000*lambda +ZAP 100000*lambda +MEK 100000*lambda +ERK 300000*lambda +SHP 300000*lambda + +b1 0.3/TCR +b2 0.3/TCR +d1 0.05 +d2 1 +lb 0.3/LCK +ly1 5/SHP +ly2 0.3 +ls1 0.1 +ls2 0.5/ERK + +tp 0.05 + +s0 1e-5 +s1 30/SHP +s2 0.0006 +s3 0.05 + +z0 2e-6 +z1 5/ZAP +z2 0.02 +m1 5/MEK +m2 0.02 +e1 5/ERK +e2 0.02 + +end parameters + +begin molecule types +pMHC(p~ag~en) +TCR(ab,ITAM~U~P~PP,lck,shp) +Lck(tcr,Y~U~P,S~U~P) +SHP(tcr,Y~U~P) +ZAP(Y~U~P) +MEK(S~U~P~PP) +ERK(S~U~P~PP) +end molecule types + +begin seed species +pMHC(p~ag) N1 +pMHC(p~en) 0 +TCR(ab,ITAM~U,lck,shp) TCR +Lck(tcr,Y~U,S~U) LCK +SHP(tcr,Y~U) SHP +ZAP(Y~U) ZAP +MEK(S~U) MEK +ERK(S~U) ERK +end seed species + +begin observables +Species Species7 MEK(S~U) +Species Species15 MEK(S~P) +end observables + +begin functions +scaledUpSpecies7() Species7/lambda +scaledUpSpecies15() Species15/lambda +end functions + + +begin reaction rules + +# pMHC binding to TCR: +TCR(ab,shp)+pMHC(p~ag)->TCR(ab!1,shp).pMHC(p~ag!1) b1 +TCR(ab,shp)+pMHC(p~en)->TCR(ab!1,shp).pMHC(p~en!1) b2 + +#recruitment of Lck to TCR bound to pMHC: +#All unbound Lck is unphosphorylated +TCR(ab!+,lck,shp)+Lck(tcr)->TCR(ab!+,lck!1,shp).Lck(tcr!1) lb + +#Lck phosphorylation on Y: +# What is phosphorylating Lck? +TCR(lck!1,shp).Lck(tcr!1,Y~U)->TCR(lck!1,shp).Lck(tcr!1,Y~P) ly2 + +#Lck phosphorylation on S: +ERK(S~PP)+TCR(lck!1,shp).Lck(tcr!1,S~U)->ERK(S~PP)+TCR(lck!1,shp).Lck(tcr!1,S~P) ls2 + +#Lck dephosphorylation on S: +Lck(tcr!+,S~P)->Lck(tcr!+,S~U) ls1 + +#TCR phosphorylation by Lck: +TCR(ITAM~U,lck!1,shp).Lck(tcr!1,Y~P)->TCR(ITAM~P,lck!1,shp).Lck(tcr!1,Y~P) tp +TCR(ITAM~P,lck!1,shp).Lck(tcr!1,Y~P)->TCR(ITAM~PP,lck!1,shp).Lck(tcr!1,Y~P) tp + +#Spontaneous ZAP phosphorylation: +ZAP(Y~U)->ZAP(Y~P) z0 + +#ZAP phosphorylation: +TCR(ITAM~PP)+ZAP(Y~U)->TCR(ITAM~PP)+ZAP(Y~P) z1 + +#ZAP dephosphorylation: +ZAP(Y~P)->ZAP(Y~U) z2 + +#MEK phosphorylation by ZAP +ZAP(Y~P)+MEK(S~U)->ZAP(Y~P)+MEK(S~P) m1 +ZAP(Y~P)+MEK(S~P)->ZAP(Y~P)+MEK(S~PP) m1 + +#MEK dephosphorylation: +MEK(S~P)->MEK(S~U) m2 +MEK(S~PP)->MEK(S~U) m2 + +#ERK phosphorylation by MEK: +MEK(S~PP)+ERK(S~U)->MEK(S~PP)+ERK(S~P) e1 +MEK(S~PP)+ERK(S~P)->MEK(S~PP)+ERK(S~PP) e1 + +#ERK dephosphorylation: +ERK(S~P)->ERK(S~U) e2 +ERK(S~PP)->ERK(S~U) e2 + +#Spontaneous phosphorylation of SHP +SHP(Y~U)->SHP(Y~P) s0 + +#SHP phosphorylation by Lck: +# All SHP(Y~U) is unbound, all LckYP is bound to TCR +Lck(Y~P,S~U)+SHP(Y~U)->Lck(Y~P,S~U)+SHP(Y~P) s1 + +#pMH dissociation from TCR not associated with Lck and simultaneous dephosphorylation +pMHC(p~ag!1).TCR(ab!1,ITAM~U,lck)->pMHC(p~ag)+TCR(ab,ITAM~U,lck) d1 +pMHC(p~ag!1).TCR(ab!1,ITAM~P,lck)->pMHC(p~ag)+TCR(ab,ITAM~U,lck) d1 +pMHC(p~ag!1).TCR(ab!1,ITAM~PP,lck)->pMHC(p~ag)+TCR(ab,ITAM~U,lck) d1 +pMHC(p~en!1).TCR(ab!1,ITAM~U,lck)->pMHC(p~en)+TCR(ab,ITAM~U,lck) d2 +pMHC(p~en!1).TCR(ab!1,ITAM~P,lck)->pMHC(p~en)+TCR(ab,ITAM~U,lck) d2 +pMHC(p~en!1).TCR(ab!1,ITAM~PP,lck)->pMHC(p~en)+TCR(ab,ITAM~U,lck) d2 + +#pMHC dissociation causes Lck dissociation and simultaneous dephosphorylation: +pMHC(p~ag!1).TCR(ab!1,ITAM~U,lck!2).Lck(tcr!2,Y~U,S~U)->pMHC(p~ag)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d1 +pMHC(p~ag!1).TCR(ab!1,ITAM~U,lck!2).Lck(tcr!2,Y~U,S~P)->pMHC(p~ag)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d1 +pMHC(p~ag!1).TCR(ab!1,ITAM~U,lck!2).Lck(tcr!2,Y~P,S~U)->pMHC(p~ag)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d1 +pMHC(p~ag!1).TCR(ab!1,ITAM~U,lck!2).Lck(tcr!2,Y~P,S~P)->pMHC(p~ag)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d1 +pMHC(p~ag!1).TCR(ab!1,ITAM~P,lck!2).Lck(tcr!2,Y~U,S~U)->pMHC(p~ag)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d1 +pMHC(p~ag!1).TCR(ab!1,ITAM~P,lck!2).Lck(tcr!2,Y~U,S~P)->pMHC(p~ag)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d1 +pMHC(p~ag!1).TCR(ab!1,ITAM~P,lck!2).Lck(tcr!2,Y~P,S~U)->pMHC(p~ag)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d1 +pMHC(p~ag!1).TCR(ab!1,ITAM~P,lck!2).Lck(tcr!2,Y~P,S~P)->pMHC(p~ag)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d1 +pMHC(p~ag!1).TCR(ab!1,ITAM~PP,lck!2).Lck(tcr!2,Y~U,S~U)->pMHC(p~ag)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d1 +pMHC(p~ag!1).TCR(ab!1,ITAM~PP,lck!2).Lck(tcr!2,Y~U,S~P)->pMHC(p~ag)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d1 +pMHC(p~ag!1).TCR(ab!1,ITAM~PP,lck!2).Lck(tcr!2,Y~P,S~U)->pMHC(p~ag)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d1 +pMHC(p~ag!1).TCR(ab!1,ITAM~PP,lck!2).Lck(tcr!2,Y~P,S~P)->pMHC(p~ag)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d1 + +pMHC(p~en!1).TCR(ab!1,ITAM~U,lck!2).Lck(tcr!2,Y~U,S~U)->pMHC(p~en)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d2 +pMHC(p~en!1).TCR(ab!1,ITAM~U,lck!2).Lck(tcr!2,Y~U,S~P)->pMHC(p~en)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d2 +pMHC(p~en!1).TCR(ab!1,ITAM~U,lck!2).Lck(tcr!2,Y~P,S~U)->pMHC(p~en)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d2 +pMHC(p~en!1).TCR(ab!1,ITAM~U,lck!2).Lck(tcr!2,Y~P,S~P)->pMHC(p~en)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d2 +pMHC(p~en!1).TCR(ab!1,ITAM~P,lck!2).Lck(tcr!2,Y~U,S~U)->pMHC(p~en)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d2 +pMHC(p~en!1).TCR(ab!1,ITAM~P,lck!2).Lck(tcr!2,Y~U,S~P)->pMHC(p~en)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d2 +pMHC(p~en!1).TCR(ab!1,ITAM~P,lck!2).Lck(tcr!2,Y~P,S~U)->pMHC(p~en)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d2 +pMHC(p~en!1).TCR(ab!1,ITAM~P,lck!2).Lck(tcr!2,Y~P,S~P)->pMHC(p~en)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d2 +pMHC(p~en!1).TCR(ab!1,ITAM~PP,lck!2).Lck(tcr!2,Y~U,S~U)->pMHC(p~en)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d2 +pMHC(p~en!1).TCR(ab!1,ITAM~PP,lck!2).Lck(tcr!2,Y~U,S~P)->pMHC(p~en)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d2 +pMHC(p~en!1).TCR(ab!1,ITAM~PP,lck!2).Lck(tcr!2,Y~P,S~U)->pMHC(p~en)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d2 +pMHC(p~en!1).TCR(ab!1,ITAM~PP,lck!2).Lck(tcr!2,Y~P,S~P)->pMHC(p~en)+TCR(ab,ITAM~U,lck)+Lck(tcr,Y~U,S~U) d2 + +#Recruitment of phosphorylated SHP to receptor complex without Lck: +TCR(ITAM~U,lck,shp)+SHP(tcr,Y~P)->TCR(ITAM~U,lck,shp!1).SHP(tcr!1,Y~P) ly1 +TCR(ITAM~P,lck,shp)+SHP(tcr,Y~P)->TCR(ITAM~U,lck,shp!1).SHP(tcr!1,Y~P) ly1 +TCR(ITAM~PP,lck,shp)+SHP(tcr,Y~P)->TCR(ITAM~U,lck,shp!1).SHP(tcr!1,Y~P) ly1 + +#Recruitment of phosphorylated SHP to receptor complex with Lck: +#Phosphorylation of Lck on S inhibits this reaction +TCR(ITAM~U,lck!1,shp).Lck(tcr!1,Y~U,S~U)+SHP(tcr,Y~P)->TCR(ITAM~U,lck!1,shp!2).Lck(tcr!1,Y~U,S~U).SHP(tcr!2,Y~P) ly1 +TCR(ITAM~U,lck!1,shp).Lck(tcr!1,Y~P,S~U)+SHP(tcr,Y~P)->TCR(ITAM~U,lck!1,shp!2).Lck(tcr!1,Y~U,S~U).SHP(tcr!2,Y~P) ly1 +TCR(ITAM~P,lck!1,shp).Lck(tcr!1,Y~U,S~U)+SHP(tcr,Y~P)->TCR(ITAM~U,lck!1,shp!2).Lck(tcr!1,Y~U,S~U).SHP(tcr!2,Y~P) ly1 +TCR(ITAM~P,lck!1,shp).Lck(tcr!1,Y~P,S~U)+SHP(tcr,Y~P)->TCR(ITAM~U,lck!1,shp!2).Lck(tcr!1,Y~U,S~U).SHP(tcr!2,Y~P) ly1 +TCR(ITAM~PP,lck!1,shp).Lck(tcr!1,Y~U,S~U)+SHP(tcr,Y~P)->TCR(ITAM~U,lck!1,shp!2).Lck(tcr!1,Y~U,S~U).SHP(tcr!2,Y~P) ly1 +TCR(ITAM~PP,lck!1,shp).Lck(tcr!1,Y~P,S~U)+SHP(tcr,Y~P)->TCR(ITAM~U,lck!1,shp!2).Lck(tcr!1,Y~U,S~U).SHP(tcr!2,Y~P) ly1 + +#SHP dissociation from TCR with dephosphorylation: +TCR(shp!1).SHP(tcr!1,Y~P)->TCR(shp)+SHP(tcr,Y~U) s2 + +#SHP dissociation from TCR without dephosphorylation: +TCR(shp!1).SHP(tcr!1,Y~P)->TCR(shp)+SHP(tcr,Y~P) s3 + +#free SHP dephosphorylation: +SHP(tcr,Y~P)->SHP(tcr,Y~U) s2 + +end reaction rules + +end model + +begin actions + +# generate reaction network +# - The output of this command is a BNG-NET file (TCR_model.net). +generate_network({overwrite=>1}) + +saveParameters() +saveConcentrations() + +# perform a deterministic simulation +# - Simulation results for outputs defined as +# observables and functions are reported in a GDAT file (TCR_model_ODE.gdat). +# - Simluation results for all chemical species concentrations are +# reported in a CDAT file if print_CDAT=>1 (TCR_model_ODE.cdat). +simulate({suffix=>"ODE",method=>"ode",print_CDAT=>0,t_start=>0,t_end=>10000,n_steps=>1000}) + +# perform an exact stochastic simulation - results are shown in Fig. 2(c) +# resetConcentrations() +# simulate({suffix=>"exact",method=>"ssa",print_CDAT=>0,t_start=>0,t_end=>10000,n_steps=>1000}) + +# perform a stochastic simulation using standard scaling ($\lambda=0.1$) +# - Results are shown in Fig. 5(a) and (c). +# setParameter("lambda",0.1) +# resetConcentrations() +# simulate({suffix=>"std_scaling",method=>"ssa",print_CDAT=>0,t_start=>0,t_end=>250,n_steps=>100,\ +# print_functions=>1}) + +# perform a stochastic simulation using partial scaling ($N_c=100$) +# - Results are shown in Fig. 5(b) and (d). +# resetParameters() +# resetConcentrations() +# simulate({suffix=>"partial_scaling",method=>"ssa",poplevel=>100,print_CDAT=>0,\ +# t_start=>0,t_end=>250,n_steps=>100}) + +end actions diff --git a/Published/LinTCR2019/README.md b/Published/LinTCR2019/README.md new file mode 100644 index 00000000..f2799402 --- /dev/null +++ b/Published/LinTCR2019/README.md @@ -0,0 +1,21 @@ +# Lin 2019 + +TCR signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode, ssa +- Imported from: published + +## Files + +- Lin_TCR_2019.bngl + +## Tags + +published, literature, immune, lin, tcr, 2019, pmhc, lck, shp, zap, mek, erk diff --git a/Published/LinTCR2019/metadata.yaml b/Published/LinTCR2019/metadata.yaml new file mode 100644 index 00000000..d4fcc091 --- /dev/null +++ b/Published/LinTCR2019/metadata.yaml @@ -0,0 +1,22 @@ +id: "Lin_TCR_2019" +name: "Lin 2019" +description: "TCR signaling" +tags: ["published", "literature", "immune", "lin", "tcr", "2019", "pmhc", "lck", "shp", "zap", "mek", "erk"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode", "ssa"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/literature/Lin_TCR_2019.bngl" +playground: + visible: true + gallery_category: "other" + featured: false + difficulty: "intermediate" diff --git a/Published/Mallela2021/README.md b/Published/Mallela2021/README.md new file mode 100644 index 00000000..00a5a85f --- /dev/null +++ b/Published/Mallela2021/README.md @@ -0,0 +1,70 @@ +# Mallela 2021 - COVID-19 State-Level Models + +Parameter-fit COVID-19 epidemiological models for all 50 US states. + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- SI_files_Alabama_Alabama.bngl +- SI_files_Alaska_Alaska.bngl +- SI_files_Arizona_Arizona.bngl +- SI_files_Arkansas_Arkansas.bngl +- SI_files_California_California.bngl +- SI_files_Colorado_Colorado.bngl +- SI_files_Connecticut_Connecticut.bngl +- SI_files_Delaware_Delaware.bngl +- SI_files_Florida_Florida.bngl +- SI_files_Georgia_Georgia.bngl +- SI_files_Hawaii_Hawaii.bngl +- SI_files_Idaho_Idaho.bngl +- SI_files_Illinois_Illinois.bngl +- SI_files_Indiana_Indiana.bngl +- SI_files_Iowa_Iowa.bngl +- SI_files_Kansas_Kansas.bngl +- SI_files_Kentucky_Kentucky.bngl +- SI_files_Louisiana_Louisiana.bngl +- SI_files_Maine_Maine.bngl +- SI_files_Maryland_Maryland.bngl +- SI_files_Massachusetts_Massachusetts.bngl +- SI_files_Michigan_Michigan.bngl +- SI_files_Minnesota_Minnesota.bngl +- SI_files_Mississippi_Mississippi.bngl +- SI_files_Missouri_Missouri.bngl +- SI_files_Montana_Montana.bngl +- SI_files_Nebraska_Nebraska.bngl +- SI_files_Nevada_Nevada.bngl +- SI_files_NewHampshire_NewHampshire.bngl +- SI_files_NewJersey_NewJersey.bngl +- SI_files_NewMexico_NewMexico.bngl +- SI_files_NewYork_NewYork.bngl +- SI_files_NorthCarolina_NorthCarolina.bngl +- SI_files_NorthDakota_NorthDakota.bngl +- SI_files_Ohio_Ohio.bngl +- SI_files_Oklahoma_Oklahoma.bngl +- SI_files_Oregon_Oregon.bngl +- SI_files_Pennsylvania_Pennsylvania.bngl +- SI_files_RhodeIsland_RhodeIsland.bngl +- SI_files_SouthCarolina_SouthCarolina.bngl +- SI_files_SouthDakota_SouthDakota.bngl +- SI_files_Tennessee_Tennessee.bngl +- SI_files_Texas_Texas.bngl +- SI_files_Utah_Utah.bngl +- SI_files_Vermont_Vermont.bngl +- SI_files_Virginia_Virginia.bngl +- SI_files_Washington_Washington.bngl +- SI_files_WestVirginia_WestVirginia.bngl +- SI_files_Wisconsin_Wisconsin.bngl +- SI_files_Wyoming_Wyoming.bngl + +## Tags + +covid-19, epidemiology, parameter-estimation, pybionetgen diff --git a/Published/Mallela2021/SI_files_Alabama_Alabama.bngl b/Published/Mallela2021/SI_files_Alabama_Alabama.bngl new file mode 100644 index 00000000..bec9944a --- /dev/null +++ b/Published/Mallela2021/SI_files_Alabama_Alabama.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Alabama +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Alabama +resetConcentrations() +simulate({suffix=>"Alabama",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Alaska_Alaska.bngl b/Published/Mallela2021/SI_files_Alaska_Alaska.bngl new file mode 100644 index 00000000..96843960 --- /dev/null +++ b/Published/Mallela2021/SI_files_Alaska_Alaska.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Alaska +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Alaska +resetConcentrations() +simulate({suffix=>"Alaska",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Arizona_Arizona.bngl b/Published/Mallela2021/SI_files_Arizona_Arizona.bngl new file mode 100644 index 00000000..328eb1e4 --- /dev/null +++ b/Published/Mallela2021/SI_files_Arizona_Arizona.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 62 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Arizona +S0 7278717 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Arizona +resetConcentrations() +simulate({suffix=>"Arizona",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Arkansas_Arkansas.bngl b/Published/Mallela2021/SI_files_Arkansas_Arkansas.bngl new file mode 100644 index 00000000..dc0e28cb --- /dev/null +++ b/Published/Mallela2021/SI_files_Arkansas_Arkansas.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 62 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Arkansas +S0 3017804 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Arkansas +resetConcentrations() +simulate({suffix=>"Arkansas",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_California_California.bngl b/Published/Mallela2021/SI_files_California_California.bngl new file mode 100644 index 00000000..eac7c944 --- /dev/null +++ b/Published/Mallela2021/SI_files_California_California.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 50 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of California +S0 39512223 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in California +resetConcentrations() +simulate({suffix=>"California",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2021/SI_files_Colorado_Colorado.bngl b/Published/Mallela2021/SI_files_Colorado_Colorado.bngl new file mode 100644 index 00000000..9ede68cd --- /dev/null +++ b/Published/Mallela2021/SI_files_Colorado_Colorado.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 57 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Colorado +S0 5758736 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Colorado +resetConcentrations() +simulate({suffix=>"Colorado",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2021/SI_files_Connecticut_Connecticut.bngl b/Published/Mallela2021/SI_files_Connecticut_Connecticut.bngl new file mode 100644 index 00000000..743572c7 --- /dev/null +++ b/Published/Mallela2021/SI_files_Connecticut_Connecticut.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 60 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Connecticut +S0 3565287 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Connecticut +resetConcentrations() +simulate({suffix=>"Connecticut",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2021/SI_files_Delaware_Delaware.bngl b/Published/Mallela2021/SI_files_Delaware_Delaware.bngl new file mode 100644 index 00000000..e588f963 --- /dev/null +++ b/Published/Mallela2021/SI_files_Delaware_Delaware.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 67 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Delaware +S0 973764 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Delaware +resetConcentrations() +simulate({suffix=>"Delaware",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2021/SI_files_Florida_Florida.bngl b/Published/Mallela2021/SI_files_Florida_Florida.bngl new file mode 100644 index 00000000..7e2745b1 --- /dev/null +++ b/Published/Mallela2021/SI_files_Florida_Florida.bngl @@ -0,0 +1,225 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 56 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Florida +S0 21477737 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Florida +resetConcentrations() +simulate({suffix=>"Florida",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2021/SI_files_Georgia_Georgia.bngl b/Published/Mallela2021/SI_files_Georgia_Georgia.bngl new file mode 100644 index 00000000..156e08c7 --- /dev/null +++ b/Published/Mallela2021/SI_files_Georgia_Georgia.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 58 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Georgia +S0 10617423 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Georgia +resetConcentrations() +simulate({suffix=>"Georgia",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Hawaii_Hawaii.bngl b/Published/Mallela2021/SI_files_Hawaii_Hawaii.bngl new file mode 100644 index 00000000..0d25fcd2 --- /dev/null +++ b/Published/Mallela2021/SI_files_Hawaii_Hawaii.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 69 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Hawaii +S0 1415872 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Hawaii +resetConcentrations() +simulate({suffix=>"Hawaii",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Idaho_Idaho.bngl b/Published/Mallela2021/SI_files_Idaho_Idaho.bngl new file mode 100644 index 00000000..ad93af77 --- /dev/null +++ b/Published/Mallela2021/SI_files_Idaho_Idaho.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 66 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Idaho +S0 1787065 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Idaho +resetConcentrations() +simulate({suffix=>"Idaho",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Illinois_Illinois.bngl b/Published/Mallela2021/SI_files_Illinois_Illinois.bngl new file mode 100644 index 00000000..87bda942 --- /dev/null +++ b/Published/Mallela2021/SI_files_Illinois_Illinois.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 57 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Illinois +S0 12671821 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Illinois +resetConcentrations() +simulate({suffix=>"Illinois",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2021/SI_files_Indiana_Indiana.bngl b/Published/Mallela2021/SI_files_Indiana_Indiana.bngl new file mode 100644 index 00000000..d60fb161 --- /dev/null +++ b/Published/Mallela2021/SI_files_Indiana_Indiana.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 61 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Indiana +S0 6733219 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Indiana +resetConcentrations() +simulate({suffix=>"Indiana",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Iowa_Iowa.bngl b/Published/Mallela2021/SI_files_Iowa_Iowa.bngl new file mode 100644 index 00000000..30d3b00c --- /dev/null +++ b/Published/Mallela2021/SI_files_Iowa_Iowa.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 66 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Iowa +S0 3155070 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Iowa +resetConcentrations() +simulate({suffix=>"Iowa",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Kansas_Kansas.bngl b/Published/Mallela2021/SI_files_Kansas_Kansas.bngl new file mode 100644 index 00000000..3422a32d --- /dev/null +++ b/Published/Mallela2021/SI_files_Kansas_Kansas.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 66 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Kansas +S0 2913314 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Kansas +resetConcentrations() +simulate({suffix=>"Kansas",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Kentucky_Kentucky.bngl b/Published/Mallela2021/SI_files_Kentucky_Kentucky.bngl new file mode 100644 index 00000000..fd98e7d7 --- /dev/null +++ b/Published/Mallela2021/SI_files_Kentucky_Kentucky.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 65 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Kentucky +S0 4467673 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Kentucky +resetConcentrations() +simulate({suffix=>"Kentucky",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2021/SI_files_Louisiana_Louisiana.bngl b/Published/Mallela2021/SI_files_Louisiana_Louisiana.bngl new file mode 100644 index 00000000..a7116476 --- /dev/null +++ b/Published/Mallela2021/SI_files_Louisiana_Louisiana.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 57 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Louisiana +S0 4648794 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Louisiana +resetConcentrations() +simulate({suffix=>"Louisiana",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Maine_Maine.bngl b/Published/Mallela2021/SI_files_Maine_Maine.bngl new file mode 100644 index 00000000..73b47d14 --- /dev/null +++ b/Published/Mallela2021/SI_files_Maine_Maine.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 67 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Maine +S0 1344212 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Maine +resetConcentrations() +simulate({suffix=>"Maine",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Maryland_Maryland.bngl b/Published/Mallela2021/SI_files_Maryland_Maryland.bngl new file mode 100644 index 00000000..4c3ef72c --- /dev/null +++ b/Published/Mallela2021/SI_files_Maryland_Maryland.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 61 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Maryland +S0 6045680 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Maryland +resetConcentrations() +simulate({suffix=>"Maryland",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Massachusetts_Massachusetts.bngl b/Published/Mallela2021/SI_files_Massachusetts_Massachusetts.bngl new file mode 100644 index 00000000..46543a87 --- /dev/null +++ b/Published/Mallela2021/SI_files_Massachusetts_Massachusetts.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 56 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Massachusetts +S0 6892503 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Massachusetts +resetConcentrations() +simulate({suffix=>"Massachusetts",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Michigan_Michigan.bngl b/Published/Mallela2021/SI_files_Michigan_Michigan.bngl new file mode 100644 index 00000000..ac426cf5 --- /dev/null +++ b/Published/Mallela2021/SI_files_Michigan_Michigan.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 58 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Michigan +S0 9986857 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Michigan +resetConcentrations() +simulate({suffix=>"Michigan",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2021/SI_files_Minnesota_Minnesota.bngl b/Published/Mallela2021/SI_files_Minnesota_Minnesota.bngl new file mode 100644 index 00000000..d6ecedfd --- /dev/null +++ b/Published/Mallela2021/SI_files_Minnesota_Minnesota.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 62 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Minnesota +S0 5639632 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Minnesota +resetConcentrations() +simulate({suffix=>"Minnesota",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Mississippi_Mississippi.bngl b/Published/Mallela2021/SI_files_Mississippi_Mississippi.bngl new file mode 100644 index 00000000..6313ecdf --- /dev/null +++ b/Published/Mallela2021/SI_files_Mississippi_Mississippi.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 61 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Mississippi +S0 2976149 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Mississippi +resetConcentrations() +simulate({suffix=>"Mississippi",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Missouri_Missouri.bngl b/Published/Mallela2021/SI_files_Missouri_Missouri.bngl new file mode 100644 index 00000000..93153e08 --- /dev/null +++ b/Published/Mallela2021/SI_files_Missouri_Missouri.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Missouri +S0 6137428 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Missouri +resetConcentrations() +simulate({suffix=>"Missouri",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Montana_Montana.bngl b/Published/Mallela2021/SI_files_Montana_Montana.bngl new file mode 100644 index 00000000..668badd7 --- /dev/null +++ b/Published/Mallela2021/SI_files_Montana_Montana.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 71 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Montana +S0 1068778 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Montana +resetConcentrations() +simulate({suffix=>"Montana",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Nebraska_Nebraska.bngl b/Published/Mallela2021/SI_files_Nebraska_Nebraska.bngl new file mode 100644 index 00000000..3f14fd0d --- /dev/null +++ b/Published/Mallela2021/SI_files_Nebraska_Nebraska.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 71 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Nebraska +S0 1934408 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Nebraska +resetConcentrations() +simulate({suffix=>"Nebraska",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Nevada_Nevada.bngl b/Published/Mallela2021/SI_files_Nevada_Nevada.bngl new file mode 100644 index 00000000..3026d45d --- /dev/null +++ b/Published/Mallela2021/SI_files_Nevada_Nevada.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 62 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Nevada +S0 3080156 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Nevada +resetConcentrations() +simulate({suffix=>"Nevada",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_NewHampshire_NewHampshire.bngl b/Published/Mallela2021/SI_files_NewHampshire_NewHampshire.bngl new file mode 100644 index 00000000..1429fa0a --- /dev/null +++ b/Published/Mallela2021/SI_files_NewHampshire_NewHampshire.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 67 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of NewHampshire +S0 1359711 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in NewHampshire +resetConcentrations() +simulate({suffix=>"NewHampshire",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_NewJersey_NewJersey.bngl b/Published/Mallela2021/SI_files_NewJersey_NewJersey.bngl new file mode 100644 index 00000000..e963c79d --- /dev/null +++ b/Published/Mallela2021/SI_files_NewJersey_NewJersey.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 56 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of NewJersey +S0 8882190 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in NewJersey +resetConcentrations() +simulate({suffix=>"NewJersey",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_NewMexico_NewMexico.bngl b/Published/Mallela2021/SI_files_NewMexico_NewMexico.bngl new file mode 100644 index 00000000..9bfb146a --- /dev/null +++ b/Published/Mallela2021/SI_files_NewMexico_NewMexico.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 67 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of NewMexico +S0 2096829 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in NewMexico +resetConcentrations() +simulate({suffix=>"NewMexico",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2021/SI_files_NewYork_NewYork.bngl b/Published/Mallela2021/SI_files_NewYork_NewYork.bngl new file mode 100644 index 00000000..739e3671 --- /dev/null +++ b/Published/Mallela2021/SI_files_NewYork_NewYork.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 50 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of NewYork +S0 19453561 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in NewYork +resetConcentrations() +simulate({suffix=>"NewYork",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_NorthCarolina_NorthCarolina.bngl b/Published/Mallela2021/SI_files_NorthCarolina_NorthCarolina.bngl new file mode 100644 index 00000000..ccb73a56 --- /dev/null +++ b/Published/Mallela2021/SI_files_NorthCarolina_NorthCarolina.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 61 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of NorthCarolina +S0 10488084 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in NorthCarolina +resetConcentrations() +simulate({suffix=>"NorthCarolina",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_NorthDakota_NorthDakota.bngl b/Published/Mallela2021/SI_files_NorthDakota_NorthDakota.bngl new file mode 100644 index 00000000..fb782171 --- /dev/null +++ b/Published/Mallela2021/SI_files_NorthDakota_NorthDakota.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 75 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of NorthDakota +S0 762062 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in NorthDakota +resetConcentrations() +simulate({suffix=>"NorthDakota",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2021/SI_files_Ohio_Ohio.bngl b/Published/Mallela2021/SI_files_Ohio_Ohio.bngl new file mode 100644 index 00000000..fa9d7417 --- /dev/null +++ b/Published/Mallela2021/SI_files_Ohio_Ohio.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 60 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Ohio +S0 11689100 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Ohio +resetConcentrations() +simulate({suffix=>"Ohio",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2021/SI_files_Oklahoma_Oklahoma.bngl b/Published/Mallela2021/SI_files_Oklahoma_Oklahoma.bngl new file mode 100644 index 00000000..ef194004 --- /dev/null +++ b/Published/Mallela2021/SI_files_Oklahoma_Oklahoma.bngl @@ -0,0 +1,225 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 65 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Oklahoma +S0 3956971 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Oklahoma +resetConcentrations() +simulate({suffix=>"Oklahoma",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2021/SI_files_Oregon_Oregon.bngl b/Published/Mallela2021/SI_files_Oregon_Oregon.bngl new file mode 100644 index 00000000..2133bded --- /dev/null +++ b/Published/Mallela2021/SI_files_Oregon_Oregon.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Oregon +S0 4217737 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Oregon +resetConcentrations() +simulate({suffix=>"Oregon",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Pennsylvania_Pennsylvania.bngl b/Published/Mallela2021/SI_files_Pennsylvania_Pennsylvania.bngl new file mode 100644 index 00000000..41a3ad4d --- /dev/null +++ b/Published/Mallela2021/SI_files_Pennsylvania_Pennsylvania.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 59 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Pennsylvania +S0 12801989 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Pennsylvania +resetConcentrations() +simulate({suffix=>"Pennsylvania",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_RhodeIsland_RhodeIsland.bngl b/Published/Mallela2021/SI_files_RhodeIsland_RhodeIsland.bngl new file mode 100644 index 00000000..599e4ac9 --- /dev/null +++ b/Published/Mallela2021/SI_files_RhodeIsland_RhodeIsland.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 66 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of RhodeIsland +S0 1059361 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in RhodeIsland +resetConcentrations() +simulate({suffix=>"RhodeIsland",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_SouthCarolina_SouthCarolina.bngl b/Published/Mallela2021/SI_files_SouthCarolina_SouthCarolina.bngl new file mode 100644 index 00000000..2b5a4761 --- /dev/null +++ b/Published/Mallela2021/SI_files_SouthCarolina_SouthCarolina.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 62 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of SouthCarolina +S0 5148714 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in SouthCarolina +resetConcentrations() +simulate({suffix=>"SouthCarolina",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_SouthDakota_SouthDakota.bngl b/Published/Mallela2021/SI_files_SouthDakota_SouthDakota.bngl new file mode 100644 index 00000000..f66ef1c3 --- /dev/null +++ b/Published/Mallela2021/SI_files_SouthDakota_SouthDakota.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 74 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of SouthDakota +S0 884659 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in SouthDakota +resetConcentrations() +simulate({suffix=>"SouthDakota",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Tennessee_Tennessee.bngl b/Published/Mallela2021/SI_files_Tennessee_Tennessee.bngl new file mode 100644 index 00000000..4f0ea107 --- /dev/null +++ b/Published/Mallela2021/SI_files_Tennessee_Tennessee.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 59 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Tennessee +S0 6829174 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Tennessee +resetConcentrations() +simulate({suffix=>"Tennessee",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Texas_Texas.bngl b/Published/Mallela2021/SI_files_Texas_Texas.bngl new file mode 100644 index 00000000..9ae1f5e5 --- /dev/null +++ b/Published/Mallela2021/SI_files_Texas_Texas.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 58 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Texas +S0 28995881 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Texas +resetConcentrations() +simulate({suffix=>"Texas",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Utah_Utah.bngl b/Published/Mallela2021/SI_files_Utah_Utah.bngl new file mode 100644 index 00000000..8560f4cf --- /dev/null +++ b/Published/Mallela2021/SI_files_Utah_Utah.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 62 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Utah +S0 3205958 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Utah +resetConcentrations() +simulate({suffix=>"Utah",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Vermont_Vermont.bngl b/Published/Mallela2021/SI_files_Vermont_Vermont.bngl new file mode 100644 index 00000000..320ad609 --- /dev/null +++ b/Published/Mallela2021/SI_files_Vermont_Vermont.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 67 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Vermont +S0 623989 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Vermont +resetConcentrations() +simulate({suffix=>"Vermont",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Virginia_Virginia.bngl b/Published/Mallela2021/SI_files_Virginia_Virginia.bngl new file mode 100644 index 00000000..356737f8 --- /dev/null +++ b/Published/Mallela2021/SI_files_Virginia_Virginia.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 61 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Virginia +S0 8535519 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Virginia +resetConcentrations() +simulate({suffix=>"Virginia",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Washington_Washington.bngl b/Published/Mallela2021/SI_files_Washington_Washington.bngl new file mode 100644 index 00000000..7a5a2625 --- /dev/null +++ b/Published/Mallela2021/SI_files_Washington_Washington.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 49 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Washington +S0 7614893 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Washington +resetConcentrations() +simulate({suffix=>"Washington",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_WestVirginia_WestVirginia.bngl b/Published/Mallela2021/SI_files_WestVirginia_WestVirginia.bngl new file mode 100644 index 00000000..0c48ae5d --- /dev/null +++ b/Published/Mallela2021/SI_files_WestVirginia_WestVirginia.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 72 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of WestVirginia +S0 1792147 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in WestVirginia +resetConcentrations() +simulate({suffix=>"WestVirginia",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/SI_files_Wisconsin_Wisconsin.bngl b/Published/Mallela2021/SI_files_Wisconsin_Wisconsin.bngl new file mode 100644 index 00000000..e46d9f43 --- /dev/null +++ b/Published/Mallela2021/SI_files_Wisconsin_Wisconsin.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 59 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Wisconsin +S0 5822534 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Wisconsin +resetConcentrations() +simulate({suffix=>"Wisconsin",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2021/SI_files_Wyoming_Wyoming.bngl b/Published/Mallela2021/SI_files_Wyoming_Wyoming.bngl new file mode 100644 index 00000000..e8b64ecd --- /dev/null +++ b/Published/Mallela2021/SI_files_Wyoming_Wyoming.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 75 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Wyoming +S0 578759 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Wyoming +resetConcentrations() +simulate({suffix=>"Wyoming",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021/metadata.yaml b/Published/Mallela2021/metadata.yaml new file mode 100644 index 00000000..9c5459d6 --- /dev/null +++ b/Published/Mallela2021/metadata.yaml @@ -0,0 +1,25 @@ +id: "Mallela2021_States" +name: "Mallela 2021 - COVID-19 State-Level Models" +description: "Parameter-fit COVID-19 epidemiological models for all 50 US states." +tags: ["covid-19", "epidemiology", "parameter-estimation", "pybionetgen"] +category: "epidemiology" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_repository: "bionetgen-web-simulator" +collection: + type: "geographic-variants" + parent_model: "Mallela2021_template" + variant_key: "us_state" + count: 50 +playground: + visible: false + gallery_category: "epidemiology" + featured: false + difficulty: "advanced" diff --git a/Published/Mallela2021_Cities/Beantown_m11.bngl b/Published/Mallela2021_Cities/Beantown_m11.bngl new file mode 100644 index 00000000..6ad3099a --- /dev/null +++ b/Published/Mallela2021_Cities/Beantown_m11.bngl @@ -0,0 +1,204 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## + +################################## +# start time of regional epidemic +t0 t0__FREE # d +t_delta t_delta__FREE +# start time of 1st social-distancing period +sigma t0 + t_delta # d (>t0) +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Boston-MSA +S0 4873019 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters + +begin molecule types +counter() +S(state~M~P) +E1(state~M~P~Q) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +fDCs() +end molecule types + +begin seed species +counter() 1 +S(state~M) S0 +I(state~M) I0 +fDCs() 0 +end seed species + +begin observables +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQ I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules t counter() +Molecules fDCs_Cum fDCs() +end observables + +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>sigma && t<200,lambda0, 0) +P()=if(t>sigma && t<200,p0,0) +kQfunc()=if(t>=t0,kQ,0) +jQfunc()=if(t>=t0,jQ,0) +cIfunc()=if(t>=t0,cI,0) +phiM()=if(t>=t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_symptomatic_cases()=IM+IP+IQ+H+(1-fA)*R+D +CumNum_detected_cases_Cum()=fD*(IM+IP+IQ+H+(1-fA)*R+D) +CumNum_all_cases()=fD*(IM+IP+IQ+AM+AP+AQ+H+R+D) +# first-order Taylor series approximation of C(t)-C(t-delta_t) +# = delta_t*accumulation_rate +ApproxNewCasesDaily()=delta_t*((1-fA)*kL*nE5_MP) +ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) +end functions + +begin reaction rules +# cumulative +0->fDCs() fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model + +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# writeMfile() +# simulate the regional epidemic in Boston-MSA +resetConcentrations() +simulate({suffix=>"m11",method=>"ode",t_start=>0,t_end=>186,n_steps=>186,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021_Cities/BigApple_m1.bngl b/Published/Mallela2021_Cities/BigApple_m1.bngl new file mode 100644 index 00000000..66661b63 --- /dev/null +++ b/Published/Mallela2021_Cities/BigApple_m1.bngl @@ -0,0 +1,212 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## + +################################## +# start time of regional epidemic +t0 t0__FREE # d +t_delta t_delta__FREE +# start time of 1st social-distancing period +sigma t0 + t_delta # d (>t0) +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# start time of 2nd social-distancing period +t_delta2 t_delta2__FREE +tau1 t0 + t_delta + t_delta2 # d (>sigma) +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of NY-MSA +S0 19216182 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +counter() +S(state~M~P) +E1(state~M~P~Q) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +fDCs() +end molecule types + +begin seed species +counter() 1 +S(state~M) S0 +I(state~M) I0 +fDCs() 0 +end seed species + +begin observables +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQ I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules t counter() +Molecules fDCs_Cum fDCs() +end observables + +begin functions +U()=if(t>=t0,1,0) +Lambda()=if(t>=sigma && t=tau1 && t<200,lambda1,\ + 0)) +P()=if(t>=sigma && t=tau1 && t<200,p1,\ + 0)) +kQfunc()=if(t>=t0,kQ,0) +jQfunc()=if(t>=t0,jQ,0) +cIfunc()=if(t>=t0,cI,0) +phiM()=if(t>=t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_symptomatic_cases()=IM+IP+IQ+H+(1-fA)*R+D +CumNum_detected_cases_Cum()=fD*(IM+IP+IQ+H+(1-fA)*R+D) +CumNum_all_cases()=fD*(IM+IP+IQ+AM+AP+AQ+H+R+D) +# first-order Taylor series approximation of C(t)-C(t-delta_t) +# = delta_t*accumulation_rate +ApproxNewCasesDaily()=delta_t*((1-fA)*kL*nE5_MP) +ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) +end functions + +begin reaction rules +# cumulative +0->fDCs() fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +end reaction rules +end model + +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# writeMfile() +# simulate the regional epidemic in NY-MSA +resetConcentrations() +simulate({suffix=>"m1",method=>"ode",t_start=>0,t_end=>186,n_steps=>186,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021_Cities/BigD_m4.bngl b/Published/Mallela2021_Cities/BigD_m4.bngl new file mode 100644 index 00000000..7cfc18a9 --- /dev/null +++ b/Published/Mallela2021_Cities/BigD_m4.bngl @@ -0,0 +1,212 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################# + +################################## +# start time of regional epidemic +t0 t0__FREE # d +t_delta t_delta__FREE +# start time of 1st social-distancing period +sigma t0 + t_delta # d (>t0) +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# start time of 2nd social-distancing period +t_delta2 t_delta2__FREE +tau1 t0 + t_delta + t_delta2 # d (>sigma) +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of DFW-MSA +S0 7573136 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters + +begin molecule types +counter() +S(state~M~P) +E1(state~M~P~Q) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +fDCs() +end molecule types + +begin seed species +counter() 1 +S(state~M) S0 +I(state~M) I0 +fDCs() 0 +end seed species + +begin observables +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQ I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules t counter() +Molecules fDCs_Cum fDCs() +end observables + +begin functions +U()=if(t>=t0,1,0) +Lambda()=if(t>=sigma && t=tau1 && t<200,lambda1,\ + 0)) +P()=if(t>=sigma && t=tau1 && t<200,p1,\ + 0)) +kQfunc()=if(t>=t0,kQ,0) +jQfunc()=if(t>=t0,jQ,0) +cIfunc()=if(t>=t0,cI,0) +phiM()=if(t>=t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_symptomatic_cases()=IM+IP+IQ+H+(1-fA)*R+D +CumNum_detected_cases_Cum()=fD*(IM+IP+IQ+H+(1-fA)*R+D) +CumNum_all_cases()=fD*(IM+IP+IQ+AM+AP+AQ+H+R+D) +# first-order Taylor series approximation of C(t)-C(t-delta_t) +# = delta_t*accumulation_rate +ApproxNewCasesDaily()=delta_t*((1-fA)*kL*nE5_MP) +ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) +end functions +begin reaction rules +# cumulative +0->fDCs() fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +end reaction rules +end model + +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# writeMfile() +# simulate the regional epidemic in DFW-MSA +resetConcentrations() +simulate({suffix=>"m4",method=>"ode",t_start=>0,t_end=>186,n_steps=>186,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021_Cities/BrotherlyLove_m8.bngl b/Published/Mallela2021_Cities/BrotherlyLove_m8.bngl new file mode 100644 index 00000000..6819f0e7 --- /dev/null +++ b/Published/Mallela2021_Cities/BrotherlyLove_m8.bngl @@ -0,0 +1,204 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## + +################################## +# start time of regional epidemic +t0 t0__FREE # d +t_delta t_delta__FREE +# start time of 1st social-distancing period +sigma t0 + t_delta # d (>t0) +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Philadelphia-MSA +S0 6102434 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters + +begin molecule types +counter() +S(state~M~P) +E1(state~M~P~Q) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +fDCs() +end molecule types + +begin seed species +counter() 1 +S(state~M) S0 +I(state~M) I0 +fDCs() 0 +end seed species + +begin observables +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQ I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules t counter() +Molecules fDCs_Cum fDCs() +end observables + +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>sigma && t<200,lambda0, 0) +P()=if(t>sigma && t<200,p0,0) +kQfunc()=if(t>=t0,kQ,0) +jQfunc()=if(t>=t0,jQ,0) +cIfunc()=if(t>=t0,cI,0) +phiM()=if(t>=t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_symptomatic_cases()=IM+IP+IQ+H+(1-fA)*R+D +CumNum_detected_cases_Cum()=fD*(IM+IP+IQ+H+(1-fA)*R+D) +CumNum_all_cases()=fD*(IM+IP+IQ+AM+AP+AQ+H+R+D) +# first-order Taylor series approximation of C(t)-C(t-delta_t) +# = delta_t*accumulation_rate +ApproxNewCasesDaily()=delta_t*((1-fA)*kL*nE5_MP) +ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) +end functions + +begin reaction rules +# cumulative +0->fDCs() fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model + +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# writeMfile() +# simulate the regional epidemic in Philadelphia-MSA +resetConcentrations() +simulate({suffix=>"m8",method=>"ode",t_start=>0,t_end=>186,n_steps=>186,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021_Cities/DC_m6.bngl b/Published/Mallela2021_Cities/DC_m6.bngl new file mode 100644 index 00000000..e73ae6b1 --- /dev/null +++ b/Published/Mallela2021_Cities/DC_m6.bngl @@ -0,0 +1,212 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## + +################################## +# start time of regional epidemic +t0 t0__FREE # d +t_delta t_delta__FREE +# start time of 1st social-distancing period +sigma t0 + t_delta # d (>t0) +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# start time of 2nd social-distancing period +t_delta2 t_delta2__FREE +tau1 t0 + t_delta + t_delta2 # d (>sigma) +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of DC-MSA +S0 6280487 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters + +begin molecule types +counter() +S(state~M~P) +E1(state~M~P~Q) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +fDCs() +end molecule types + +begin seed species +counter() 1 +S(state~M) S0 +I(state~M) I0 +fDCs() 0 +end seed species + +begin observables +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQ I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules t counter() +Molecules fDCs_Cum fDCs() +end observables + +begin functions +U()=if(t>=t0,1,0) +Lambda()=if(t>=sigma && t=tau1 && t<200,lambda1,\ + 0)) +P()=if(t>=sigma && t=tau1 && t<200,p1,\ + 0)) +kQfunc()=if(t>=t0,kQ,0) +jQfunc()=if(t>=t0,jQ,0) +cIfunc()=if(t>=t0,cI,0) +phiM()=if(t>=t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_symptomatic_cases()=IM+IP+IQ+H+(1-fA)*R+D +CumNum_detected_cases_Cum()=fD*(IM+IP+IQ+H+(1-fA)*R+D) +CumNum_all_cases()=fD*(IM+IP+IQ+AM+AP+AQ+H+R+D) +# first-order Taylor series approximation of C(t)-C(t-delta_t) +# = delta_t*accumulation_rate +ApproxNewCasesDaily()=delta_t*((1-fA)*kL*nE5_MP) +ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) +end functions +begin reaction rules +# cumulative +0->fDCs() fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +end reaction rules +end model + +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# writeMfile() +# simulate the regional epidemic in DC-MSA +resetConcentrations() +simulate({suffix=>"m6",method=>"ode",t_start=>0,t_end=>186,n_steps=>186,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021_Cities/EmeraldCity_m15.bngl b/Published/Mallela2021_Cities/EmeraldCity_m15.bngl new file mode 100644 index 00000000..9929be8b --- /dev/null +++ b/Published/Mallela2021_Cities/EmeraldCity_m15.bngl @@ -0,0 +1,212 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # three distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## + +################################## +# start time of regional epidemic +t0 t0__FREE # d +t_delta t_delta__FREE +# start time of 1st social-distancing period +sigma t0 + t_delta # d (>t0) +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# start time of 2nd social-distancing period +t_delta2 t_delta2__FREE +tau1 t0 + t_delta + t_delta2 # d (>sigma) +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Seattle-MSA +S0 3979845 # intial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters + +begin molecule types +counter() +S(state~M~P) +E1(state~M~P~Q) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +fDCs() +end molecule types + +begin seed species +counter() 1 +S(state~M) S0 +I(state~M) I0 +fDCs() 0 +end seed species + +begin observables +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQ I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules t counter() +Molecules fDCs_Cum fDCs() +end observables + +begin functions +U()=if(t>=t0,1,0) +Lambda()=if(t>=sigma && t=tau1 && t<200,lambda1,\ + 0)) +P()=if(t>=sigma && t=tau1 && t<200,p1,\ + 0)) +kQfunc()=if(t>=t0,kQ,0) +jQfunc()=if(t>=t0,jQ,0) +cIfunc()=if(t>=t0,cI,0) +phiM()=if(t>=t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_symptomatic_cases()=IM+IP+IQ+H+(1-fA)*R+D +CumNum_detected_cases_Cum()=fD*(IM+IP+IQ+H+(1-fA)*R+D) +CumNum_all_cases()=fD*(IM+IP+IQ+AM+AP+AQ+H+R+D) +# first-order Taylor series approximation of C(t)-C(t-delta_t) +# = delta_t*accumulation_rate +ApproxNewCasesDaily()=delta_t*((1-fA)*kL*nE5_MP) +ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) +end functions +begin reaction rules +# cumulative +0->fDCs() fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +end reaction rules +end model + +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# writeMfile() +# simulate the regional epidemic in Seattle-MSA +resetConcentrations() +simulate({suffix=>"m15",method=>"ode",t_start=>0,t_end=>186,n_steps=>186,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021_Cities/Frisco_m12.bngl b/Published/Mallela2021_Cities/Frisco_m12.bngl new file mode 100644 index 00000000..4c1fba05 --- /dev/null +++ b/Published/Mallela2021_Cities/Frisco_m12.bngl @@ -0,0 +1,204 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## + +################################## +# start time of regional epidemic +t0 t0__FREE # d +t_delta t_delta__FREE +# start time of 1st social-distancing period +sigma t0 + t_delta # d (>t0) +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of SanFrancisco-MSA +S0 4731803 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters + +begin molecule types +counter() +S(state~M~P) +E1(state~M~P~Q) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +fDCs() +end molecule types + +begin seed species +counter() 1 +S(state~M) S0 +I(state~M) I0 +fDCs() 0 +end seed species + +begin observables +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQ I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules t counter() +Molecules fDCs_Cum fDCs() +end observables + +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>sigma && t<200,lambda0, 0) +P()=if(t>sigma && t<200,p0,0) +kQfunc()=if(t>=t0,kQ,0) +jQfunc()=if(t>=t0,jQ,0) +cIfunc()=if(t>=t0,cI,0) +phiM()=if(t>=t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_symptomatic_cases()=IM+IP+IQ+H+(1-fA)*R+D +CumNum_detected_cases_Cum()=fD*(IM+IP+IQ+H+(1-fA)*R+D) +CumNum_all_cases()=fD*(IM+IP+IQ+AM+AP+AQ+H+R+D) +# first-order Taylor series approximation of C(t)-C(t-delta_t) +# = delta_t*accumulation_rate +ApproxNewCasesDaily()=delta_t*((1-fA)*kL*nE5_MP) +ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) +end functions + +begin reaction rules +# cumulative +0->fDCs() fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model + +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# writeMfile() +# simulate the regional epidemic in SanFrancisco-MSA +resetConcentrations() +simulate({suffix=>"m12",method=>"ode",t_start=>0,t_end=>186,n_steps=>186,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021_Cities/HTown_m5.bngl b/Published/Mallela2021_Cities/HTown_m5.bngl new file mode 100644 index 00000000..3af8f47c --- /dev/null +++ b/Published/Mallela2021_Cities/HTown_m5.bngl @@ -0,0 +1,212 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # three distinct periods of social distancing +################################# +# Table 1: adjustable parameters # +################################## + +################################## +# start time of regional epidemic +t0 t0__FREE # d +t_delta t_delta__FREE +# start time of 1st social-distancing period +sigma t0 + t_delta # d (>t0) +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# start time of 2nd social-distancing period +t_delta2 t_delta2__FREE +tau1 t0 + t_delta + t_delta2 # d (>sigma) +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Houston-MSA +S0 7066141 # intial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters + +begin molecule types +counter() +S(state~M~P) +E1(state~M~P~Q) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +fDCs() +end molecule types + +begin seed species +counter() 1 +S(state~M) S0 +I(state~M) I0 +fDCs() 0 +end seed species + +begin observables +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQ I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules t counter() +Molecules fDCs_Cum fDCs() +end observables + +begin functions +U()=if(t>=t0,1,0) +Lambda()=if(t>=sigma && t=tau1 && t<200,lambda1,\ + 0)) +P()=if(t>=sigma && t=tau1 && t<200,p1,\ + 0)) +kQfunc()=if(t>=t0,kQ,0) +jQfunc()=if(t>=t0,jQ,0) +cIfunc()=if(t>=t0,cI,0) +phiM()=if(t>=t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_symptomatic_cases()=IM+IP+IQ+H+(1-fA)*R+D +CumNum_detected_cases_Cum()=fD*(IM+IP+IQ+H+(1-fA)*R+D) +CumNum_all_cases()=fD*(IM+IP+IQ+AM+AP+AQ+H+R+D) +# first-order Taylor series approximation of C(t)-C(t-delta_t) +# = delta_t*accumulation_rate +ApproxNewCasesDaily()=delta_t*((1-fA)*kL*nE5_MP) +ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) +end functions +begin reaction rules +# cumulative +0->fDCs() fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +end reaction rules +end model + +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# writeMfile() +# simulate the regional epidemic in Houston-MSA +resetConcentrations() +simulate({suffix=>"m5",method=>"ode",t_start=>0,t_end=>186,n_steps=>186,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021_Cities/Hotlanta_m9.bngl b/Published/Mallela2021_Cities/Hotlanta_m9.bngl new file mode 100644 index 00000000..4bac6529 --- /dev/null +++ b/Published/Mallela2021_Cities/Hotlanta_m9.bngl @@ -0,0 +1,212 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## + +################################## +# start time of regional epidemic +t0 t0__FREE # d +t_delta t_delta__FREE +# start time of 1st social-distancing period +sigma t0 + t_delta # d (>t0) +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# start time of 2nd social-distancing period +t_delta2 t_delta2__FREE +tau1 t0 + t_delta + t_delta2 # d (>sigma) +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Atlanta-MSA +S0 6020364 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters + +begin molecule types +counter() +S(state~M~P) +E1(state~M~P~Q) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +fDCs() +end molecule types + +begin seed species +counter() 1 +S(state~M) S0 +I(state~M) I0 +fDCs() 0 +end seed species + +begin observables +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQ I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules t counter() +Molecules fDCs_Cum fDCs() +end observables + +begin functions +U()=if(t>=t0,1,0) +Lambda()=if(t>=sigma && t=tau1 && t<200,lambda1,\ + 0)) +P()=if(t>=sigma && t=tau1 && t<200,p1,\ + 0)) +kQfunc()=if(t>=t0,kQ,0) +jQfunc()=if(t>=t0,jQ,0) +cIfunc()=if(t>=t0,cI,0) +phiM()=if(t>=t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_symptomatic_cases()=IM+IP+IQ+H+(1-fA)*R+D +CumNum_detected_cases_Cum()=fD*(IM+IP+IQ+H+(1-fA)*R+D) +CumNum_all_cases()=fD*(IM+IP+IQ+AM+AP+AQ+H+R+D) +# first-order Taylor series approximation of C(t)-C(t-delta_t) +# = delta_t*accumulation_rate +ApproxNewCasesDaily()=delta_t*((1-fA)*kL*nE5_MP) +ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) +end functions +begin reaction rules +# cumulative +0->fDCs() fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +end reaction rules +end model + +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# writeMfile() +# simulate the regional epidemic in Atlanta-MSA +resetConcentrations() +simulate({suffix=>"m9",method=>"ode",t_start=>0,t_end=>186,n_steps=>186,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021_Cities/InlandEmpire_m13.bngl b/Published/Mallela2021_Cities/InlandEmpire_m13.bngl new file mode 100644 index 00000000..34e1c0bb --- /dev/null +++ b/Published/Mallela2021_Cities/InlandEmpire_m13.bngl @@ -0,0 +1,204 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## + +################################## +# start time of regional epidemic +t0 t0__FREE # d +t_delta t_delta__FREE +# start time of 1st social-distancing period +sigma t0 + t_delta # d (>t0) +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Riverside-MSA +S0 4650631 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters + +begin molecule types +counter() +S(state~M~P) +E1(state~M~P~Q) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +fDCs() +end molecule types + +begin seed species +counter() 1 +S(state~M) S0 +I(state~M) I0 +fDCs() 0 +end seed species + +begin observables +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQ I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules t counter() +Molecules fDCs_Cum fDCs() +end observables + +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>sigma && t<200,lambda0, 0) +P()=if(t>sigma && t<200,p0,0) +kQfunc()=if(t>=t0,kQ,0) +jQfunc()=if(t>=t0,jQ,0) +cIfunc()=if(t>=t0,cI,0) +phiM()=if(t>=t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_symptomatic_cases()=IM+IP+IQ+H+(1-fA)*R+D +CumNum_detected_cases_Cum()=fD*(IM+IP+IQ+H+(1-fA)*R+D) +CumNum_all_cases()=fD*(IM+IP+IQ+AM+AP+AQ+H+R+D) +# first-order Taylor series approximation of C(t)-C(t-delta_t) +# = delta_t*accumulation_rate +ApproxNewCasesDaily()=delta_t*((1-fA)*kL*nE5_MP) +ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) +end functions + +begin reaction rules +# cumulative +0->fDCs() fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model + +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# writeMfile() +# simulate the regional epidemic in Riverside-MSA +resetConcentrations() +simulate({suffix=>"m13",method=>"ode",t_start=>0,t_end=>186,n_steps=>186,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021_Cities/LaLaLand_m2.bngl b/Published/Mallela2021_Cities/LaLaLand_m2.bngl new file mode 100644 index 00000000..39b23f29 --- /dev/null +++ b/Published/Mallela2021_Cities/LaLaLand_m2.bngl @@ -0,0 +1,204 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## + +################################## +# start time of regional epidemic +t0 t0__FREE # d +t_delta t_delta__FREE +# start time of 1st social-distancing period +sigma t0 + t_delta # d (>t0) +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of LA-MSA +S0 13214799 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters + +begin molecule types +counter() +S(state~M~P) +E1(state~M~P~Q) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +fDCs() +end molecule types + +begin seed species +counter() 1 +S(state~M) S0 +I(state~M) I0 +fDCs() 0 +end seed species + +begin observables +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQ I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules t counter() +Molecules fDCs_Cum fDCs() +end observables + +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>sigma && t<200,lambda0, 0) +P()=if(t>sigma && t<200,p0,0) +kQfunc()=if(t>=t0,kQ,0) +jQfunc()=if(t>=t0,jQ,0) +cIfunc()=if(t>=t0,cI,0) +phiM()=if(t>=t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_symptomatic_cases()=IM+IP+IQ+H+(1-fA)*R+D +CumNum_detected_cases_Cum()=fD*(IM+IP+IQ+H+(1-fA)*R+D) +CumNum_all_cases()=fD*(IM+IP+IQ+AM+AP+AQ+H+R+D) +# first-order Taylor series approximation of C(t)-C(t-delta_t) +# = delta_t*accumulation_rate +ApproxNewCasesDaily()=delta_t*((1-fA)*kL*nE5_MP) +ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) +end functions + +begin reaction rules +# cumulative +0->fDCs() fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model + +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# writeMfile() +# simulate the regional epidemic in Boston-MSA +resetConcentrations() +simulate({suffix=>"m2",method=>"ode",t_start=>0,t_end=>184,n_steps=>184,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021_Cities/MagicCity_m7.bngl b/Published/Mallela2021_Cities/MagicCity_m7.bngl new file mode 100644 index 00000000..95ee23df --- /dev/null +++ b/Published/Mallela2021_Cities/MagicCity_m7.bngl @@ -0,0 +1,212 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # three distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## + +################################## +# start time of regional epidemic +t0 t0__FREE # d +t_delta t_delta__FREE +# start time of 1st social-distancing period +sigma t0 + t_delta # d (>t0) +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# start time of 2nd social-distancing period +t_delta2 t_delta2__FREE +tau1 t0 + t_delta + t_delta2 # d (>sigma) +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Miami-MSA +S0 6166488 # intial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters + +begin molecule types +counter() +S(state~M~P) +E1(state~M~P~Q) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +fDCs() +end molecule types + +begin seed species +counter() 1 +S(state~M) S0 +I(state~M) I0 +fDCs() 0 +end seed species + +begin observables +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQ I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules t counter() +Molecules fDCs_Cum fDCs() +end observables + +begin functions +U()=if(t>=t0,1,0) +Lambda()=if(t>=sigma && t=tau1 && t<200,lambda1,\ + 0)) +P()=if(t>=sigma && t=tau1 && t<200,p1,\ + 0)) +kQfunc()=if(t>=t0,kQ,0) +jQfunc()=if(t>=t0,jQ,0) +cIfunc()=if(t>=t0,cI,0) +phiM()=if(t>=t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_symptomatic_cases()=IM+IP+IQ+H+(1-fA)*R+D +CumNum_detected_cases_Cum()=fD*(IM+IP+IQ+H+(1-fA)*R+D) +CumNum_all_cases()=fD*(IM+IP+IQ+AM+AP+AQ+H+R+D) +# first-order Taylor series approximation of C(t)-C(t-delta_t) +# = delta_t*accumulation_rate +ApproxNewCasesDaily()=delta_t*((1-fA)*kL*nE5_MP) +ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) +end functions +begin reaction rules +# cumulative +0->fDCs() fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +end reaction rules +end model + +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# writeMfile() +# simulate the regional epidemic in Miami-MSA +resetConcentrations() +simulate({suffix=>"m7",method=>"ode",t_start=>0,t_end=>186,n_steps=>186,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021_Cities/MotorCity_m14.bngl b/Published/Mallela2021_Cities/MotorCity_m14.bngl new file mode 100644 index 00000000..0fb97f82 --- /dev/null +++ b/Published/Mallela2021_Cities/MotorCity_m14.bngl @@ -0,0 +1,204 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## + +################################## +# start time of regional epidemic +t0 t0__FREE # d +t_delta t_delta__FREE +# start time of 1st social-distancing period +sigma t0 + t_delta # d (>t0) +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Detroit-MSA +S0 4319629 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters + +begin molecule types +counter() +S(state~M~P) +E1(state~M~P~Q) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +fDCs() +end molecule types + +begin seed species +counter() 1 +S(state~M) S0 +I(state~M) I0 +fDCs() 0 +end seed species + +begin observables +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQ I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules t counter() +Molecules fDCs_Cum fDCs() +end observables + +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>sigma && t<200,lambda0, 0) +P()=if(t>sigma && t<200,p0,0) +kQfunc()=if(t>=t0,kQ,0) +jQfunc()=if(t>=t0,jQ,0) +cIfunc()=if(t>=t0,cI,0) +phiM()=if(t>=t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_symptomatic_cases()=IM+IP+IQ+H+(1-fA)*R+D +CumNum_detected_cases_Cum()=fD*(IM+IP+IQ+H+(1-fA)*R+D) +CumNum_all_cases()=fD*(IM+IP+IQ+AM+AP+AQ+H+R+D) +# first-order Taylor series approximation of C(t)-C(t-delta_t) +# = delta_t*accumulation_rate +ApproxNewCasesDaily()=delta_t*((1-fA)*kL*nE5_MP) +ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) +end functions + +begin reaction rules +# cumulative +0->fDCs() fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model + +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# writeMfile() +# simulate the regional epidemic in Detroit-MSA +resetConcentrations() +simulate({suffix=>"m14",method=>"ode",t_start=>0,t_end=>186,n_steps=>186,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021_Cities/README.md b/Published/Mallela2021_Cities/README.md new file mode 100644 index 00000000..9d321e35 --- /dev/null +++ b/Published/Mallela2021_Cities/README.md @@ -0,0 +1,35 @@ +# Mallela 2021 - COVID-19 City Models + +Parameter-fit COVID-19 epidemiological models for major US cities. + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- Beantown_m11.bngl +- BigApple_m1.bngl +- BigD_m4.bngl +- BrotherlyLove_m8.bngl +- DC_m6.bngl +- EmeraldCity_m15.bngl +- Frisco_m12.bngl +- HTown_m5.bngl +- Hotlanta_m9.bngl +- InlandEmpire_m13.bngl +- LaLaLand_m2.bngl +- MagicCity_m7.bngl +- MotorCity_m14.bngl +- Valley_of_the_Sun_m10.bngl +- WindyCity_m3.bngl + +## Tags + +covid-19, epidemiology, parameter-estimation, pybionetgen diff --git a/Published/Mallela2021_Cities/Valley_of_the_Sun_m10.bngl b/Published/Mallela2021_Cities/Valley_of_the_Sun_m10.bngl new file mode 100644 index 00000000..ae3d7fc7 --- /dev/null +++ b/Published/Mallela2021_Cities/Valley_of_the_Sun_m10.bngl @@ -0,0 +1,212 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # three distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## + +################################## +# start time of regional epidemic +t0 t0__FREE # d +t_delta t_delta__FREE +# start time of 1st social-distancing period +sigma t0 + t_delta # d (>t0) +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# start time of 2nd social-distancing period +t_delta2 t_delta2__FREE +tau1 t0 + t_delta + t_delta2 # d (>sigma) +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Phoenix-MSA +S0 4948203 # intial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters + +begin molecule types +counter() +S(state~M~P) +E1(state~M~P~Q) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +fDCs() +end molecule types + +begin seed species +counter() 1 +S(state~M) S0 +I(state~M) I0 +fDCs() 0 +end seed species + +begin observables +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQ I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules t counter() +Molecules fDCs_Cum fDCs() +end observables + +begin functions +U()=if(t>=t0,1,0) +Lambda()=if(t>=sigma && t=tau1 && t<200,lambda1,\ + 0)) +P()=if(t>=sigma && t=tau1 && t<200,p1,\ + 0)) +kQfunc()=if(t>=t0,kQ,0) +jQfunc()=if(t>=t0,jQ,0) +cIfunc()=if(t>=t0,cI,0) +phiM()=if(t>=t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_symptomatic_cases()=IM+IP+IQ+H+(1-fA)*R+D +CumNum_detected_cases_Cum()=fD*(IM+IP+IQ+H+(1-fA)*R+D) +CumNum_all_cases()=fD*(IM+IP+IQ+AM+AP+AQ+H+R+D) +# first-order Taylor series approximation of C(t)-C(t-delta_t) +# = delta_t*accumulation_rate +ApproxNewCasesDaily()=delta_t*((1-fA)*kL*nE5_MP) +ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) +end functions +begin reaction rules +# cumulative +0->fDCs() fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +end reaction rules +end model +begin actions + +generate_network({overwrite=>1}) +saveConcentrations() +# writeMfile() +# simulate the regional epidemic in Phoenix-MSA +resetConcentrations() +simulate({suffix=>"m10",method=>"ode",t_start=>0,t_end=>186,n_steps=>186,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021_Cities/WindyCity_m3.bngl b/Published/Mallela2021_Cities/WindyCity_m3.bngl new file mode 100644 index 00000000..d38480e6 --- /dev/null +++ b/Published/Mallela2021_Cities/WindyCity_m3.bngl @@ -0,0 +1,212 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## + +################################## +# start time of regional epidemic +t0 t0__FREE # d +t_delta t_delta__FREE +# start time of 1st social-distancing period +sigma t0 + t_delta # d (>t0) +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# start time of 2nd social-distancing period +t_delta2 t_delta2__FREE +tau1 t0 + t_delta + t_delta2 # d (>sigma) +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Chicago-MSA +S0 9458539 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters + +begin molecule types +counter() +S(state~M~P) +E1(state~M~P~Q) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +fDCs() +end molecule types + +begin seed species +counter() 1 +S(state~M) S0 +I(state~M) I0 +fDCs() 0 +end seed species + +begin observables +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQ I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules t counter() +Molecules fDCs_Cum fDCs() +end observables + +begin functions +U()=if(t>=t0,1,0) +Lambda()=if(t>=sigma && t=tau1 && t<200,lambda1,\ + 0)) +P()=if(t>=sigma && t=tau1 && t<200,p1,\ + 0)) +kQfunc()=if(t>=t0,kQ,0) +jQfunc()=if(t>=t0,jQ,0) +cIfunc()=if(t>=t0,cI,0) +phiM()=if(t>=t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_symptomatic_cases()=IM+IP+IQ+H+(1-fA)*R+D +CumNum_detected_cases_Cum()=fD*(IM+IP+IQ+H+(1-fA)*R+D) +CumNum_all_cases()=fD*(IM+IP+IQ+AM+AP+AQ+H+R+D) +# first-order Taylor series approximation of C(t)-C(t-delta_t) +# = delta_t*accumulation_rate +ApproxNewCasesDaily()=delta_t*((1-fA)*kL*nE5_MP) +ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) +end functions +begin reaction rules +# cumulative +0->fDCs() fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +end reaction rules +end model + +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# writeMfile() +# simulate the regional epidemic in Chicago-MSA +resetConcentrations() +simulate({suffix=>"m3",method=>"ode",t_start=>0,t_end=>186,n_steps=>186,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2021_Cities/metadata.yaml b/Published/Mallela2021_Cities/metadata.yaml new file mode 100644 index 00000000..ecd80da1 --- /dev/null +++ b/Published/Mallela2021_Cities/metadata.yaml @@ -0,0 +1,25 @@ +id: "Mallela2021_Cities" +name: "Mallela 2021 - COVID-19 City Models" +description: "Parameter-fit COVID-19 epidemiological models for major US cities." +tags: ["covid-19", "epidemiology", "parameter-estimation", "pybionetgen"] +category: "epidemiology" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_repository: "bionetgen-web-simulator" +collection: + type: "geographic-variants" + parent_model: "Mallela2021_template" + variant_key: "city" + count: 15 +playground: + visible: false + gallery_category: "epidemiology" + featured: false + difficulty: "advanced" diff --git a/Published/Mallela2022/Alabama/Alabama.bngl b/Published/Mallela2022/Alabama/Alabama.bngl new file mode 100644 index 00000000..bec9944a --- /dev/null +++ b/Published/Mallela2022/Alabama/Alabama.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Alabama +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Alabama +resetConcentrations() +simulate({suffix=>"Alabama",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022/Alabama/README.md b/Published/Mallela2022/Alabama/README.md new file mode 100644 index 00000000..69eba388 --- /dev/null +++ b/Published/Mallela2022/Alabama/README.md @@ -0,0 +1,21 @@ +# Alabama + +reporting period (1 d) + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- Alabama.bngl + +## Tags + +alabama, fdcs, counter, s, e1, e2, e3, e4, e5 diff --git a/Published/Mallela2022/Alabama/metadata.yaml b/Published/Mallela2022/Alabama/metadata.yaml new file mode 100644 index 00000000..bb85e394 --- /dev/null +++ b/Published/Mallela2022/Alabama/metadata.yaml @@ -0,0 +1,22 @@ +id: "Alabama" +name: "Alabama" +description: "reporting period (1 d)" +tags: ["alabama", "fdcs", "counter", "s", "e1", "e2", "e3", "e4", "e5"] +category: "epidemiology" +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-web-simulator" + source_path: "published-models/Mallela_2022/Alabama.bngl" +playground: + visible: false + gallery_category: "epidemiology" + featured: false + difficulty: "advanced" diff --git a/Published/Mallela2022_MSAs/Abilene_TX_Abilene_TX.bngl b/Published/Mallela2022_MSAs/Abilene_TX_Abilene_TX.bngl new file mode 100644 index 00000000..200855c6 --- /dev/null +++ b/Published/Mallela2022_MSAs/Abilene_TX_Abilene_TX.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Abilene, TX +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Abilene, TX +resetConcentrations() +simulate({suffix=>"Abilene, TX",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Akron_OH_Akron_OH.bngl b/Published/Mallela2022_MSAs/Akron_OH_Akron_OH.bngl new file mode 100644 index 00000000..b30ae6f7 --- /dev/null +++ b/Published/Mallela2022_MSAs/Akron_OH_Akron_OH.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Akron, OH +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Akron, OH +resetConcentrations() +simulate({suffix=>"Akron, OH",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Albany-Schenectady-Troy_NY_Albany-Schenectady-Troy_NY.bngl b/Published/Mallela2022_MSAs/Albany-Schenectady-Troy_NY_Albany-Schenectady-Troy_NY.bngl new file mode 100644 index 00000000..34ef6a59 --- /dev/null +++ b/Published/Mallela2022_MSAs/Albany-Schenectady-Troy_NY_Albany-Schenectady-Troy_NY.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Albany-Schenectady-Troy, NY +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Albany-Schenectady-Troy, NY +resetConcentrations() +simulate({suffix=>"Albany-Schenectady-Troy, NY",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Albany_GA_Albany_GA.bngl b/Published/Mallela2022_MSAs/Albany_GA_Albany_GA.bngl new file mode 100644 index 00000000..9d640853 --- /dev/null +++ b/Published/Mallela2022_MSAs/Albany_GA_Albany_GA.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Albany, GA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Albany, GA +resetConcentrations() +simulate({suffix=>"Albany, GA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Albuquerque_NM_Albuquerque_NM.bngl b/Published/Mallela2022_MSAs/Albuquerque_NM_Albuquerque_NM.bngl new file mode 100644 index 00000000..78111f00 --- /dev/null +++ b/Published/Mallela2022_MSAs/Albuquerque_NM_Albuquerque_NM.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Albuquerque, NM +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Albuquerque, NM +resetConcentrations() +simulate({suffix=>"Albuquerque, NM",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Alexandria_LA_Alexandria_LA.bngl b/Published/Mallela2022_MSAs/Alexandria_LA_Alexandria_LA.bngl new file mode 100644 index 00000000..1cbad64f --- /dev/null +++ b/Published/Mallela2022_MSAs/Alexandria_LA_Alexandria_LA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Alexandria, LA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Alexandria, LA +resetConcentrations() +simulate({suffix=>"Alexandria, LA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Allentown-Bethlehem-Easton_PA-NJ_Allentown-Bethlehem-Easton_PA-NJ.bngl b/Published/Mallela2022_MSAs/Allentown-Bethlehem-Easton_PA-NJ_Allentown-Bethlehem-Easton_PA-NJ.bngl new file mode 100644 index 00000000..21168f58 --- /dev/null +++ b/Published/Mallela2022_MSAs/Allentown-Bethlehem-Easton_PA-NJ_Allentown-Bethlehem-Easton_PA-NJ.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Allentown-Bethlehem-Easton, PA-NJ +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Allentown-Bethlehem-Easton, PA-NJ +resetConcentrations() +simulate({suffix=>"Allentown-Bethlehem-Easton, PA-NJ",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Amarillo_TX_Amarillo_TX.bngl b/Published/Mallela2022_MSAs/Amarillo_TX_Amarillo_TX.bngl new file mode 100644 index 00000000..2b0baa0c --- /dev/null +++ b/Published/Mallela2022_MSAs/Amarillo_TX_Amarillo_TX.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Amarillo, TX +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Amarillo, TX +resetConcentrations() +simulate({suffix=>"Amarillo, TX",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Anchorage_AK_Anchorage_AK.bngl b/Published/Mallela2022_MSAs/Anchorage_AK_Anchorage_AK.bngl new file mode 100644 index 00000000..3675d7bb --- /dev/null +++ b/Published/Mallela2022_MSAs/Anchorage_AK_Anchorage_AK.bngl @@ -0,0 +1,225 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Anchorage, AK +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Anchorage, AK +resetConcentrations() +simulate({suffix=>"Anchorage, AK",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Ann_Arbor_MI_Ann_Arbor_MI.bngl b/Published/Mallela2022_MSAs/Ann_Arbor_MI_Ann_Arbor_MI.bngl new file mode 100644 index 00000000..d90eaec0 --- /dev/null +++ b/Published/Mallela2022_MSAs/Ann_Arbor_MI_Ann_Arbor_MI.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Ann Arbor, MI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Ann Arbor, MI +resetConcentrations() +simulate({suffix=>"Ann Arbor, MI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Appleton_WI_Appleton_WI.bngl b/Published/Mallela2022_MSAs/Appleton_WI_Appleton_WI.bngl new file mode 100644 index 00000000..b3db671f --- /dev/null +++ b/Published/Mallela2022_MSAs/Appleton_WI_Appleton_WI.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Appleton, WI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Appleton, WI +resetConcentrations() +simulate({suffix=>"Appleton, WI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Asheville_NC_Asheville_NC.bngl b/Published/Mallela2022_MSAs/Asheville_NC_Asheville_NC.bngl new file mode 100644 index 00000000..a5c6b31f --- /dev/null +++ b/Published/Mallela2022_MSAs/Asheville_NC_Asheville_NC.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Asheville, NC +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Asheville, NC +resetConcentrations() +simulate({suffix=>"Asheville, NC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Athens-Clarke_County_GA_Athens-Clarke_County_GA.bngl b/Published/Mallela2022_MSAs/Athens-Clarke_County_GA_Athens-Clarke_County_GA.bngl new file mode 100644 index 00000000..479ad7c9 --- /dev/null +++ b/Published/Mallela2022_MSAs/Athens-Clarke_County_GA_Athens-Clarke_County_GA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Athens-Clarke County, GA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Athens-Clarke County, GA +resetConcentrations() +simulate({suffix=>"Athens-Clarke County, GA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Atlanta-Sandy_Springs-Alpharetta_GA_Atlanta-Sandy_Springs-Alpharetta_GA.bngl b/Published/Mallela2022_MSAs/Atlanta-Sandy_Springs-Alpharetta_GA_Atlanta-Sandy_Springs-Alpharetta_GA.bngl new file mode 100644 index 00000000..8f33e31e --- /dev/null +++ b/Published/Mallela2022_MSAs/Atlanta-Sandy_Springs-Alpharetta_GA_Atlanta-Sandy_Springs-Alpharetta_GA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Atlanta-Sandy Springs-Alpharetta, GA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Atlanta-Sandy Springs-Alpharetta, GA +resetConcentrations() +simulate({suffix=>"Atlanta-Sandy Springs-Alpharetta, GA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Atlantic_City-Hammonton_NJ_Atlantic_City-Hammonton_NJ.bngl b/Published/Mallela2022_MSAs/Atlantic_City-Hammonton_NJ_Atlantic_City-Hammonton_NJ.bngl new file mode 100644 index 00000000..a82145dd --- /dev/null +++ b/Published/Mallela2022_MSAs/Atlantic_City-Hammonton_NJ_Atlantic_City-Hammonton_NJ.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Atlantic City-Hammonton, NJ +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Atlantic City-Hammonton, NJ +resetConcentrations() +simulate({suffix=>"Atlantic City-Hammonton, NJ",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Auburn-Opelika_AL_Auburn-Opelika_AL.bngl b/Published/Mallela2022_MSAs/Auburn-Opelika_AL_Auburn-Opelika_AL.bngl new file mode 100644 index 00000000..9a6518ee --- /dev/null +++ b/Published/Mallela2022_MSAs/Auburn-Opelika_AL_Auburn-Opelika_AL.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Auburn-Opelika, AL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Auburn-Opelika, AL +resetConcentrations() +simulate({suffix=>"Auburn-Opelika, AL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Augusta-Richmond_County_GA-SC_Augusta-Richmond_County_GA-SC.bngl b/Published/Mallela2022_MSAs/Augusta-Richmond_County_GA-SC_Augusta-Richmond_County_GA-SC.bngl new file mode 100644 index 00000000..24c6b791 --- /dev/null +++ b/Published/Mallela2022_MSAs/Augusta-Richmond_County_GA-SC_Augusta-Richmond_County_GA-SC.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Augusta-Richmond County, GA-SC +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Augusta-Richmond County, GA-SC +resetConcentrations() +simulate({suffix=>"Augusta-Richmond County, GA-SC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Austin-Round_Rock_TX_Austin-Round_Rock_TX.bngl b/Published/Mallela2022_MSAs/Austin-Round_Rock_TX_Austin-Round_Rock_TX.bngl new file mode 100644 index 00000000..630e70e8 --- /dev/null +++ b/Published/Mallela2022_MSAs/Austin-Round_Rock_TX_Austin-Round_Rock_TX.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Austin-Round Rock, TX +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Austin-Round Rock, TX +resetConcentrations() +simulate({suffix=>"Austin-Round Rock, TX",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Bakersfield_CA_Bakersfield_CA.bngl b/Published/Mallela2022_MSAs/Bakersfield_CA_Bakersfield_CA.bngl new file mode 100644 index 00000000..1983bc58 --- /dev/null +++ b/Published/Mallela2022_MSAs/Bakersfield_CA_Bakersfield_CA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Bakersfield, CA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Bakersfield, CA +resetConcentrations() +simulate({suffix=>"Bakersfield, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Baltimore-Columbia-Towson_MD_Baltimore-Columbia-Towson_MD.bngl b/Published/Mallela2022_MSAs/Baltimore-Columbia-Towson_MD_Baltimore-Columbia-Towson_MD.bngl new file mode 100644 index 00000000..c3d3ab0e --- /dev/null +++ b/Published/Mallela2022_MSAs/Baltimore-Columbia-Towson_MD_Baltimore-Columbia-Towson_MD.bngl @@ -0,0 +1,225 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Baltimore-Columbia-Towson, MD +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Baltimore-Columbia-Towson, MD +resetConcentrations() +simulate({suffix=>"Baltimore-Columbia-Towson, MD",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Barnstable_Town_MA_Barnstable_Town_MA.bngl b/Published/Mallela2022_MSAs/Barnstable_Town_MA_Barnstable_Town_MA.bngl new file mode 100644 index 00000000..f1e9652e --- /dev/null +++ b/Published/Mallela2022_MSAs/Barnstable_Town_MA_Barnstable_Town_MA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Barnstable Town, MA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Barnstable Town, MA +resetConcentrations() +simulate({suffix=>"Barnstable Town, MA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Baton_Rouge_LA_Baton_Rouge_LA.bngl b/Published/Mallela2022_MSAs/Baton_Rouge_LA_Baton_Rouge_LA.bngl new file mode 100644 index 00000000..a881ed3d --- /dev/null +++ b/Published/Mallela2022_MSAs/Baton_Rouge_LA_Baton_Rouge_LA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Baton Rouge, LA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Baton Rouge, LA +resetConcentrations() +simulate({suffix=>"Baton Rouge, LA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Battle_Creek_MI_Battle_Creek_MI.bngl b/Published/Mallela2022_MSAs/Battle_Creek_MI_Battle_Creek_MI.bngl new file mode 100644 index 00000000..5d9a6f12 --- /dev/null +++ b/Published/Mallela2022_MSAs/Battle_Creek_MI_Battle_Creek_MI.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Battle Creek, MI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Battle Creek, MI +resetConcentrations() +simulate({suffix=>"Battle Creek, MI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Bay_City_MI_Bay_City_MI.bngl b/Published/Mallela2022_MSAs/Bay_City_MI_Bay_City_MI.bngl new file mode 100644 index 00000000..1791a2d1 --- /dev/null +++ b/Published/Mallela2022_MSAs/Bay_City_MI_Bay_City_MI.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Bay City, MI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Bay City, MI +resetConcentrations() +simulate({suffix=>"Bay City, MI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Beaumont-Port_Arthur_TX_Beaumont-Port_Arthur_TX.bngl b/Published/Mallela2022_MSAs/Beaumont-Port_Arthur_TX_Beaumont-Port_Arthur_TX.bngl new file mode 100644 index 00000000..fd1dff04 --- /dev/null +++ b/Published/Mallela2022_MSAs/Beaumont-Port_Arthur_TX_Beaumont-Port_Arthur_TX.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Beaumont-Port Arthur, TX +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Beaumont-Port Arthur, TX +resetConcentrations() +simulate({suffix=>"Beaumont-Port Arthur, TX",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Bellingham_WA_Bellingham_WA.bngl b/Published/Mallela2022_MSAs/Bellingham_WA_Bellingham_WA.bngl new file mode 100644 index 00000000..41493469 --- /dev/null +++ b/Published/Mallela2022_MSAs/Bellingham_WA_Bellingham_WA.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Bellingham, WA +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Bellingham, WA +resetConcentrations() +simulate({suffix=>"Bellingham, WA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Binghamton_NY_Binghamton_NY.bngl b/Published/Mallela2022_MSAs/Binghamton_NY_Binghamton_NY.bngl new file mode 100644 index 00000000..8e409d58 --- /dev/null +++ b/Published/Mallela2022_MSAs/Binghamton_NY_Binghamton_NY.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Binghamton, NY +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Binghamton, NY +resetConcentrations() +simulate({suffix=>"Binghamton, NY",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Birmingham-Hoover_AL_Birmingham-Hoover_AL.bngl b/Published/Mallela2022_MSAs/Birmingham-Hoover_AL_Birmingham-Hoover_AL.bngl new file mode 100644 index 00000000..cab1d5ca --- /dev/null +++ b/Published/Mallela2022_MSAs/Birmingham-Hoover_AL_Birmingham-Hoover_AL.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Birmingham-Hoover, AL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Birmingham-Hoover, AL +resetConcentrations() +simulate({suffix=>"Birmingham-Hoover, AL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Bloomington_IN_Bloomington_IN.bngl b/Published/Mallela2022_MSAs/Bloomington_IN_Bloomington_IN.bngl new file mode 100644 index 00000000..e92617c7 --- /dev/null +++ b/Published/Mallela2022_MSAs/Bloomington_IN_Bloomington_IN.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Bloomington, IN +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Bloomington, IN +resetConcentrations() +simulate({suffix=>"Bloomington, IN",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Bloomsburg-Berwick_PA_Bloomsburg-Berwick_PA.bngl b/Published/Mallela2022_MSAs/Bloomsburg-Berwick_PA_Bloomsburg-Berwick_PA.bngl new file mode 100644 index 00000000..e3e68c0b --- /dev/null +++ b/Published/Mallela2022_MSAs/Bloomsburg-Berwick_PA_Bloomsburg-Berwick_PA.bngl @@ -0,0 +1,225 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Bloomsburg-Berwick, PA +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Bloomsburg-Berwick, PA +resetConcentrations() +simulate({suffix=>"Bloomsburg-Berwick, PA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Boise_City_ID_Boise_City_ID.bngl b/Published/Mallela2022_MSAs/Boise_City_ID_Boise_City_ID.bngl new file mode 100644 index 00000000..afa79ba4 --- /dev/null +++ b/Published/Mallela2022_MSAs/Boise_City_ID_Boise_City_ID.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Boise City, ID +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Boise City, ID +resetConcentrations() +simulate({suffix=>"Boise City, ID",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Boston-Cambridge-Newton_MA-NH_Boston-Cambridge-Newton_MA-NH.bngl b/Published/Mallela2022_MSAs/Boston-Cambridge-Newton_MA-NH_Boston-Cambridge-Newton_MA-NH.bngl new file mode 100644 index 00000000..9a4b5a3f --- /dev/null +++ b/Published/Mallela2022_MSAs/Boston-Cambridge-Newton_MA-NH_Boston-Cambridge-Newton_MA-NH.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Boston-Cambridge-Newton, MA-NH +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Boston-Cambridge-Newton, MA-NH +resetConcentrations() +simulate({suffix=>"Boston-Cambridge-Newton, MA-NH",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Boulder_CO_Boulder_CO.bngl b/Published/Mallela2022_MSAs/Boulder_CO_Boulder_CO.bngl new file mode 100644 index 00000000..cf29ebeb --- /dev/null +++ b/Published/Mallela2022_MSAs/Boulder_CO_Boulder_CO.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Boulder, CO +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Boulder, CO +resetConcentrations() +simulate({suffix=>"Boulder, CO",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Bowling_Green_KY_Bowling_Green_KY.bngl b/Published/Mallela2022_MSAs/Bowling_Green_KY_Bowling_Green_KY.bngl new file mode 100644 index 00000000..703b6794 --- /dev/null +++ b/Published/Mallela2022_MSAs/Bowling_Green_KY_Bowling_Green_KY.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Bowling Green, KY +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Bowling Green, KY +resetConcentrations() +simulate({suffix=>"Bowling Green, KY",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Bridgeport-Stamford-Norwalk_CT_Bridgeport-Stamford-Norwalk_CT.bngl b/Published/Mallela2022_MSAs/Bridgeport-Stamford-Norwalk_CT_Bridgeport-Stamford-Norwalk_CT.bngl new file mode 100644 index 00000000..27eaf4db --- /dev/null +++ b/Published/Mallela2022_MSAs/Bridgeport-Stamford-Norwalk_CT_Bridgeport-Stamford-Norwalk_CT.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Bridgeport-Stamford-Norwalk, CT +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Bridgeport-Stamford-Norwalk, CT +resetConcentrations() +simulate({suffix=>"Bridgeport-Stamford-Norwalk, CT",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Brownsville-Harlingen_TX_Brownsville-Harlingen_TX.bngl b/Published/Mallela2022_MSAs/Brownsville-Harlingen_TX_Brownsville-Harlingen_TX.bngl new file mode 100644 index 00000000..1392a262 --- /dev/null +++ b/Published/Mallela2022_MSAs/Brownsville-Harlingen_TX_Brownsville-Harlingen_TX.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Brownsville-Harlingen, TX +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Brownsville-Harlingen, TX +resetConcentrations() +simulate({suffix=>"Brownsville-Harlingen, TX",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Buffalo-Niagara_Falls_NY_Buffalo-Niagara_Falls_NY.bngl b/Published/Mallela2022_MSAs/Buffalo-Niagara_Falls_NY_Buffalo-Niagara_Falls_NY.bngl new file mode 100644 index 00000000..f1d77ad1 --- /dev/null +++ b/Published/Mallela2022_MSAs/Buffalo-Niagara_Falls_NY_Buffalo-Niagara_Falls_NY.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Buffalo-Niagara Falls, NY +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Buffalo-Niagara Falls, NY +resetConcentrations() +simulate({suffix=>"Buffalo-Niagara Falls, NY",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Burlington-South_Burlington_VT_Burlington-South_Burlington_VT.bngl b/Published/Mallela2022_MSAs/Burlington-South_Burlington_VT_Burlington-South_Burlington_VT.bngl new file mode 100644 index 00000000..a3b54af7 --- /dev/null +++ b/Published/Mallela2022_MSAs/Burlington-South_Burlington_VT_Burlington-South_Burlington_VT.bngl @@ -0,0 +1,225 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Burlington-South Burlington, VT +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Burlington-South Burlington, VT +resetConcentrations() +simulate({suffix=>"Burlington-South Burlington, VT",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Burlington_NC_Burlington_NC.bngl b/Published/Mallela2022_MSAs/Burlington_NC_Burlington_NC.bngl new file mode 100644 index 00000000..19044a68 --- /dev/null +++ b/Published/Mallela2022_MSAs/Burlington_NC_Burlington_NC.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Burlington, NC +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Burlington, NC +resetConcentrations() +simulate({suffix=>"Burlington, NC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/California-Lexington_Park_MD_California-Lexington_Park_MD.bngl b/Published/Mallela2022_MSAs/California-Lexington_Park_MD_California-Lexington_Park_MD.bngl new file mode 100644 index 00000000..b924b3d7 --- /dev/null +++ b/Published/Mallela2022_MSAs/California-Lexington_Park_MD_California-Lexington_Park_MD.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of California-Lexington Park, MD +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in California-Lexington Park, MD +resetConcentrations() +simulate({suffix=>"California-Lexington Park, MD",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Canton-Massillon_OH_Canton-Massillon_OH.bngl b/Published/Mallela2022_MSAs/Canton-Massillon_OH_Canton-Massillon_OH.bngl new file mode 100644 index 00000000..a51fa1a8 --- /dev/null +++ b/Published/Mallela2022_MSAs/Canton-Massillon_OH_Canton-Massillon_OH.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Canton-Massillon, OH +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Canton-Massillon, OH +resetConcentrations() +simulate({suffix=>"Canton-Massillon, OH",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Cape_Coral-Fort_Myers_FL_Cape_Coral-Fort_Myers_FL.bngl b/Published/Mallela2022_MSAs/Cape_Coral-Fort_Myers_FL_Cape_Coral-Fort_Myers_FL.bngl new file mode 100644 index 00000000..32410192 --- /dev/null +++ b/Published/Mallela2022_MSAs/Cape_Coral-Fort_Myers_FL_Cape_Coral-Fort_Myers_FL.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Cape Coral-Fort Myers, FL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Cape Coral-Fort Myers, FL +resetConcentrations() +simulate({suffix=>"Cape Coral-Fort Myers, FL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Carbondale-Marion_IL_Carbondale-Marion_IL.bngl b/Published/Mallela2022_MSAs/Carbondale-Marion_IL_Carbondale-Marion_IL.bngl new file mode 100644 index 00000000..3776546f --- /dev/null +++ b/Published/Mallela2022_MSAs/Carbondale-Marion_IL_Carbondale-Marion_IL.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Carbondale-Marion, IL +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Carbondale-Marion, IL +resetConcentrations() +simulate({suffix=>"Carbondale-Marion, IL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Cedar_Rapids_IA_Cedar_Rapids_IA.bngl b/Published/Mallela2022_MSAs/Cedar_Rapids_IA_Cedar_Rapids_IA.bngl new file mode 100644 index 00000000..0fcf1282 --- /dev/null +++ b/Published/Mallela2022_MSAs/Cedar_Rapids_IA_Cedar_Rapids_IA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Cedar Rapids, IA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Cedar Rapids, IA +resetConcentrations() +simulate({suffix=>"Cedar Rapids, IA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Chambersburg-Waynesboro_PA_Chambersburg-Waynesboro_PA.bngl b/Published/Mallela2022_MSAs/Chambersburg-Waynesboro_PA_Chambersburg-Waynesboro_PA.bngl new file mode 100644 index 00000000..73a76f27 --- /dev/null +++ b/Published/Mallela2022_MSAs/Chambersburg-Waynesboro_PA_Chambersburg-Waynesboro_PA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Chambersburg-Waynesboro, PA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Chambersburg-Waynesboro, PA +resetConcentrations() +simulate({suffix=>"Chambersburg-Waynesboro, PA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Champaign-Urbana_IL_Champaign-Urbana_IL.bngl b/Published/Mallela2022_MSAs/Champaign-Urbana_IL_Champaign-Urbana_IL.bngl new file mode 100644 index 00000000..590fce1c --- /dev/null +++ b/Published/Mallela2022_MSAs/Champaign-Urbana_IL_Champaign-Urbana_IL.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Champaign-Urbana, IL +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Champaign-Urbana, IL +resetConcentrations() +simulate({suffix=>"Champaign-Urbana, IL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Charleston-North_Charleston_SC_Charleston-North_Charleston_SC.bngl b/Published/Mallela2022_MSAs/Charleston-North_Charleston_SC_Charleston-North_Charleston_SC.bngl new file mode 100644 index 00000000..1fbb0308 --- /dev/null +++ b/Published/Mallela2022_MSAs/Charleston-North_Charleston_SC_Charleston-North_Charleston_SC.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Charleston-North Charleston, SC +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Charleston-North Charleston, SC +resetConcentrations() +simulate({suffix=>"Charleston-North Charleston, SC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Charleston_WV_Charleston_WV.bngl b/Published/Mallela2022_MSAs/Charleston_WV_Charleston_WV.bngl new file mode 100644 index 00000000..acd3fbe0 --- /dev/null +++ b/Published/Mallela2022_MSAs/Charleston_WV_Charleston_WV.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Charleston, WV +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Charleston, WV +resetConcentrations() +simulate({suffix=>"Charleston, WV",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Charlotte-Concord-Gastonia_NC-SC_Charlotte-Concord-Gastonia_NC-SC.bngl b/Published/Mallela2022_MSAs/Charlotte-Concord-Gastonia_NC-SC_Charlotte-Concord-Gastonia_NC-SC.bngl new file mode 100644 index 00000000..2bb7a4df --- /dev/null +++ b/Published/Mallela2022_MSAs/Charlotte-Concord-Gastonia_NC-SC_Charlotte-Concord-Gastonia_NC-SC.bngl @@ -0,0 +1,225 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Charlotte-Concord-Gastonia, NC-SC +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Charlotte-Concord-Gastonia, NC-SC +resetConcentrations() +simulate({suffix=>"Charlotte-Concord-Gastonia, NC-SC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Charlottesville_VA_Charlottesville_VA.bngl b/Published/Mallela2022_MSAs/Charlottesville_VA_Charlottesville_VA.bngl new file mode 100644 index 00000000..9ce4f4a0 --- /dev/null +++ b/Published/Mallela2022_MSAs/Charlottesville_VA_Charlottesville_VA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Charlottesville, VA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Charlottesville, VA +resetConcentrations() +simulate({suffix=>"Charlottesville, VA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Chattanooga_TN-GA_Chattanooga_TN-GA.bngl b/Published/Mallela2022_MSAs/Chattanooga_TN-GA_Chattanooga_TN-GA.bngl new file mode 100644 index 00000000..39dba23f --- /dev/null +++ b/Published/Mallela2022_MSAs/Chattanooga_TN-GA_Chattanooga_TN-GA.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Chattanooga, TN-GA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Chattanooga, TN-GA +resetConcentrations() +simulate({suffix=>"Chattanooga, TN-GA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Chicago-Naperville-Elgin_IL-IN-WI_Chicago-Naperville-Elgin_IL-IN-WI.bngl b/Published/Mallela2022_MSAs/Chicago-Naperville-Elgin_IL-IN-WI_Chicago-Naperville-Elgin_IL-IN-WI.bngl new file mode 100644 index 00000000..7f766746 --- /dev/null +++ b/Published/Mallela2022_MSAs/Chicago-Naperville-Elgin_IL-IN-WI_Chicago-Naperville-Elgin_IL-IN-WI.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Chicago-Naperville-Elgin, IL-IN-WI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Chicago-Naperville-Elgin, IL-IN-WI +resetConcentrations() +simulate({suffix=>"Chicago-Naperville-Elgin, IL-IN-WI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Cincinnati_OH-KY-IN_Cincinnati_OH-KY-IN.bngl b/Published/Mallela2022_MSAs/Cincinnati_OH-KY-IN_Cincinnati_OH-KY-IN.bngl new file mode 100644 index 00000000..100e142e --- /dev/null +++ b/Published/Mallela2022_MSAs/Cincinnati_OH-KY-IN_Cincinnati_OH-KY-IN.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Cincinnati, OH-KY-IN +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Cincinnati, OH-KY-IN +resetConcentrations() +simulate({suffix=>"Cincinnati, OH-KY-IN",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Clarksville_TN-KY_Clarksville_TN-KY.bngl b/Published/Mallela2022_MSAs/Clarksville_TN-KY_Clarksville_TN-KY.bngl new file mode 100644 index 00000000..3399d994 --- /dev/null +++ b/Published/Mallela2022_MSAs/Clarksville_TN-KY_Clarksville_TN-KY.bngl @@ -0,0 +1,225 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Clarksville, TN-KY +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Clarksville, TN-KY +resetConcentrations() +simulate({suffix=>"Clarksville, TN-KY",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Cleveland-Elyria_OH_Cleveland-Elyria_OH.bngl b/Published/Mallela2022_MSAs/Cleveland-Elyria_OH_Cleveland-Elyria_OH.bngl new file mode 100644 index 00000000..ffbc8e78 --- /dev/null +++ b/Published/Mallela2022_MSAs/Cleveland-Elyria_OH_Cleveland-Elyria_OH.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Cleveland-Elyria, OH +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Cleveland-Elyria, OH +resetConcentrations() +simulate({suffix=>"Cleveland-Elyria, OH",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/College_Station-Bryan_TX_College_Station-Bryan_TX.bngl b/Published/Mallela2022_MSAs/College_Station-Bryan_TX_College_Station-Bryan_TX.bngl new file mode 100644 index 00000000..dacb6d9b --- /dev/null +++ b/Published/Mallela2022_MSAs/College_Station-Bryan_TX_College_Station-Bryan_TX.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of College Station-Bryan, TX +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in College Station-Bryan, TX +resetConcentrations() +simulate({suffix=>"College Station-Bryan, TX",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Colorado_Springs_CO_Colorado_Springs_CO.bngl b/Published/Mallela2022_MSAs/Colorado_Springs_CO_Colorado_Springs_CO.bngl new file mode 100644 index 00000000..c7a123d3 --- /dev/null +++ b/Published/Mallela2022_MSAs/Colorado_Springs_CO_Colorado_Springs_CO.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Colorado Springs, CO +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Colorado Springs, CO +resetConcentrations() +simulate({suffix=>"Colorado Springs, CO",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Columbia_SC_Columbia_SC.bngl b/Published/Mallela2022_MSAs/Columbia_SC_Columbia_SC.bngl new file mode 100644 index 00000000..54c3cde3 --- /dev/null +++ b/Published/Mallela2022_MSAs/Columbia_SC_Columbia_SC.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Columbia, SC +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Columbia, SC +resetConcentrations() +simulate({suffix=>"Columbia, SC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Columbus_GA-AL_Columbus_GA-AL.bngl b/Published/Mallela2022_MSAs/Columbus_GA-AL_Columbus_GA-AL.bngl new file mode 100644 index 00000000..e1c59342 --- /dev/null +++ b/Published/Mallela2022_MSAs/Columbus_GA-AL_Columbus_GA-AL.bngl @@ -0,0 +1,225 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Columbus, GA-AL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Columbus, GA-AL +resetConcentrations() +simulate({suffix=>"Columbus, GA-AL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Columbus_IN_Columbus_IN.bngl b/Published/Mallela2022_MSAs/Columbus_IN_Columbus_IN.bngl new file mode 100644 index 00000000..7d4e27e3 --- /dev/null +++ b/Published/Mallela2022_MSAs/Columbus_IN_Columbus_IN.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Columbus, IN +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Columbus, IN +resetConcentrations() +simulate({suffix=>"Columbus, IN",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Columbus_OH_Columbus_OH.bngl b/Published/Mallela2022_MSAs/Columbus_OH_Columbus_OH.bngl new file mode 100644 index 00000000..ec3d7f3b --- /dev/null +++ b/Published/Mallela2022_MSAs/Columbus_OH_Columbus_OH.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Columbus, OH +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Columbus, OH +resetConcentrations() +simulate({suffix=>"Columbus, OH",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Corpus_Christi_TX_Corpus_Christi_TX.bngl b/Published/Mallela2022_MSAs/Corpus_Christi_TX_Corpus_Christi_TX.bngl new file mode 100644 index 00000000..4f7670d0 --- /dev/null +++ b/Published/Mallela2022_MSAs/Corpus_Christi_TX_Corpus_Christi_TX.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Corpus Christi, TX +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Corpus Christi, TX +resetConcentrations() +simulate({suffix=>"Corpus Christi, TX",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Crestview-Fort_Walton_Beach-Destin_FL_Crestview-Fort_Walton_Beach-Destin_FL.bngl b/Published/Mallela2022_MSAs/Crestview-Fort_Walton_Beach-Destin_FL_Crestview-Fort_Walton_Beach-Destin_FL.bngl new file mode 100644 index 00000000..44b47af8 --- /dev/null +++ b/Published/Mallela2022_MSAs/Crestview-Fort_Walton_Beach-Destin_FL_Crestview-Fort_Walton_Beach-Destin_FL.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Crestview-Fort Walton Beach-Destin, FL +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Crestview-Fort Walton Beach-Destin, FL +resetConcentrations() +simulate({suffix=>"Crestview-Fort Walton Beach-Destin, FL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Cumberland_MD-WV_Cumberland_MD-WV.bngl b/Published/Mallela2022_MSAs/Cumberland_MD-WV_Cumberland_MD-WV.bngl new file mode 100644 index 00000000..f521ab40 --- /dev/null +++ b/Published/Mallela2022_MSAs/Cumberland_MD-WV_Cumberland_MD-WV.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Cumberland, MD-WV +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Cumberland, MD-WV +resetConcentrations() +simulate({suffix=>"Cumberland, MD-WV",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Dallas-Fort_Worth-Arlington_TX_Dallas-Fort_Worth-Arlington_TX.bngl b/Published/Mallela2022_MSAs/Dallas-Fort_Worth-Arlington_TX_Dallas-Fort_Worth-Arlington_TX.bngl new file mode 100644 index 00000000..89473c86 --- /dev/null +++ b/Published/Mallela2022_MSAs/Dallas-Fort_Worth-Arlington_TX_Dallas-Fort_Worth-Arlington_TX.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Dallas-Fort Worth-Arlington, TX +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Dallas-Fort Worth-Arlington, TX +resetConcentrations() +simulate({suffix=>"Dallas-Fort Worth-Arlington, TX",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Dalton_GA_Dalton_GA.bngl b/Published/Mallela2022_MSAs/Dalton_GA_Dalton_GA.bngl new file mode 100644 index 00000000..bce20348 --- /dev/null +++ b/Published/Mallela2022_MSAs/Dalton_GA_Dalton_GA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Dalton, GA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Dalton, GA +resetConcentrations() +simulate({suffix=>"Dalton, GA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Daphne-Fairhope-Foley_AL_Daphne-Fairhope-Foley_AL.bngl b/Published/Mallela2022_MSAs/Daphne-Fairhope-Foley_AL_Daphne-Fairhope-Foley_AL.bngl new file mode 100644 index 00000000..918d788f --- /dev/null +++ b/Published/Mallela2022_MSAs/Daphne-Fairhope-Foley_AL_Daphne-Fairhope-Foley_AL.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Daphne-Fairhope-Foley, AL +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Daphne-Fairhope-Foley, AL +resetConcentrations() +simulate({suffix=>"Daphne-Fairhope-Foley, AL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Davenport-Moline-Rock_Island_IA-IL_Davenport-Moline-Rock_Island_IA-IL.bngl b/Published/Mallela2022_MSAs/Davenport-Moline-Rock_Island_IA-IL_Davenport-Moline-Rock_Island_IA-IL.bngl new file mode 100644 index 00000000..16d2607b --- /dev/null +++ b/Published/Mallela2022_MSAs/Davenport-Moline-Rock_Island_IA-IL_Davenport-Moline-Rock_Island_IA-IL.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Davenport-Moline-Rock Island, IA-IL +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Davenport-Moline-Rock Island, IA-IL +resetConcentrations() +simulate({suffix=>"Davenport-Moline-Rock Island, IA-IL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Dayton_OH_Dayton_OH.bngl b/Published/Mallela2022_MSAs/Dayton_OH_Dayton_OH.bngl new file mode 100644 index 00000000..a8f7dc5c --- /dev/null +++ b/Published/Mallela2022_MSAs/Dayton_OH_Dayton_OH.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Dayton, OH +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Dayton, OH +resetConcentrations() +simulate({suffix=>"Dayton, OH",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Deltona-Daytona_Beach-Ormond_Beach_FL_Deltona-Daytona_Beach-Ormond_Beach_FL.bngl b/Published/Mallela2022_MSAs/Deltona-Daytona_Beach-Ormond_Beach_FL_Deltona-Daytona_Beach-Ormond_Beach_FL.bngl new file mode 100644 index 00000000..8e993fc8 --- /dev/null +++ b/Published/Mallela2022_MSAs/Deltona-Daytona_Beach-Ormond_Beach_FL_Deltona-Daytona_Beach-Ormond_Beach_FL.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Deltona-Daytona Beach-Ormond Beach, FL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Deltona-Daytona Beach-Ormond Beach, FL +resetConcentrations() +simulate({suffix=>"Deltona-Daytona Beach-Ormond Beach, FL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Denver-Aurora-Lakewood_CO_Denver-Aurora-Lakewood_CO.bngl b/Published/Mallela2022_MSAs/Denver-Aurora-Lakewood_CO_Denver-Aurora-Lakewood_CO.bngl new file mode 100644 index 00000000..2f2ceb29 --- /dev/null +++ b/Published/Mallela2022_MSAs/Denver-Aurora-Lakewood_CO_Denver-Aurora-Lakewood_CO.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Denver-Aurora-Lakewood, CO +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Denver-Aurora-Lakewood, CO +resetConcentrations() +simulate({suffix=>"Denver-Aurora-Lakewood, CO",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Des_Moines-West_Des_Moines_IA_Des_Moines-West_Des_Moines_IA.bngl b/Published/Mallela2022_MSAs/Des_Moines-West_Des_Moines_IA_Des_Moines-West_Des_Moines_IA.bngl new file mode 100644 index 00000000..e5810dde --- /dev/null +++ b/Published/Mallela2022_MSAs/Des_Moines-West_Des_Moines_IA_Des_Moines-West_Des_Moines_IA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Des Moines-West Des Moines, IA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Des Moines-West Des Moines, IA +resetConcentrations() +simulate({suffix=>"Des Moines-West Des Moines, IA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Detroit-Warren-Dearborn_MI_Detroit-Warren-Dearborn_MI.bngl b/Published/Mallela2022_MSAs/Detroit-Warren-Dearborn_MI_Detroit-Warren-Dearborn_MI.bngl new file mode 100644 index 00000000..51e9effb --- /dev/null +++ b/Published/Mallela2022_MSAs/Detroit-Warren-Dearborn_MI_Detroit-Warren-Dearborn_MI.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Detroit–Warren–Dearborn, MI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Detroit–Warren–Dearborn, MI +resetConcentrations() +simulate({suffix=>"Detroit–Warren–Dearborn, MI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Detroit_Warren_Dearborn_MI_Detroit_Warren_Dearborn_MI.bngl b/Published/Mallela2022_MSAs/Detroit_Warren_Dearborn_MI_Detroit_Warren_Dearborn_MI.bngl new file mode 100644 index 00000000..51e9effb --- /dev/null +++ b/Published/Mallela2022_MSAs/Detroit_Warren_Dearborn_MI_Detroit_Warren_Dearborn_MI.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Detroit–Warren–Dearborn, MI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Detroit–Warren–Dearborn, MI +resetConcentrations() +simulate({suffix=>"Detroit–Warren–Dearborn, MI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Dothan_AL_Dothan_AL.bngl b/Published/Mallela2022_MSAs/Dothan_AL_Dothan_AL.bngl new file mode 100644 index 00000000..a25aaa8c --- /dev/null +++ b/Published/Mallela2022_MSAs/Dothan_AL_Dothan_AL.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Dothan, AL +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Dothan, AL +resetConcentrations() +simulate({suffix=>"Dothan, AL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Dover_DE_Dover_DE.bngl b/Published/Mallela2022_MSAs/Dover_DE_Dover_DE.bngl new file mode 100644 index 00000000..fcfb7bd1 --- /dev/null +++ b/Published/Mallela2022_MSAs/Dover_DE_Dover_DE.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Dover, DE +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Dover, DE +resetConcentrations() +simulate({suffix=>"Dover, DE",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Dubuque_IA_Dubuque_IA.bngl b/Published/Mallela2022_MSAs/Dubuque_IA_Dubuque_IA.bngl new file mode 100644 index 00000000..b6cf29dd --- /dev/null +++ b/Published/Mallela2022_MSAs/Dubuque_IA_Dubuque_IA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Dubuque, IA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Dubuque, IA +resetConcentrations() +simulate({suffix=>"Dubuque, IA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Durham-Chapel_Hill_NC_Durham-Chapel_Hill_NC.bngl b/Published/Mallela2022_MSAs/Durham-Chapel_Hill_NC_Durham-Chapel_Hill_NC.bngl new file mode 100644 index 00000000..22e3de82 --- /dev/null +++ b/Published/Mallela2022_MSAs/Durham-Chapel_Hill_NC_Durham-Chapel_Hill_NC.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Durham-Chapel Hill, NC +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Durham-Chapel Hill, NC +resetConcentrations() +simulate({suffix=>"Durham-Chapel Hill, NC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/East_Stroudsburg_PA_East_Stroudsburg_PA.bngl b/Published/Mallela2022_MSAs/East_Stroudsburg_PA_East_Stroudsburg_PA.bngl new file mode 100644 index 00000000..a12b551d --- /dev/null +++ b/Published/Mallela2022_MSAs/East_Stroudsburg_PA_East_Stroudsburg_PA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of East Stroudsburg, PA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in East Stroudsburg, PA +resetConcentrations() +simulate({suffix=>"East Stroudsburg, PA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/El_Centro_CA_El_Centro_CA.bngl b/Published/Mallela2022_MSAs/El_Centro_CA_El_Centro_CA.bngl new file mode 100644 index 00000000..bba8d5fd --- /dev/null +++ b/Published/Mallela2022_MSAs/El_Centro_CA_El_Centro_CA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of El Centro, CA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in El Centro, CA +resetConcentrations() +simulate({suffix=>"El Centro, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/El_Paso_TX_El_Paso_TX.bngl b/Published/Mallela2022_MSAs/El_Paso_TX_El_Paso_TX.bngl new file mode 100644 index 00000000..e6031460 --- /dev/null +++ b/Published/Mallela2022_MSAs/El_Paso_TX_El_Paso_TX.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of El Paso, TX +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in El Paso, TX +resetConcentrations() +simulate({suffix=>"El Paso, TX",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Elkhart-Goshen_IN_Elkhart-Goshen_IN.bngl b/Published/Mallela2022_MSAs/Elkhart-Goshen_IN_Elkhart-Goshen_IN.bngl new file mode 100644 index 00000000..a8599424 --- /dev/null +++ b/Published/Mallela2022_MSAs/Elkhart-Goshen_IN_Elkhart-Goshen_IN.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Elkhart-Goshen, IN +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Elkhart-Goshen, IN +resetConcentrations() +simulate({suffix=>"Elkhart-Goshen, IN",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Evansville_IN-KY_Evansville_IN-KY.bngl b/Published/Mallela2022_MSAs/Evansville_IN-KY_Evansville_IN-KY.bngl new file mode 100644 index 00000000..650eb6c4 --- /dev/null +++ b/Published/Mallela2022_MSAs/Evansville_IN-KY_Evansville_IN-KY.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Evansville, IN-KY +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Evansville, IN-KY +resetConcentrations() +simulate({suffix=>"Evansville, IN-KY",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Fargo_ND-MN_Fargo_ND-MN.bngl b/Published/Mallela2022_MSAs/Fargo_ND-MN_Fargo_ND-MN.bngl new file mode 100644 index 00000000..966de567 --- /dev/null +++ b/Published/Mallela2022_MSAs/Fargo_ND-MN_Fargo_ND-MN.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Fargo, ND-MN +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Fargo, ND-MN +resetConcentrations() +simulate({suffix=>"Fargo, ND-MN",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Farmington_NM_Farmington_NM.bngl b/Published/Mallela2022_MSAs/Farmington_NM_Farmington_NM.bngl new file mode 100644 index 00000000..20e24b08 --- /dev/null +++ b/Published/Mallela2022_MSAs/Farmington_NM_Farmington_NM.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Farmington, NM +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Farmington, NM +resetConcentrations() +simulate({suffix=>"Farmington, NM",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Fayetteville-Springdale-Rogers_AR_Fayetteville-Springdale-Rogers_AR.bngl b/Published/Mallela2022_MSAs/Fayetteville-Springdale-Rogers_AR_Fayetteville-Springdale-Rogers_AR.bngl new file mode 100644 index 00000000..72041b39 --- /dev/null +++ b/Published/Mallela2022_MSAs/Fayetteville-Springdale-Rogers_AR_Fayetteville-Springdale-Rogers_AR.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Fayetteville-Springdale-Rogers, AR +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Fayetteville-Springdale-Rogers, AR +resetConcentrations() +simulate({suffix=>"Fayetteville-Springdale-Rogers, AR",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Fayetteville_NC_Fayetteville_NC.bngl b/Published/Mallela2022_MSAs/Fayetteville_NC_Fayetteville_NC.bngl new file mode 100644 index 00000000..8ea4236f --- /dev/null +++ b/Published/Mallela2022_MSAs/Fayetteville_NC_Fayetteville_NC.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Fayetteville, NC +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Fayetteville, NC +resetConcentrations() +simulate({suffix=>"Fayetteville, NC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Flagstaff_AZ_Flagstaff_AZ.bngl b/Published/Mallela2022_MSAs/Flagstaff_AZ_Flagstaff_AZ.bngl new file mode 100644 index 00000000..c0fc9337 --- /dev/null +++ b/Published/Mallela2022_MSAs/Flagstaff_AZ_Flagstaff_AZ.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Flagstaff, AZ +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Flagstaff, AZ +resetConcentrations() +simulate({suffix=>"Flagstaff, AZ",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Flint_MI_Flint_MI.bngl b/Published/Mallela2022_MSAs/Flint_MI_Flint_MI.bngl new file mode 100644 index 00000000..85030d1c --- /dev/null +++ b/Published/Mallela2022_MSAs/Flint_MI_Flint_MI.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Flint, MI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Flint, MI +resetConcentrations() +simulate({suffix=>"Flint, MI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Florence-Muscle_Shoals_AL_Florence-Muscle_Shoals_AL.bngl b/Published/Mallela2022_MSAs/Florence-Muscle_Shoals_AL_Florence-Muscle_Shoals_AL.bngl new file mode 100644 index 00000000..00461d49 --- /dev/null +++ b/Published/Mallela2022_MSAs/Florence-Muscle_Shoals_AL_Florence-Muscle_Shoals_AL.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Florence-Muscle Shoals, AL +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Florence-Muscle Shoals, AL +resetConcentrations() +simulate({suffix=>"Florence-Muscle Shoals, AL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Florence_SC_Florence_SC.bngl b/Published/Mallela2022_MSAs/Florence_SC_Florence_SC.bngl new file mode 100644 index 00000000..409e7d5b --- /dev/null +++ b/Published/Mallela2022_MSAs/Florence_SC_Florence_SC.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Florence, SC +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Florence, SC +resetConcentrations() +simulate({suffix=>"Florence, SC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Fort_Collins_CO_Fort_Collins_CO.bngl b/Published/Mallela2022_MSAs/Fort_Collins_CO_Fort_Collins_CO.bngl new file mode 100644 index 00000000..84269669 --- /dev/null +++ b/Published/Mallela2022_MSAs/Fort_Collins_CO_Fort_Collins_CO.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Fort Collins, CO +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Fort Collins, CO +resetConcentrations() +simulate({suffix=>"Fort Collins, CO",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Fort_Wayne_IN_Fort_Wayne_IN.bngl b/Published/Mallela2022_MSAs/Fort_Wayne_IN_Fort_Wayne_IN.bngl new file mode 100644 index 00000000..79c6793f --- /dev/null +++ b/Published/Mallela2022_MSAs/Fort_Wayne_IN_Fort_Wayne_IN.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Fort Wayne, IN +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Fort Wayne, IN +resetConcentrations() +simulate({suffix=>"Fort Wayne, IN",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Fresno_CA_Fresno_CA.bngl b/Published/Mallela2022_MSAs/Fresno_CA_Fresno_CA.bngl new file mode 100644 index 00000000..0e77ceb1 --- /dev/null +++ b/Published/Mallela2022_MSAs/Fresno_CA_Fresno_CA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Fresno, CA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Fresno, CA +resetConcentrations() +simulate({suffix=>"Fresno, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Gadsden_AL_Gadsden_AL.bngl b/Published/Mallela2022_MSAs/Gadsden_AL_Gadsden_AL.bngl new file mode 100644 index 00000000..80816ab7 --- /dev/null +++ b/Published/Mallela2022_MSAs/Gadsden_AL_Gadsden_AL.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Gadsden, AL +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Gadsden, AL +resetConcentrations() +simulate({suffix=>"Gadsden, AL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Gainesville_FL_Gainesville_FL.bngl b/Published/Mallela2022_MSAs/Gainesville_FL_Gainesville_FL.bngl new file mode 100644 index 00000000..aa521bd4 --- /dev/null +++ b/Published/Mallela2022_MSAs/Gainesville_FL_Gainesville_FL.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Gainesville, FL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Gainesville, FL +resetConcentrations() +simulate({suffix=>"Gainesville, FL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Gainesville_GA_Gainesville_GA.bngl b/Published/Mallela2022_MSAs/Gainesville_GA_Gainesville_GA.bngl new file mode 100644 index 00000000..fb766c33 --- /dev/null +++ b/Published/Mallela2022_MSAs/Gainesville_GA_Gainesville_GA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Gainesville, GA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Gainesville, GA +resetConcentrations() +simulate({suffix=>"Gainesville, GA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Glens_Falls_NY_Glens_Falls_NY.bngl b/Published/Mallela2022_MSAs/Glens_Falls_NY_Glens_Falls_NY.bngl new file mode 100644 index 00000000..08121c83 --- /dev/null +++ b/Published/Mallela2022_MSAs/Glens_Falls_NY_Glens_Falls_NY.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Glens Falls, NY +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Glens Falls, NY +resetConcentrations() +simulate({suffix=>"Glens Falls, NY",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Goldsboro_NC_Goldsboro_NC.bngl b/Published/Mallela2022_MSAs/Goldsboro_NC_Goldsboro_NC.bngl new file mode 100644 index 00000000..28914517 --- /dev/null +++ b/Published/Mallela2022_MSAs/Goldsboro_NC_Goldsboro_NC.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Goldsboro, NC +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Goldsboro, NC +resetConcentrations() +simulate({suffix=>"Goldsboro, NC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Grand_Forks_ND-MN_Grand_Forks_ND-MN.bngl b/Published/Mallela2022_MSAs/Grand_Forks_ND-MN_Grand_Forks_ND-MN.bngl new file mode 100644 index 00000000..e8c2dc6b --- /dev/null +++ b/Published/Mallela2022_MSAs/Grand_Forks_ND-MN_Grand_Forks_ND-MN.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Grand Forks, ND-MN +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Grand Forks, ND-MN +resetConcentrations() +simulate({suffix=>"Grand Forks, ND-MN",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Grand_Island_NE_Grand_Island_NE.bngl b/Published/Mallela2022_MSAs/Grand_Island_NE_Grand_Island_NE.bngl new file mode 100644 index 00000000..7d7d7470 --- /dev/null +++ b/Published/Mallela2022_MSAs/Grand_Island_NE_Grand_Island_NE.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Grand Island, NE +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Grand Island, NE +resetConcentrations() +simulate({suffix=>"Grand Island, NE",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Grand_Rapids-Kentwood_MI_Grand_Rapids-Kentwood_MI.bngl b/Published/Mallela2022_MSAs/Grand_Rapids-Kentwood_MI_Grand_Rapids-Kentwood_MI.bngl new file mode 100644 index 00000000..10d82a7f --- /dev/null +++ b/Published/Mallela2022_MSAs/Grand_Rapids-Kentwood_MI_Grand_Rapids-Kentwood_MI.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Grand Rapids-Kentwood, MI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Grand Rapids-Kentwood, MI +resetConcentrations() +simulate({suffix=>"Grand Rapids-Kentwood, MI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Greeley_CO_Greeley_CO.bngl b/Published/Mallela2022_MSAs/Greeley_CO_Greeley_CO.bngl new file mode 100644 index 00000000..c619b3d3 --- /dev/null +++ b/Published/Mallela2022_MSAs/Greeley_CO_Greeley_CO.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Greeley, CO +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Greeley, CO +resetConcentrations() +simulate({suffix=>"Greeley, CO",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Green_Bay_WI_Green_Bay_WI.bngl b/Published/Mallela2022_MSAs/Green_Bay_WI_Green_Bay_WI.bngl new file mode 100644 index 00000000..40662059 --- /dev/null +++ b/Published/Mallela2022_MSAs/Green_Bay_WI_Green_Bay_WI.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Green Bay, WI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Green Bay, WI +resetConcentrations() +simulate({suffix=>"Green Bay, WI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Greensboro-High_Point_NC_Greensboro-High_Point_NC.bngl b/Published/Mallela2022_MSAs/Greensboro-High_Point_NC_Greensboro-High_Point_NC.bngl new file mode 100644 index 00000000..998ea051 --- /dev/null +++ b/Published/Mallela2022_MSAs/Greensboro-High_Point_NC_Greensboro-High_Point_NC.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Greensboro-High Point, NC +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Greensboro-High Point, NC +resetConcentrations() +simulate({suffix=>"Greensboro-High Point, NC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Greenville-Anderson_SC_Greenville-Anderson_SC.bngl b/Published/Mallela2022_MSAs/Greenville-Anderson_SC_Greenville-Anderson_SC.bngl new file mode 100644 index 00000000..aa369619 --- /dev/null +++ b/Published/Mallela2022_MSAs/Greenville-Anderson_SC_Greenville-Anderson_SC.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Greenville-Anderson, SC +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Greenville-Anderson, SC +resetConcentrations() +simulate({suffix=>"Greenville-Anderson, SC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Greenville_NC_Greenville_NC.bngl b/Published/Mallela2022_MSAs/Greenville_NC_Greenville_NC.bngl new file mode 100644 index 00000000..3009b95d --- /dev/null +++ b/Published/Mallela2022_MSAs/Greenville_NC_Greenville_NC.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Greenville, NC +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Greenville, NC +resetConcentrations() +simulate({suffix=>"Greenville, NC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Gulfport-Biloxi_MS_Gulfport-Biloxi_MS.bngl b/Published/Mallela2022_MSAs/Gulfport-Biloxi_MS_Gulfport-Biloxi_MS.bngl new file mode 100644 index 00000000..ff68b37d --- /dev/null +++ b/Published/Mallela2022_MSAs/Gulfport-Biloxi_MS_Gulfport-Biloxi_MS.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Gulfport-Biloxi, MS +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Gulfport-Biloxi, MS +resetConcentrations() +simulate({suffix=>"Gulfport-Biloxi, MS",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Hagerstown-Martinsburg_MD-WV_Hagerstown-Martinsburg_MD-WV.bngl b/Published/Mallela2022_MSAs/Hagerstown-Martinsburg_MD-WV_Hagerstown-Martinsburg_MD-WV.bngl new file mode 100644 index 00000000..f99bc95d --- /dev/null +++ b/Published/Mallela2022_MSAs/Hagerstown-Martinsburg_MD-WV_Hagerstown-Martinsburg_MD-WV.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Hagerstown-Martinsburg, MD-WV +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Hagerstown-Martinsburg, MD-WV +resetConcentrations() +simulate({suffix=>"Hagerstown-Martinsburg, MD-WV",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Hammond_LA_Hammond_LA.bngl b/Published/Mallela2022_MSAs/Hammond_LA_Hammond_LA.bngl new file mode 100644 index 00000000..9b2a3331 --- /dev/null +++ b/Published/Mallela2022_MSAs/Hammond_LA_Hammond_LA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Hammond, LA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Hammond, LA +resetConcentrations() +simulate({suffix=>"Hammond, LA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Hanford-Corcoran_CA_Hanford-Corcoran_CA.bngl b/Published/Mallela2022_MSAs/Hanford-Corcoran_CA_Hanford-Corcoran_CA.bngl new file mode 100644 index 00000000..70772108 --- /dev/null +++ b/Published/Mallela2022_MSAs/Hanford-Corcoran_CA_Hanford-Corcoran_CA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Hanford-Corcoran, CA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Hanford-Corcoran, CA +resetConcentrations() +simulate({suffix=>"Hanford-Corcoran, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Harrisburg-Carlisle_PA_Harrisburg-Carlisle_PA.bngl b/Published/Mallela2022_MSAs/Harrisburg-Carlisle_PA_Harrisburg-Carlisle_PA.bngl new file mode 100644 index 00000000..8fddfb0e --- /dev/null +++ b/Published/Mallela2022_MSAs/Harrisburg-Carlisle_PA_Harrisburg-Carlisle_PA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Harrisburg-Carlisle, PA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Harrisburg-Carlisle, PA +resetConcentrations() +simulate({suffix=>"Harrisburg-Carlisle, PA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Harrisonburg_VA_Harrisonburg_VA.bngl b/Published/Mallela2022_MSAs/Harrisonburg_VA_Harrisonburg_VA.bngl new file mode 100644 index 00000000..68a8f746 --- /dev/null +++ b/Published/Mallela2022_MSAs/Harrisonburg_VA_Harrisonburg_VA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Harrisonburg, VA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Harrisonburg, VA +resetConcentrations() +simulate({suffix=>"Harrisonburg, VA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Hartford-East_Hartford-Middletown_CT_Hartford-East_Hartford-Middletown_CT.bngl b/Published/Mallela2022_MSAs/Hartford-East_Hartford-Middletown_CT_Hartford-East_Hartford-Middletown_CT.bngl new file mode 100644 index 00000000..0eda5a3d --- /dev/null +++ b/Published/Mallela2022_MSAs/Hartford-East_Hartford-Middletown_CT_Hartford-East_Hartford-Middletown_CT.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Hartford-East Hartford-Middletown, CT +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Hartford-East Hartford-Middletown, CT +resetConcentrations() +simulate({suffix=>"Hartford-East Hartford-Middletown, CT",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Hattiesburg_MS_Hattiesburg_MS.bngl b/Published/Mallela2022_MSAs/Hattiesburg_MS_Hattiesburg_MS.bngl new file mode 100644 index 00000000..65be60af --- /dev/null +++ b/Published/Mallela2022_MSAs/Hattiesburg_MS_Hattiesburg_MS.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Hattiesburg, MS +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Hattiesburg, MS +resetConcentrations() +simulate({suffix=>"Hattiesburg, MS",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Hickory-Lenoir-Morganton_NC_Hickory-Lenoir-Morganton_NC.bngl b/Published/Mallela2022_MSAs/Hickory-Lenoir-Morganton_NC_Hickory-Lenoir-Morganton_NC.bngl new file mode 100644 index 00000000..57bff202 --- /dev/null +++ b/Published/Mallela2022_MSAs/Hickory-Lenoir-Morganton_NC_Hickory-Lenoir-Morganton_NC.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Hickory-Lenoir-Morganton, NC +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Hickory-Lenoir-Morganton, NC +resetConcentrations() +simulate({suffix=>"Hickory-Lenoir-Morganton, NC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Hilton_Head_Island-Bluffton-Beaufort_SC_Hilton_Head_Island-Bluffton-Beaufort_SC.bngl b/Published/Mallela2022_MSAs/Hilton_Head_Island-Bluffton-Beaufort_SC_Hilton_Head_Island-Bluffton-Beaufort_SC.bngl new file mode 100644 index 00000000..515542e1 --- /dev/null +++ b/Published/Mallela2022_MSAs/Hilton_Head_Island-Bluffton-Beaufort_SC_Hilton_Head_Island-Bluffton-Beaufort_SC.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Hilton Head Island-Bluffton-Beaufort, SC +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Hilton Head Island-Bluffton-Beaufort, SC +resetConcentrations() +simulate({suffix=>"Hilton Head Island-Bluffton-Beaufort, SC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Houma-Thibodaux_LA_Houma-Thibodaux_LA.bngl b/Published/Mallela2022_MSAs/Houma-Thibodaux_LA_Houma-Thibodaux_LA.bngl new file mode 100644 index 00000000..3ed9285c --- /dev/null +++ b/Published/Mallela2022_MSAs/Houma-Thibodaux_LA_Houma-Thibodaux_LA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Houma-Thibodaux, LA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Houma-Thibodaux, LA +resetConcentrations() +simulate({suffix=>"Houma-Thibodaux, LA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Houston-The_Woodlands-Sugar_Land_TX_Houston-The_Woodlands-Sugar_Land_TX.bngl b/Published/Mallela2022_MSAs/Houston-The_Woodlands-Sugar_Land_TX_Houston-The_Woodlands-Sugar_Land_TX.bngl new file mode 100644 index 00000000..b3d5b01b --- /dev/null +++ b/Published/Mallela2022_MSAs/Houston-The_Woodlands-Sugar_Land_TX_Houston-The_Woodlands-Sugar_Land_TX.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Houston-The Woodlands-Sugar Land, TX +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Houston-The Woodlands-Sugar Land, TX +resetConcentrations() +simulate({suffix=>"Houston-The Woodlands-Sugar Land, TX",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Huntington-Ashland_WV-KY-OH_Huntington-Ashland_WV-KY-OH.bngl b/Published/Mallela2022_MSAs/Huntington-Ashland_WV-KY-OH_Huntington-Ashland_WV-KY-OH.bngl new file mode 100644 index 00000000..cdbed390 --- /dev/null +++ b/Published/Mallela2022_MSAs/Huntington-Ashland_WV-KY-OH_Huntington-Ashland_WV-KY-OH.bngl @@ -0,0 +1,225 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Huntington-Ashland, WV-KY-OH +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Huntington-Ashland, WV-KY-OH +resetConcentrations() +simulate({suffix=>"Huntington-Ashland, WV-KY-OH",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Huntsville_AL_Huntsville_AL.bngl b/Published/Mallela2022_MSAs/Huntsville_AL_Huntsville_AL.bngl new file mode 100644 index 00000000..22eb4cb1 --- /dev/null +++ b/Published/Mallela2022_MSAs/Huntsville_AL_Huntsville_AL.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Huntsville, AL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Huntsville, AL +resetConcentrations() +simulate({suffix=>"Huntsville, AL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Indianapolis-Carmel-Anderson_IN_Indianapolis-Carmel-Anderson_IN.bngl b/Published/Mallela2022_MSAs/Indianapolis-Carmel-Anderson_IN_Indianapolis-Carmel-Anderson_IN.bngl new file mode 100644 index 00000000..ef2da62e --- /dev/null +++ b/Published/Mallela2022_MSAs/Indianapolis-Carmel-Anderson_IN_Indianapolis-Carmel-Anderson_IN.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Indianapolis-Carmel-Anderson, IN +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Indianapolis-Carmel-Anderson, IN +resetConcentrations() +simulate({suffix=>"Indianapolis-Carmel-Anderson, IN",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Iowa_City_IA_Iowa_City_IA.bngl b/Published/Mallela2022_MSAs/Iowa_City_IA_Iowa_City_IA.bngl new file mode 100644 index 00000000..98da29db --- /dev/null +++ b/Published/Mallela2022_MSAs/Iowa_City_IA_Iowa_City_IA.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Iowa City, IA +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Iowa City, IA +resetConcentrations() +simulate({suffix=>"Iowa City, IA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Jackson_MI_Jackson_MI.bngl b/Published/Mallela2022_MSAs/Jackson_MI_Jackson_MI.bngl new file mode 100644 index 00000000..ccd99399 --- /dev/null +++ b/Published/Mallela2022_MSAs/Jackson_MI_Jackson_MI.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Jackson, MI +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Jackson, MI +resetConcentrations() +simulate({suffix=>"Jackson, MI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Jackson_MS_Jackson_MS.bngl b/Published/Mallela2022_MSAs/Jackson_MS_Jackson_MS.bngl new file mode 100644 index 00000000..3b772293 --- /dev/null +++ b/Published/Mallela2022_MSAs/Jackson_MS_Jackson_MS.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Jackson, MS +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Jackson, MS +resetConcentrations() +simulate({suffix=>"Jackson, MS",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Jacksonville_FL_Jacksonville_FL.bngl b/Published/Mallela2022_MSAs/Jacksonville_FL_Jacksonville_FL.bngl new file mode 100644 index 00000000..e9df5f64 --- /dev/null +++ b/Published/Mallela2022_MSAs/Jacksonville_FL_Jacksonville_FL.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Jacksonville, FL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Jacksonville, FL +resetConcentrations() +simulate({suffix=>"Jacksonville, FL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Janesville-Beloit_WI_Janesville-Beloit_WI.bngl b/Published/Mallela2022_MSAs/Janesville-Beloit_WI_Janesville-Beloit_WI.bngl new file mode 100644 index 00000000..2704b818 --- /dev/null +++ b/Published/Mallela2022_MSAs/Janesville-Beloit_WI_Janesville-Beloit_WI.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Janesville-Beloit, WI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Janesville-Beloit, WI +resetConcentrations() +simulate({suffix=>"Janesville-Beloit, WI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Kalamazoo-Portage_MI_Kalamazoo-Portage_MI.bngl b/Published/Mallela2022_MSAs/Kalamazoo-Portage_MI_Kalamazoo-Portage_MI.bngl new file mode 100644 index 00000000..57ba0e3f --- /dev/null +++ b/Published/Mallela2022_MSAs/Kalamazoo-Portage_MI_Kalamazoo-Portage_MI.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Kalamazoo-Portage, MI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Kalamazoo-Portage, MI +resetConcentrations() +simulate({suffix=>"Kalamazoo-Portage, MI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Kankakee_IL_Kankakee_IL.bngl b/Published/Mallela2022_MSAs/Kankakee_IL_Kankakee_IL.bngl new file mode 100644 index 00000000..240e3341 --- /dev/null +++ b/Published/Mallela2022_MSAs/Kankakee_IL_Kankakee_IL.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Kankakee, IL +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Kankakee, IL +resetConcentrations() +simulate({suffix=>"Kankakee, IL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Kansas_City_MO-KS_Kansas_City_MO-KS.bngl b/Published/Mallela2022_MSAs/Kansas_City_MO-KS_Kansas_City_MO-KS.bngl new file mode 100644 index 00000000..53f1107c --- /dev/null +++ b/Published/Mallela2022_MSAs/Kansas_City_MO-KS_Kansas_City_MO-KS.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Kansas City, MO-KS +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Kansas City, MO-KS +resetConcentrations() +simulate({suffix=>"Kansas City, MO-KS",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Kennewick-Richland_WA_Kennewick-Richland_WA.bngl b/Published/Mallela2022_MSAs/Kennewick-Richland_WA_Kennewick-Richland_WA.bngl new file mode 100644 index 00000000..c224071a --- /dev/null +++ b/Published/Mallela2022_MSAs/Kennewick-Richland_WA_Kennewick-Richland_WA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Kennewick-Richland, WA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Kennewick-Richland, WA +resetConcentrations() +simulate({suffix=>"Kennewick-Richland, WA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Killeen-Temple_TX_Killeen-Temple_TX.bngl b/Published/Mallela2022_MSAs/Killeen-Temple_TX_Killeen-Temple_TX.bngl new file mode 100644 index 00000000..bc46f058 --- /dev/null +++ b/Published/Mallela2022_MSAs/Killeen-Temple_TX_Killeen-Temple_TX.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Killeen-Temple, TX +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Killeen-Temple, TX +resetConcentrations() +simulate({suffix=>"Killeen-Temple, TX",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Kingston_NY_Kingston_NY.bngl b/Published/Mallela2022_MSAs/Kingston_NY_Kingston_NY.bngl new file mode 100644 index 00000000..eaf451ce --- /dev/null +++ b/Published/Mallela2022_MSAs/Kingston_NY_Kingston_NY.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Kingston, NY +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Kingston, NY +resetConcentrations() +simulate({suffix=>"Kingston, NY",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Knoxville_TN_Knoxville_TN.bngl b/Published/Mallela2022_MSAs/Knoxville_TN_Knoxville_TN.bngl new file mode 100644 index 00000000..27355c2e --- /dev/null +++ b/Published/Mallela2022_MSAs/Knoxville_TN_Knoxville_TN.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Knoxville, TN +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Knoxville, TN +resetConcentrations() +simulate({suffix=>"Knoxville, TN",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Kokomo_IN_Kokomo_IN.bngl b/Published/Mallela2022_MSAs/Kokomo_IN_Kokomo_IN.bngl new file mode 100644 index 00000000..5531c25e --- /dev/null +++ b/Published/Mallela2022_MSAs/Kokomo_IN_Kokomo_IN.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Kokomo, IN +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Kokomo, IN +resetConcentrations() +simulate({suffix=>"Kokomo, IN",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Lafayette-West_Lafayette_IN_Lafayette-West_Lafayette_IN.bngl b/Published/Mallela2022_MSAs/Lafayette-West_Lafayette_IN_Lafayette-West_Lafayette_IN.bngl new file mode 100644 index 00000000..03b6c6a1 --- /dev/null +++ b/Published/Mallela2022_MSAs/Lafayette-West_Lafayette_IN_Lafayette-West_Lafayette_IN.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Lafayette-West Lafayette, IN +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Lafayette-West Lafayette, IN +resetConcentrations() +simulate({suffix=>"Lafayette-West Lafayette, IN",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Lafayette_LA_Lafayette_LA.bngl b/Published/Mallela2022_MSAs/Lafayette_LA_Lafayette_LA.bngl new file mode 100644 index 00000000..b22b75bd --- /dev/null +++ b/Published/Mallela2022_MSAs/Lafayette_LA_Lafayette_LA.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Lafayette, LA +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Lafayette, LA +resetConcentrations() +simulate({suffix=>"Lafayette, LA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Lake_Charles_LA_Lake_Charles_LA.bngl b/Published/Mallela2022_MSAs/Lake_Charles_LA_Lake_Charles_LA.bngl new file mode 100644 index 00000000..5287fef0 --- /dev/null +++ b/Published/Mallela2022_MSAs/Lake_Charles_LA_Lake_Charles_LA.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Lake Charles, LA +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Lake Charles, LA +resetConcentrations() +simulate({suffix=>"Lake Charles, LA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Lake_Havasu_City-Kingman_AZ_Lake_Havasu_City-Kingman_AZ.bngl b/Published/Mallela2022_MSAs/Lake_Havasu_City-Kingman_AZ_Lake_Havasu_City-Kingman_AZ.bngl new file mode 100644 index 00000000..51919fc4 --- /dev/null +++ b/Published/Mallela2022_MSAs/Lake_Havasu_City-Kingman_AZ_Lake_Havasu_City-Kingman_AZ.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Lake Havasu City-Kingman, AZ +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Lake Havasu City-Kingman, AZ +resetConcentrations() +simulate({suffix=>"Lake Havasu City-Kingman, AZ",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Lakeland-Winter_Haven_FL_Lakeland-Winter_Haven_FL.bngl b/Published/Mallela2022_MSAs/Lakeland-Winter_Haven_FL_Lakeland-Winter_Haven_FL.bngl new file mode 100644 index 00000000..423ad9d1 --- /dev/null +++ b/Published/Mallela2022_MSAs/Lakeland-Winter_Haven_FL_Lakeland-Winter_Haven_FL.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Lakeland-Winter Haven, FL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Lakeland-Winter Haven, FL +resetConcentrations() +simulate({suffix=>"Lakeland-Winter Haven, FL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Lancaster_PA_Lancaster_PA.bngl b/Published/Mallela2022_MSAs/Lancaster_PA_Lancaster_PA.bngl new file mode 100644 index 00000000..de2508e4 --- /dev/null +++ b/Published/Mallela2022_MSAs/Lancaster_PA_Lancaster_PA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Lancaster, PA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Lancaster, PA +resetConcentrations() +simulate({suffix=>"Lancaster, PA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Lansing-East_Lansing_MI_Lansing-East_Lansing_MI.bngl b/Published/Mallela2022_MSAs/Lansing-East_Lansing_MI_Lansing-East_Lansing_MI.bngl new file mode 100644 index 00000000..5b63ed6f --- /dev/null +++ b/Published/Mallela2022_MSAs/Lansing-East_Lansing_MI_Lansing-East_Lansing_MI.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Lansing-East Lansing, MI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Lansing-East Lansing, MI +resetConcentrations() +simulate({suffix=>"Lansing-East Lansing, MI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Laredo_TX_Laredo_TX.bngl b/Published/Mallela2022_MSAs/Laredo_TX_Laredo_TX.bngl new file mode 100644 index 00000000..132c7b7e --- /dev/null +++ b/Published/Mallela2022_MSAs/Laredo_TX_Laredo_TX.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Laredo, TX +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Laredo, TX +resetConcentrations() +simulate({suffix=>"Laredo, TX",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Las_Cruces_NM_Las_Cruces_NM.bngl b/Published/Mallela2022_MSAs/Las_Cruces_NM_Las_Cruces_NM.bngl new file mode 100644 index 00000000..ce44745e --- /dev/null +++ b/Published/Mallela2022_MSAs/Las_Cruces_NM_Las_Cruces_NM.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Las Cruces, NM +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Las Cruces, NM +resetConcentrations() +simulate({suffix=>"Las Cruces, NM",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Las_Vegas-Henderson-Paradise_NV_Las_Vegas-Henderson-Paradise_NV.bngl b/Published/Mallela2022_MSAs/Las_Vegas-Henderson-Paradise_NV_Las_Vegas-Henderson-Paradise_NV.bngl new file mode 100644 index 00000000..6a705735 --- /dev/null +++ b/Published/Mallela2022_MSAs/Las_Vegas-Henderson-Paradise_NV_Las_Vegas-Henderson-Paradise_NV.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Las Vegas-Henderson-Paradise, NV +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Las Vegas-Henderson-Paradise, NV +resetConcentrations() +simulate({suffix=>"Las Vegas-Henderson-Paradise, NV",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Lawton_OK_Lawton_OK.bngl b/Published/Mallela2022_MSAs/Lawton_OK_Lawton_OK.bngl new file mode 100644 index 00000000..cdd0451c --- /dev/null +++ b/Published/Mallela2022_MSAs/Lawton_OK_Lawton_OK.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Lawton, OK +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Lawton, OK +resetConcentrations() +simulate({suffix=>"Lawton, OK",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Lebanon_PA_Lebanon_PA.bngl b/Published/Mallela2022_MSAs/Lebanon_PA_Lebanon_PA.bngl new file mode 100644 index 00000000..3069eeea --- /dev/null +++ b/Published/Mallela2022_MSAs/Lebanon_PA_Lebanon_PA.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Lebanon, PA +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Lebanon, PA +resetConcentrations() +simulate({suffix=>"Lebanon, PA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Lexington-Fayette_KY_Lexington-Fayette_KY.bngl b/Published/Mallela2022_MSAs/Lexington-Fayette_KY_Lexington-Fayette_KY.bngl new file mode 100644 index 00000000..cff36197 --- /dev/null +++ b/Published/Mallela2022_MSAs/Lexington-Fayette_KY_Lexington-Fayette_KY.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Lexington-Fayette, KY +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Lexington-Fayette, KY +resetConcentrations() +simulate({suffix=>"Lexington-Fayette, KY",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Lincoln_NE_Lincoln_NE.bngl b/Published/Mallela2022_MSAs/Lincoln_NE_Lincoln_NE.bngl new file mode 100644 index 00000000..bb4d4103 --- /dev/null +++ b/Published/Mallela2022_MSAs/Lincoln_NE_Lincoln_NE.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Lincoln, NE +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Lincoln, NE +resetConcentrations() +simulate({suffix=>"Lincoln, NE",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Little_Rock-North_Little_Rock-Conway_AR_Little_Rock-North_Little_Rock-Conway_AR.bngl b/Published/Mallela2022_MSAs/Little_Rock-North_Little_Rock-Conway_AR_Little_Rock-North_Little_Rock-Conway_AR.bngl new file mode 100644 index 00000000..28fd5a98 --- /dev/null +++ b/Published/Mallela2022_MSAs/Little_Rock-North_Little_Rock-Conway_AR_Little_Rock-North_Little_Rock-Conway_AR.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Little Rock-North Little Rock-Conway, AR +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Little Rock-North Little Rock-Conway, AR +resetConcentrations() +simulate({suffix=>"Little Rock-North Little Rock-Conway, AR",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Longview_TX_Longview_TX.bngl b/Published/Mallela2022_MSAs/Longview_TX_Longview_TX.bngl new file mode 100644 index 00000000..aa48da18 --- /dev/null +++ b/Published/Mallela2022_MSAs/Longview_TX_Longview_TX.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Longview, TX +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Longview, TX +resetConcentrations() +simulate({suffix=>"Longview, TX",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Los_Angeles-Long_Beach-Anaheim_CA_Los_Angeles-Long_Beach-Anaheim_CA.bngl b/Published/Mallela2022_MSAs/Los_Angeles-Long_Beach-Anaheim_CA_Los_Angeles-Long_Beach-Anaheim_CA.bngl new file mode 100644 index 00000000..eb3a5fdb --- /dev/null +++ b/Published/Mallela2022_MSAs/Los_Angeles-Long_Beach-Anaheim_CA_Los_Angeles-Long_Beach-Anaheim_CA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Los Angeles-Long Beach-Anaheim, CA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Los Angeles-Long Beach-Anaheim, CA +resetConcentrations() +simulate({suffix=>"Los Angeles-Long Beach-Anaheim, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Louisville_Jefferson_County_KY-IN_Louisville_Jefferson_County_KY-IN.bngl b/Published/Mallela2022_MSAs/Louisville_Jefferson_County_KY-IN_Louisville_Jefferson_County_KY-IN.bngl new file mode 100644 index 00000000..8e2ec13f --- /dev/null +++ b/Published/Mallela2022_MSAs/Louisville_Jefferson_County_KY-IN_Louisville_Jefferson_County_KY-IN.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Louisville/Jefferson County, KY-IN +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Louisville/Jefferson County, KY-IN +resetConcentrations() +simulate({suffix=>"Louisville/Jefferson County, KY-IN",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Lubbock_TX_Lubbock_TX.bngl b/Published/Mallela2022_MSAs/Lubbock_TX_Lubbock_TX.bngl new file mode 100644 index 00000000..05bd2f00 --- /dev/null +++ b/Published/Mallela2022_MSAs/Lubbock_TX_Lubbock_TX.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Lubbock, TX +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Lubbock, TX +resetConcentrations() +simulate({suffix=>"Lubbock, TX",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Macon-Bibb_County_GA_Macon-Bibb_County_GA.bngl b/Published/Mallela2022_MSAs/Macon-Bibb_County_GA_Macon-Bibb_County_GA.bngl new file mode 100644 index 00000000..9bc1b582 --- /dev/null +++ b/Published/Mallela2022_MSAs/Macon-Bibb_County_GA_Macon-Bibb_County_GA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Macon-Bibb County, GA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Macon-Bibb County, GA +resetConcentrations() +simulate({suffix=>"Macon-Bibb County, GA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Madison_WI_Madison_WI.bngl b/Published/Mallela2022_MSAs/Madison_WI_Madison_WI.bngl new file mode 100644 index 00000000..8056df63 --- /dev/null +++ b/Published/Mallela2022_MSAs/Madison_WI_Madison_WI.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Madison, WI +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Madison, WI +resetConcentrations() +simulate({suffix=>"Madison, WI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Manchester-Nashua_NH_Manchester-Nashua_NH.bngl b/Published/Mallela2022_MSAs/Manchester-Nashua_NH_Manchester-Nashua_NH.bngl new file mode 100644 index 00000000..2d4eb372 --- /dev/null +++ b/Published/Mallela2022_MSAs/Manchester-Nashua_NH_Manchester-Nashua_NH.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Manchester-Nashua, NH +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Manchester-Nashua, NH +resetConcentrations() +simulate({suffix=>"Manchester-Nashua, NH",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/McAllen-Edinburg-Mission_TX_McAllen-Edinburg-Mission_TX.bngl b/Published/Mallela2022_MSAs/McAllen-Edinburg-Mission_TX_McAllen-Edinburg-Mission_TX.bngl new file mode 100644 index 00000000..6f5be977 --- /dev/null +++ b/Published/Mallela2022_MSAs/McAllen-Edinburg-Mission_TX_McAllen-Edinburg-Mission_TX.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of McAllen-Edinburg-Mission, TX +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in McAllen-Edinburg-Mission, TX +resetConcentrations() +simulate({suffix=>"McAllen-Edinburg-Mission, TX",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Memphis_TN-MS-AR_Memphis_TN-MS-AR.bngl b/Published/Mallela2022_MSAs/Memphis_TN-MS-AR_Memphis_TN-MS-AR.bngl new file mode 100644 index 00000000..4d413bf9 --- /dev/null +++ b/Published/Mallela2022_MSAs/Memphis_TN-MS-AR_Memphis_TN-MS-AR.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Memphis, TN-MS-AR +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Memphis, TN-MS-AR +resetConcentrations() +simulate({suffix=>"Memphis, TN-MS-AR",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Merced_CA_Merced_CA.bngl b/Published/Mallela2022_MSAs/Merced_CA_Merced_CA.bngl new file mode 100644 index 00000000..703f1d4d --- /dev/null +++ b/Published/Mallela2022_MSAs/Merced_CA_Merced_CA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Merced, CA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Merced, CA +resetConcentrations() +simulate({suffix=>"Merced, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Miami-Fort_Lauderdale-West_Palm_Beach_FL_Miami-Fort_Lauderdale-West_Palm_Beach_FL.bngl b/Published/Mallela2022_MSAs/Miami-Fort_Lauderdale-West_Palm_Beach_FL_Miami-Fort_Lauderdale-West_Palm_Beach_FL.bngl new file mode 100644 index 00000000..50c44a1c --- /dev/null +++ b/Published/Mallela2022_MSAs/Miami-Fort_Lauderdale-West_Palm_Beach_FL_Miami-Fort_Lauderdale-West_Palm_Beach_FL.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Miami-Fort Lauderdale-West Palm Beach, FL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Miami-Fort Lauderdale-West Palm Beach, FL +resetConcentrations() +simulate({suffix=>"Miami-Fort Lauderdale-West Palm Beach, FL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Michigan_City-La_Porte_IN_Michigan_City-La_Porte_IN.bngl b/Published/Mallela2022_MSAs/Michigan_City-La_Porte_IN_Michigan_City-La_Porte_IN.bngl new file mode 100644 index 00000000..48e9af57 --- /dev/null +++ b/Published/Mallela2022_MSAs/Michigan_City-La_Porte_IN_Michigan_City-La_Porte_IN.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Michigan City-La Porte, IN +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Michigan City-La Porte, IN +resetConcentrations() +simulate({suffix=>"Michigan City-La Porte, IN",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Milwaukee-Waukesha_WI_Milwaukee-Waukesha_WI.bngl b/Published/Mallela2022_MSAs/Milwaukee-Waukesha_WI_Milwaukee-Waukesha_WI.bngl new file mode 100644 index 00000000..d432245c --- /dev/null +++ b/Published/Mallela2022_MSAs/Milwaukee-Waukesha_WI_Milwaukee-Waukesha_WI.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Milwaukee-Waukesha, WI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Milwaukee-Waukesha, WI +resetConcentrations() +simulate({suffix=>"Milwaukee-Waukesha, WI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Minneapolis-St._Paul-Bloomington_MN-WI_Minneapolis-St._Paul-Bloomington_MN-WI.bngl b/Published/Mallela2022_MSAs/Minneapolis-St._Paul-Bloomington_MN-WI_Minneapolis-St._Paul-Bloomington_MN-WI.bngl new file mode 100644 index 00000000..e3487f12 --- /dev/null +++ b/Published/Mallela2022_MSAs/Minneapolis-St._Paul-Bloomington_MN-WI_Minneapolis-St._Paul-Bloomington_MN-WI.bngl @@ -0,0 +1,225 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Minneapolis-St. Paul-Bloomington, MN-WI +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Minneapolis-St. Paul-Bloomington, MN-WI +resetConcentrations() +simulate({suffix=>"Minneapolis-St. Paul-Bloomington, MN-WI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Mobile_AL_Mobile_AL.bngl b/Published/Mallela2022_MSAs/Mobile_AL_Mobile_AL.bngl new file mode 100644 index 00000000..49769d0b --- /dev/null +++ b/Published/Mallela2022_MSAs/Mobile_AL_Mobile_AL.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Mobile, AL +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Mobile, AL +resetConcentrations() +simulate({suffix=>"Mobile, AL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Modesto_CA_Modesto_CA.bngl b/Published/Mallela2022_MSAs/Modesto_CA_Modesto_CA.bngl new file mode 100644 index 00000000..b948d75d --- /dev/null +++ b/Published/Mallela2022_MSAs/Modesto_CA_Modesto_CA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Modesto, CA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Modesto, CA +resetConcentrations() +simulate({suffix=>"Modesto, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Monroe_LA_Monroe_LA.bngl b/Published/Mallela2022_MSAs/Monroe_LA_Monroe_LA.bngl new file mode 100644 index 00000000..c3f7b1c0 --- /dev/null +++ b/Published/Mallela2022_MSAs/Monroe_LA_Monroe_LA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Monroe, LA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Monroe, LA +resetConcentrations() +simulate({suffix=>"Monroe, LA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Monroe_MI_Monroe_MI.bngl b/Published/Mallela2022_MSAs/Monroe_MI_Monroe_MI.bngl new file mode 100644 index 00000000..86f1d6e8 --- /dev/null +++ b/Published/Mallela2022_MSAs/Monroe_MI_Monroe_MI.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Monroe, MI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Monroe, MI +resetConcentrations() +simulate({suffix=>"Monroe, MI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Montgomery_AL_Montgomery_AL.bngl b/Published/Mallela2022_MSAs/Montgomery_AL_Montgomery_AL.bngl new file mode 100644 index 00000000..4b279110 --- /dev/null +++ b/Published/Mallela2022_MSAs/Montgomery_AL_Montgomery_AL.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Montgomery, AL +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Montgomery, AL +resetConcentrations() +simulate({suffix=>"Montgomery, AL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Mount_Vernon-Anacortes_WA_Mount_Vernon-Anacortes_WA.bngl b/Published/Mallela2022_MSAs/Mount_Vernon-Anacortes_WA_Mount_Vernon-Anacortes_WA.bngl new file mode 100644 index 00000000..009bc3cd --- /dev/null +++ b/Published/Mallela2022_MSAs/Mount_Vernon-Anacortes_WA_Mount_Vernon-Anacortes_WA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Mount Vernon-Anacortes, WA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Mount Vernon-Anacortes, WA +resetConcentrations() +simulate({suffix=>"Mount Vernon-Anacortes, WA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Muncie_IN_Muncie_IN.bngl b/Published/Mallela2022_MSAs/Muncie_IN_Muncie_IN.bngl new file mode 100644 index 00000000..63503183 --- /dev/null +++ b/Published/Mallela2022_MSAs/Muncie_IN_Muncie_IN.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Muncie, IN +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Muncie, IN +resetConcentrations() +simulate({suffix=>"Muncie, IN",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Muskegon_MI_Muskegon_MI.bngl b/Published/Mallela2022_MSAs/Muskegon_MI_Muskegon_MI.bngl new file mode 100644 index 00000000..2f8ffa79 --- /dev/null +++ b/Published/Mallela2022_MSAs/Muskegon_MI_Muskegon_MI.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Muskegon, MI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Muskegon, MI +resetConcentrations() +simulate({suffix=>"Muskegon, MI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Naples-Marco_Island_FL_Naples-Marco_Island_FL.bngl b/Published/Mallela2022_MSAs/Naples-Marco_Island_FL_Naples-Marco_Island_FL.bngl new file mode 100644 index 00000000..6439ea3e --- /dev/null +++ b/Published/Mallela2022_MSAs/Naples-Marco_Island_FL_Naples-Marco_Island_FL.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Naples-Marco Island, FL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Naples-Marco Island, FL +resetConcentrations() +simulate({suffix=>"Naples-Marco Island, FL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Nashville-Davidson-Murfreesboro-Franklin_TN_Nashville-Davidson-Murfreesboro-Franklin_TN.bngl b/Published/Mallela2022_MSAs/Nashville-Davidson-Murfreesboro-Franklin_TN_Nashville-Davidson-Murfreesboro-Franklin_TN.bngl new file mode 100644 index 00000000..f8191061 --- /dev/null +++ b/Published/Mallela2022_MSAs/Nashville-Davidson-Murfreesboro-Franklin_TN_Nashville-Davidson-Murfreesboro-Franklin_TN.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Nashville-Davidson–Murfreesboro–Franklin, TN +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Nashville-Davidson–Murfreesboro–Franklin, TN +resetConcentrations() +simulate({suffix=>"Nashville-Davidson–Murfreesboro–Franklin, TN",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/New_Haven-Milford_CT_New_Haven-Milford_CT.bngl b/Published/Mallela2022_MSAs/New_Haven-Milford_CT_New_Haven-Milford_CT.bngl new file mode 100644 index 00000000..5dd15345 --- /dev/null +++ b/Published/Mallela2022_MSAs/New_Haven-Milford_CT_New_Haven-Milford_CT.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of New Haven-Milford, CT +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in New Haven-Milford, CT +resetConcentrations() +simulate({suffix=>"New Haven-Milford, CT",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/New_Orleans-Metairie_LA_New_Orleans-Metairie_LA.bngl b/Published/Mallela2022_MSAs/New_Orleans-Metairie_LA_New_Orleans-Metairie_LA.bngl new file mode 100644 index 00000000..9fc2b35b --- /dev/null +++ b/Published/Mallela2022_MSAs/New_Orleans-Metairie_LA_New_Orleans-Metairie_LA.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of New Orleans-Metairie, LA +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in New Orleans-Metairie, LA +resetConcentrations() +simulate({suffix=>"New Orleans-Metairie, LA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/New_York-Newark-Jersey_City_NY-NJ-PA_New_York-Newark-Jersey_City_NY-NJ-PA.bngl b/Published/Mallela2022_MSAs/New_York-Newark-Jersey_City_NY-NJ-PA_New_York-Newark-Jersey_City_NY-NJ-PA.bngl new file mode 100644 index 00000000..445c32e5 --- /dev/null +++ b/Published/Mallela2022_MSAs/New_York-Newark-Jersey_City_NY-NJ-PA_New_York-Newark-Jersey_City_NY-NJ-PA.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of New York-Newark-Jersey City, NY-NJ-PA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in New York-Newark-Jersey City, NY-NJ-PA +resetConcentrations() +simulate({suffix=>"New York-Newark-Jersey City, NY-NJ-PA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Niles_MI_Niles_MI.bngl b/Published/Mallela2022_MSAs/Niles_MI_Niles_MI.bngl new file mode 100644 index 00000000..4aaf17dd --- /dev/null +++ b/Published/Mallela2022_MSAs/Niles_MI_Niles_MI.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Niles, MI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Niles, MI +resetConcentrations() +simulate({suffix=>"Niles, MI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/North_Port-Sarasota-Bradenton_FL_North_Port-Sarasota-Bradenton_FL.bngl b/Published/Mallela2022_MSAs/North_Port-Sarasota-Bradenton_FL_North_Port-Sarasota-Bradenton_FL.bngl new file mode 100644 index 00000000..537b4e60 --- /dev/null +++ b/Published/Mallela2022_MSAs/North_Port-Sarasota-Bradenton_FL_North_Port-Sarasota-Bradenton_FL.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of North Port-Sarasota-Bradenton, FL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in North Port-Sarasota-Bradenton, FL +resetConcentrations() +simulate({suffix=>"North Port-Sarasota-Bradenton, FL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Norwich-New_London_CT_Norwich-New_London_CT.bngl b/Published/Mallela2022_MSAs/Norwich-New_London_CT_Norwich-New_London_CT.bngl new file mode 100644 index 00000000..d25651b7 --- /dev/null +++ b/Published/Mallela2022_MSAs/Norwich-New_London_CT_Norwich-New_London_CT.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Norwich-New London, CT +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Norwich-New London, CT +resetConcentrations() +simulate({suffix=>"Norwich-New London, CT",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Ocala_FL_Ocala_FL.bngl b/Published/Mallela2022_MSAs/Ocala_FL_Ocala_FL.bngl new file mode 100644 index 00000000..631602a9 --- /dev/null +++ b/Published/Mallela2022_MSAs/Ocala_FL_Ocala_FL.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Ocala, FL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Ocala, FL +resetConcentrations() +simulate({suffix=>"Ocala, FL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Ocean_City_NJ_Ocean_City_NJ.bngl b/Published/Mallela2022_MSAs/Ocean_City_NJ_Ocean_City_NJ.bngl new file mode 100644 index 00000000..2a2e1f5f --- /dev/null +++ b/Published/Mallela2022_MSAs/Ocean_City_NJ_Ocean_City_NJ.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Ocean City, NJ +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Ocean City, NJ +resetConcentrations() +simulate({suffix=>"Ocean City, NJ",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Ogden-Clearfield_UT_Ogden-Clearfield_UT.bngl b/Published/Mallela2022_MSAs/Ogden-Clearfield_UT_Ogden-Clearfield_UT.bngl new file mode 100644 index 00000000..62f1943f --- /dev/null +++ b/Published/Mallela2022_MSAs/Ogden-Clearfield_UT_Ogden-Clearfield_UT.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Ogden-Clearfield, UT +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Ogden-Clearfield, UT +resetConcentrations() +simulate({suffix=>"Ogden-Clearfield, UT",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Oklahoma_City_OK_Oklahoma_City_OK.bngl b/Published/Mallela2022_MSAs/Oklahoma_City_OK_Oklahoma_City_OK.bngl new file mode 100644 index 00000000..5707d517 --- /dev/null +++ b/Published/Mallela2022_MSAs/Oklahoma_City_OK_Oklahoma_City_OK.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Oklahoma City, OK +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Oklahoma City, OK +resetConcentrations() +simulate({suffix=>"Oklahoma City, OK",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Omaha-Council_Bluffs_NE-IA_Omaha-Council_Bluffs_NE-IA.bngl b/Published/Mallela2022_MSAs/Omaha-Council_Bluffs_NE-IA_Omaha-Council_Bluffs_NE-IA.bngl new file mode 100644 index 00000000..6aa484cc --- /dev/null +++ b/Published/Mallela2022_MSAs/Omaha-Council_Bluffs_NE-IA_Omaha-Council_Bluffs_NE-IA.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Omaha-Council Bluffs, NE-IA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Omaha-Council Bluffs, NE-IA +resetConcentrations() +simulate({suffix=>"Omaha-Council Bluffs, NE-IA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Orlando-Kissimmee-Sanford_FL_Orlando-Kissimmee-Sanford_FL.bngl b/Published/Mallela2022_MSAs/Orlando-Kissimmee-Sanford_FL_Orlando-Kissimmee-Sanford_FL.bngl new file mode 100644 index 00000000..51ddfcbe --- /dev/null +++ b/Published/Mallela2022_MSAs/Orlando-Kissimmee-Sanford_FL_Orlando-Kissimmee-Sanford_FL.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Orlando-Kissimmee-Sanford, FL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Orlando-Kissimmee-Sanford, FL +resetConcentrations() +simulate({suffix=>"Orlando-Kissimmee-Sanford, FL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Owensboro_KY_Owensboro_KY.bngl b/Published/Mallela2022_MSAs/Owensboro_KY_Owensboro_KY.bngl new file mode 100644 index 00000000..279d3741 --- /dev/null +++ b/Published/Mallela2022_MSAs/Owensboro_KY_Owensboro_KY.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Owensboro, KY +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Owensboro, KY +resetConcentrations() +simulate({suffix=>"Owensboro, KY",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Oxnard-Thousand_Oaks-Ventura_CA_Oxnard-Thousand_Oaks-Ventura_CA.bngl b/Published/Mallela2022_MSAs/Oxnard-Thousand_Oaks-Ventura_CA_Oxnard-Thousand_Oaks-Ventura_CA.bngl new file mode 100644 index 00000000..d4ca7737 --- /dev/null +++ b/Published/Mallela2022_MSAs/Oxnard-Thousand_Oaks-Ventura_CA_Oxnard-Thousand_Oaks-Ventura_CA.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Oxnard-Thousand Oaks-Ventura, CA +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Oxnard-Thousand Oaks-Ventura, CA +resetConcentrations() +simulate({suffix=>"Oxnard-Thousand Oaks-Ventura, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Palm_Bay-Melbourne-Titusville_FL_Palm_Bay-Melbourne-Titusville_FL.bngl b/Published/Mallela2022_MSAs/Palm_Bay-Melbourne-Titusville_FL_Palm_Bay-Melbourne-Titusville_FL.bngl new file mode 100644 index 00000000..02dad3e4 --- /dev/null +++ b/Published/Mallela2022_MSAs/Palm_Bay-Melbourne-Titusville_FL_Palm_Bay-Melbourne-Titusville_FL.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Palm Bay-Melbourne-Titusville, FL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Palm Bay-Melbourne-Titusville, FL +resetConcentrations() +simulate({suffix=>"Palm Bay-Melbourne-Titusville, FL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Pensacola-Ferry_Pass-Brent_FL_Pensacola-Ferry_Pass-Brent_FL.bngl b/Published/Mallela2022_MSAs/Pensacola-Ferry_Pass-Brent_FL_Pensacola-Ferry_Pass-Brent_FL.bngl new file mode 100644 index 00000000..fea961f4 --- /dev/null +++ b/Published/Mallela2022_MSAs/Pensacola-Ferry_Pass-Brent_FL_Pensacola-Ferry_Pass-Brent_FL.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Pensacola-Ferry Pass-Brent, FL +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Pensacola-Ferry Pass-Brent, FL +resetConcentrations() +simulate({suffix=>"Pensacola-Ferry Pass-Brent, FL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Peoria_IL_Peoria_IL.bngl b/Published/Mallela2022_MSAs/Peoria_IL_Peoria_IL.bngl new file mode 100644 index 00000000..5ca8ddb8 --- /dev/null +++ b/Published/Mallela2022_MSAs/Peoria_IL_Peoria_IL.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Peoria, IL +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Peoria, IL +resetConcentrations() +simulate({suffix=>"Peoria, IL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Philadelphia-Camden-Wilmington_PA-NJ-DE-MD_Philadelphia-Camden-Wilmington_PA-NJ-DE-MD.bngl b/Published/Mallela2022_MSAs/Philadelphia-Camden-Wilmington_PA-NJ-DE-MD_Philadelphia-Camden-Wilmington_PA-NJ-DE-MD.bngl new file mode 100644 index 00000000..b648a5de --- /dev/null +++ b/Published/Mallela2022_MSAs/Philadelphia-Camden-Wilmington_PA-NJ-DE-MD_Philadelphia-Camden-Wilmington_PA-NJ-DE-MD.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Philadelphia-Camden-Wilmington, PA-NJ-DE-MD +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Philadelphia-Camden-Wilmington, PA-NJ-DE-MD +resetConcentrations() +simulate({suffix=>"Philadelphia-Camden-Wilmington, PA-NJ-DE-MD",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Phoenix-Mesa-Chandler_AZ_Phoenix-Mesa-Chandler_AZ.bngl b/Published/Mallela2022_MSAs/Phoenix-Mesa-Chandler_AZ_Phoenix-Mesa-Chandler_AZ.bngl new file mode 100644 index 00000000..5e26b39d --- /dev/null +++ b/Published/Mallela2022_MSAs/Phoenix-Mesa-Chandler_AZ_Phoenix-Mesa-Chandler_AZ.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Phoenix-Mesa-Chandler, AZ +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Phoenix-Mesa-Chandler, AZ +resetConcentrations() +simulate({suffix=>"Phoenix-Mesa-Chandler, AZ",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Pine_Bluff_AR_Pine_Bluff_AR.bngl b/Published/Mallela2022_MSAs/Pine_Bluff_AR_Pine_Bluff_AR.bngl new file mode 100644 index 00000000..d458ccd1 --- /dev/null +++ b/Published/Mallela2022_MSAs/Pine_Bluff_AR_Pine_Bluff_AR.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Pine Bluff, AR +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Pine Bluff, AR +resetConcentrations() +simulate({suffix=>"Pine Bluff, AR",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Pittsburgh_PA_Pittsburgh_PA.bngl b/Published/Mallela2022_MSAs/Pittsburgh_PA_Pittsburgh_PA.bngl new file mode 100644 index 00000000..87239433 --- /dev/null +++ b/Published/Mallela2022_MSAs/Pittsburgh_PA_Pittsburgh_PA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Pittsburgh, PA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Pittsburgh, PA +resetConcentrations() +simulate({suffix=>"Pittsburgh, PA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Pittsfield_MA_Pittsfield_MA.bngl b/Published/Mallela2022_MSAs/Pittsfield_MA_Pittsfield_MA.bngl new file mode 100644 index 00000000..d6612ab1 --- /dev/null +++ b/Published/Mallela2022_MSAs/Pittsfield_MA_Pittsfield_MA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Pittsfield, MA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Pittsfield, MA +resetConcentrations() +simulate({suffix=>"Pittsfield, MA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Port_St._Lucie_FL_Port_St._Lucie_FL.bngl b/Published/Mallela2022_MSAs/Port_St._Lucie_FL_Port_St._Lucie_FL.bngl new file mode 100644 index 00000000..29ffcbc9 --- /dev/null +++ b/Published/Mallela2022_MSAs/Port_St._Lucie_FL_Port_St._Lucie_FL.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Port St. Lucie, FL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Port St. Lucie, FL +resetConcentrations() +simulate({suffix=>"Port St. Lucie, FL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Portland-South_Portland_ME_Portland-South_Portland_ME.bngl b/Published/Mallela2022_MSAs/Portland-South_Portland_ME_Portland-South_Portland_ME.bngl new file mode 100644 index 00000000..9f18bcef --- /dev/null +++ b/Published/Mallela2022_MSAs/Portland-South_Portland_ME_Portland-South_Portland_ME.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Portland-South Portland, ME +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Portland-South Portland, ME +resetConcentrations() +simulate({suffix=>"Portland-South Portland, ME",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Portland-Vancouver-Hillsboro_OR-WA_Portland-Vancouver-Hillsboro_OR-WA.bngl b/Published/Mallela2022_MSAs/Portland-Vancouver-Hillsboro_OR-WA_Portland-Vancouver-Hillsboro_OR-WA.bngl new file mode 100644 index 00000000..f1f13bd2 --- /dev/null +++ b/Published/Mallela2022_MSAs/Portland-Vancouver-Hillsboro_OR-WA_Portland-Vancouver-Hillsboro_OR-WA.bngl @@ -0,0 +1,225 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Portland-Vancouver-Hillsboro, OR-WA +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Portland-Vancouver-Hillsboro, OR-WA +resetConcentrations() +simulate({suffix=>"Portland-Vancouver-Hillsboro, OR-WA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Poughkeepsie-Newburgh-Middletown_NY_Poughkeepsie-Newburgh-Middletown_NY.bngl b/Published/Mallela2022_MSAs/Poughkeepsie-Newburgh-Middletown_NY_Poughkeepsie-Newburgh-Middletown_NY.bngl new file mode 100644 index 00000000..e2c14ec0 --- /dev/null +++ b/Published/Mallela2022_MSAs/Poughkeepsie-Newburgh-Middletown_NY_Poughkeepsie-Newburgh-Middletown_NY.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Poughkeepsie-Newburgh-Middletown, NY +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Poughkeepsie-Newburgh-Middletown, NY +resetConcentrations() +simulate({suffix=>"Poughkeepsie-Newburgh-Middletown, NY",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Prescott_Valley-Prescott_AZ_Prescott_Valley-Prescott_AZ.bngl b/Published/Mallela2022_MSAs/Prescott_Valley-Prescott_AZ_Prescott_Valley-Prescott_AZ.bngl new file mode 100644 index 00000000..e907a04a --- /dev/null +++ b/Published/Mallela2022_MSAs/Prescott_Valley-Prescott_AZ_Prescott_Valley-Prescott_AZ.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Prescott Valley-Prescott, AZ +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Prescott Valley-Prescott, AZ +resetConcentrations() +simulate({suffix=>"Prescott Valley-Prescott, AZ",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Providence-Warwick_RI-MA_Providence-Warwick_RI-MA.bngl b/Published/Mallela2022_MSAs/Providence-Warwick_RI-MA_Providence-Warwick_RI-MA.bngl new file mode 100644 index 00000000..c304a594 --- /dev/null +++ b/Published/Mallela2022_MSAs/Providence-Warwick_RI-MA_Providence-Warwick_RI-MA.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Providence-Warwick, RI-MA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Providence-Warwick, RI-MA +resetConcentrations() +simulate({suffix=>"Providence-Warwick, RI-MA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Provo-Orem_UT_Provo-Orem_UT.bngl b/Published/Mallela2022_MSAs/Provo-Orem_UT_Provo-Orem_UT.bngl new file mode 100644 index 00000000..b1db157f --- /dev/null +++ b/Published/Mallela2022_MSAs/Provo-Orem_UT_Provo-Orem_UT.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Provo-Orem, UT +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Provo-Orem, UT +resetConcentrations() +simulate({suffix=>"Provo-Orem, UT",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Pueblo_CO_Pueblo_CO.bngl b/Published/Mallela2022_MSAs/Pueblo_CO_Pueblo_CO.bngl new file mode 100644 index 00000000..eb1b583f --- /dev/null +++ b/Published/Mallela2022_MSAs/Pueblo_CO_Pueblo_CO.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Pueblo, CO +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Pueblo, CO +resetConcentrations() +simulate({suffix=>"Pueblo, CO",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Punta_Gorda_FL_Punta_Gorda_FL.bngl b/Published/Mallela2022_MSAs/Punta_Gorda_FL_Punta_Gorda_FL.bngl new file mode 100644 index 00000000..e0895678 --- /dev/null +++ b/Published/Mallela2022_MSAs/Punta_Gorda_FL_Punta_Gorda_FL.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Punta Gorda, FL +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Punta Gorda, FL +resetConcentrations() +simulate({suffix=>"Punta Gorda, FL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/README.md b/Published/Mallela2022_MSAs/README.md new file mode 100644 index 00000000..e9f578d2 --- /dev/null +++ b/Published/Mallela2022_MSAs/README.md @@ -0,0 +1,301 @@ +# Mallela 2022 - COVID-19 MSA Models + +Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas. + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- Abilene_TX_Abilene_TX.bngl +- Akron_OH_Akron_OH.bngl +- Albany-Schenectady-Troy_NY_Albany-Schenectady-Troy_NY.bngl +- Albany_GA_Albany_GA.bngl +- Albuquerque_NM_Albuquerque_NM.bngl +- Alexandria_LA_Alexandria_LA.bngl +- Allentown-Bethlehem-Easton_PA-NJ_Allentown-Bethlehem-Easton_PA-NJ.bngl +- Amarillo_TX_Amarillo_TX.bngl +- Anchorage_AK_Anchorage_AK.bngl +- Ann_Arbor_MI_Ann_Arbor_MI.bngl +- Appleton_WI_Appleton_WI.bngl +- Asheville_NC_Asheville_NC.bngl +- Athens-Clarke_County_GA_Athens-Clarke_County_GA.bngl +- Atlanta-Sandy_Springs-Alpharetta_GA_Atlanta-Sandy_Springs-Alpharetta_GA.bngl +- Atlantic_City-Hammonton_NJ_Atlantic_City-Hammonton_NJ.bngl +- Auburn-Opelika_AL_Auburn-Opelika_AL.bngl +- Augusta-Richmond_County_GA-SC_Augusta-Richmond_County_GA-SC.bngl +- Austin-Round_Rock_TX_Austin-Round_Rock_TX.bngl +- Bakersfield_CA_Bakersfield_CA.bngl +- Baltimore-Columbia-Towson_MD_Baltimore-Columbia-Towson_MD.bngl +- Barnstable_Town_MA_Barnstable_Town_MA.bngl +- Baton_Rouge_LA_Baton_Rouge_LA.bngl +- Battle_Creek_MI_Battle_Creek_MI.bngl +- Bay_City_MI_Bay_City_MI.bngl +- Beaumont-Port_Arthur_TX_Beaumont-Port_Arthur_TX.bngl +- Bellingham_WA_Bellingham_WA.bngl +- Binghamton_NY_Binghamton_NY.bngl +- Birmingham-Hoover_AL_Birmingham-Hoover_AL.bngl +- Bloomington_IN_Bloomington_IN.bngl +- Bloomsburg-Berwick_PA_Bloomsburg-Berwick_PA.bngl +- Boise_City_ID_Boise_City_ID.bngl +- Boston-Cambridge-Newton_MA-NH_Boston-Cambridge-Newton_MA-NH.bngl +- Boulder_CO_Boulder_CO.bngl +- Bowling_Green_KY_Bowling_Green_KY.bngl +- Bridgeport-Stamford-Norwalk_CT_Bridgeport-Stamford-Norwalk_CT.bngl +- Brownsville-Harlingen_TX_Brownsville-Harlingen_TX.bngl +- Buffalo-Niagara_Falls_NY_Buffalo-Niagara_Falls_NY.bngl +- Burlington-South_Burlington_VT_Burlington-South_Burlington_VT.bngl +- Burlington_NC_Burlington_NC.bngl +- California-Lexington_Park_MD_California-Lexington_Park_MD.bngl +- Canton-Massillon_OH_Canton-Massillon_OH.bngl +- Cape_Coral-Fort_Myers_FL_Cape_Coral-Fort_Myers_FL.bngl +- Carbondale-Marion_IL_Carbondale-Marion_IL.bngl +- Cedar_Rapids_IA_Cedar_Rapids_IA.bngl +- Chambersburg-Waynesboro_PA_Chambersburg-Waynesboro_PA.bngl +- Champaign-Urbana_IL_Champaign-Urbana_IL.bngl +- Charleston-North_Charleston_SC_Charleston-North_Charleston_SC.bngl +- Charleston_WV_Charleston_WV.bngl +- Charlotte-Concord-Gastonia_NC-SC_Charlotte-Concord-Gastonia_NC-SC.bngl +- Charlottesville_VA_Charlottesville_VA.bngl +- Chattanooga_TN-GA_Chattanooga_TN-GA.bngl +- Chicago-Naperville-Elgin_IL-IN-WI_Chicago-Naperville-Elgin_IL-IN-WI.bngl +- Cincinnati_OH-KY-IN_Cincinnati_OH-KY-IN.bngl +- Clarksville_TN-KY_Clarksville_TN-KY.bngl +- Cleveland-Elyria_OH_Cleveland-Elyria_OH.bngl +- College_Station-Bryan_TX_College_Station-Bryan_TX.bngl +- Colorado_Springs_CO_Colorado_Springs_CO.bngl +- Columbia_SC_Columbia_SC.bngl +- Columbus_GA-AL_Columbus_GA-AL.bngl +- Columbus_IN_Columbus_IN.bngl +- Columbus_OH_Columbus_OH.bngl +- Corpus_Christi_TX_Corpus_Christi_TX.bngl +- Crestview-Fort_Walton_Beach-Destin_FL_Crestview-Fort_Walton_Beach-Destin_FL.bngl +- Cumberland_MD-WV_Cumberland_MD-WV.bngl +- Dallas-Fort_Worth-Arlington_TX_Dallas-Fort_Worth-Arlington_TX.bngl +- Dalton_GA_Dalton_GA.bngl +- Daphne-Fairhope-Foley_AL_Daphne-Fairhope-Foley_AL.bngl +- Davenport-Moline-Rock_Island_IA-IL_Davenport-Moline-Rock_Island_IA-IL.bngl +- Dayton_OH_Dayton_OH.bngl +- Deltona-Daytona_Beach-Ormond_Beach_FL_Deltona-Daytona_Beach-Ormond_Beach_FL.bngl +- Denver-Aurora-Lakewood_CO_Denver-Aurora-Lakewood_CO.bngl +- Des_Moines-West_Des_Moines_IA_Des_Moines-West_Des_Moines_IA.bngl +- Detroit-Warren-Dearborn_MI_Detroit-Warren-Dearborn_MI.bngl +- Detroit_Warren_Dearborn_MI_Detroit_Warren_Dearborn_MI.bngl +- Dothan_AL_Dothan_AL.bngl +- Dover_DE_Dover_DE.bngl +- Dubuque_IA_Dubuque_IA.bngl +- Durham-Chapel_Hill_NC_Durham-Chapel_Hill_NC.bngl +- East_Stroudsburg_PA_East_Stroudsburg_PA.bngl +- El_Centro_CA_El_Centro_CA.bngl +- El_Paso_TX_El_Paso_TX.bngl +- Elkhart-Goshen_IN_Elkhart-Goshen_IN.bngl +- Evansville_IN-KY_Evansville_IN-KY.bngl +- Fargo_ND-MN_Fargo_ND-MN.bngl +- Farmington_NM_Farmington_NM.bngl +- Fayetteville-Springdale-Rogers_AR_Fayetteville-Springdale-Rogers_AR.bngl +- Fayetteville_NC_Fayetteville_NC.bngl +- Flagstaff_AZ_Flagstaff_AZ.bngl +- Flint_MI_Flint_MI.bngl +- Florence-Muscle_Shoals_AL_Florence-Muscle_Shoals_AL.bngl +- Florence_SC_Florence_SC.bngl +- Fort_Collins_CO_Fort_Collins_CO.bngl +- Fort_Wayne_IN_Fort_Wayne_IN.bngl +- Fresno_CA_Fresno_CA.bngl +- Gadsden_AL_Gadsden_AL.bngl +- Gainesville_FL_Gainesville_FL.bngl +- Gainesville_GA_Gainesville_GA.bngl +- Glens_Falls_NY_Glens_Falls_NY.bngl +- Goldsboro_NC_Goldsboro_NC.bngl +- Grand_Forks_ND-MN_Grand_Forks_ND-MN.bngl +- Grand_Island_NE_Grand_Island_NE.bngl +- Grand_Rapids-Kentwood_MI_Grand_Rapids-Kentwood_MI.bngl +- Greeley_CO_Greeley_CO.bngl +- Green_Bay_WI_Green_Bay_WI.bngl +- Greensboro-High_Point_NC_Greensboro-High_Point_NC.bngl +- Greenville-Anderson_SC_Greenville-Anderson_SC.bngl +- Greenville_NC_Greenville_NC.bngl +- Gulfport-Biloxi_MS_Gulfport-Biloxi_MS.bngl +- Hagerstown-Martinsburg_MD-WV_Hagerstown-Martinsburg_MD-WV.bngl +- Hammond_LA_Hammond_LA.bngl +- Hanford-Corcoran_CA_Hanford-Corcoran_CA.bngl +- Harrisburg-Carlisle_PA_Harrisburg-Carlisle_PA.bngl +- Harrisonburg_VA_Harrisonburg_VA.bngl +- Hartford-East_Hartford-Middletown_CT_Hartford-East_Hartford-Middletown_CT.bngl +- Hattiesburg_MS_Hattiesburg_MS.bngl +- Hickory-Lenoir-Morganton_NC_Hickory-Lenoir-Morganton_NC.bngl +- Hilton_Head_Island-Bluffton-Beaufort_SC_Hilton_Head_Island-Bluffton-Beaufort_SC.bngl +- Houma-Thibodaux_LA_Houma-Thibodaux_LA.bngl +- Houston-The_Woodlands-Sugar_Land_TX_Houston-The_Woodlands-Sugar_Land_TX.bngl +- Huntington-Ashland_WV-KY-OH_Huntington-Ashland_WV-KY-OH.bngl +- Huntsville_AL_Huntsville_AL.bngl +- Indianapolis-Carmel-Anderson_IN_Indianapolis-Carmel-Anderson_IN.bngl +- Iowa_City_IA_Iowa_City_IA.bngl +- Jackson_MI_Jackson_MI.bngl +- Jackson_MS_Jackson_MS.bngl +- Jacksonville_FL_Jacksonville_FL.bngl +- Janesville-Beloit_WI_Janesville-Beloit_WI.bngl +- Kalamazoo-Portage_MI_Kalamazoo-Portage_MI.bngl +- Kankakee_IL_Kankakee_IL.bngl +- Kansas_City_MO-KS_Kansas_City_MO-KS.bngl +- Kennewick-Richland_WA_Kennewick-Richland_WA.bngl +- Killeen-Temple_TX_Killeen-Temple_TX.bngl +- Kingston_NY_Kingston_NY.bngl +- Knoxville_TN_Knoxville_TN.bngl +- Kokomo_IN_Kokomo_IN.bngl +- Lafayette-West_Lafayette_IN_Lafayette-West_Lafayette_IN.bngl +- Lafayette_LA_Lafayette_LA.bngl +- Lake_Charles_LA_Lake_Charles_LA.bngl +- Lake_Havasu_City-Kingman_AZ_Lake_Havasu_City-Kingman_AZ.bngl +- Lakeland-Winter_Haven_FL_Lakeland-Winter_Haven_FL.bngl +- Lancaster_PA_Lancaster_PA.bngl +- Lansing-East_Lansing_MI_Lansing-East_Lansing_MI.bngl +- Laredo_TX_Laredo_TX.bngl +- Las_Cruces_NM_Las_Cruces_NM.bngl +- Las_Vegas-Henderson-Paradise_NV_Las_Vegas-Henderson-Paradise_NV.bngl +- Lawton_OK_Lawton_OK.bngl +- Lebanon_PA_Lebanon_PA.bngl +- Lexington-Fayette_KY_Lexington-Fayette_KY.bngl +- Lincoln_NE_Lincoln_NE.bngl +- Little_Rock-North_Little_Rock-Conway_AR_Little_Rock-North_Little_Rock-Conway_AR.bngl +- Longview_TX_Longview_TX.bngl +- Los_Angeles-Long_Beach-Anaheim_CA_Los_Angeles-Long_Beach-Anaheim_CA.bngl +- Louisville_Jefferson_County_KY-IN_Louisville_Jefferson_County_KY-IN.bngl +- Lubbock_TX_Lubbock_TX.bngl +- Macon-Bibb_County_GA_Macon-Bibb_County_GA.bngl +- Madison_WI_Madison_WI.bngl +- Manchester-Nashua_NH_Manchester-Nashua_NH.bngl +- McAllen-Edinburg-Mission_TX_McAllen-Edinburg-Mission_TX.bngl +- Memphis_TN-MS-AR_Memphis_TN-MS-AR.bngl +- Merced_CA_Merced_CA.bngl +- Miami-Fort_Lauderdale-West_Palm_Beach_FL_Miami-Fort_Lauderdale-West_Palm_Beach_FL.bngl +- Michigan_City-La_Porte_IN_Michigan_City-La_Porte_IN.bngl +- Milwaukee-Waukesha_WI_Milwaukee-Waukesha_WI.bngl +- Minneapolis-St._Paul-Bloomington_MN-WI_Minneapolis-St._Paul-Bloomington_MN-WI.bngl +- Mobile_AL_Mobile_AL.bngl +- Modesto_CA_Modesto_CA.bngl +- Monroe_LA_Monroe_LA.bngl +- Monroe_MI_Monroe_MI.bngl +- Montgomery_AL_Montgomery_AL.bngl +- Mount_Vernon-Anacortes_WA_Mount_Vernon-Anacortes_WA.bngl +- Muncie_IN_Muncie_IN.bngl +- Muskegon_MI_Muskegon_MI.bngl +- Naples-Marco_Island_FL_Naples-Marco_Island_FL.bngl +- Nashville-Davidson-Murfreesboro-Franklin_TN_Nashville-Davidson-Murfreesboro-Franklin_TN.bngl +- New_Haven-Milford_CT_New_Haven-Milford_CT.bngl +- New_Orleans-Metairie_LA_New_Orleans-Metairie_LA.bngl +- New_York-Newark-Jersey_City_NY-NJ-PA_New_York-Newark-Jersey_City_NY-NJ-PA.bngl +- Niles_MI_Niles_MI.bngl +- North_Port-Sarasota-Bradenton_FL_North_Port-Sarasota-Bradenton_FL.bngl +- Norwich-New_London_CT_Norwich-New_London_CT.bngl +- Ocala_FL_Ocala_FL.bngl +- Ocean_City_NJ_Ocean_City_NJ.bngl +- Ogden-Clearfield_UT_Ogden-Clearfield_UT.bngl +- Oklahoma_City_OK_Oklahoma_City_OK.bngl +- Omaha-Council_Bluffs_NE-IA_Omaha-Council_Bluffs_NE-IA.bngl +- Orlando-Kissimmee-Sanford_FL_Orlando-Kissimmee-Sanford_FL.bngl +- Owensboro_KY_Owensboro_KY.bngl +- Oxnard-Thousand_Oaks-Ventura_CA_Oxnard-Thousand_Oaks-Ventura_CA.bngl +- Palm_Bay-Melbourne-Titusville_FL_Palm_Bay-Melbourne-Titusville_FL.bngl +- Pensacola-Ferry_Pass-Brent_FL_Pensacola-Ferry_Pass-Brent_FL.bngl +- Peoria_IL_Peoria_IL.bngl +- Philadelphia-Camden-Wilmington_PA-NJ-DE-MD_Philadelphia-Camden-Wilmington_PA-NJ-DE-MD.bngl +- Phoenix-Mesa-Chandler_AZ_Phoenix-Mesa-Chandler_AZ.bngl +- Pine_Bluff_AR_Pine_Bluff_AR.bngl +- Pittsburgh_PA_Pittsburgh_PA.bngl +- Pittsfield_MA_Pittsfield_MA.bngl +- Port_St._Lucie_FL_Port_St._Lucie_FL.bngl +- Portland-South_Portland_ME_Portland-South_Portland_ME.bngl +- Portland-Vancouver-Hillsboro_OR-WA_Portland-Vancouver-Hillsboro_OR-WA.bngl +- Poughkeepsie-Newburgh-Middletown_NY_Poughkeepsie-Newburgh-Middletown_NY.bngl +- Prescott_Valley-Prescott_AZ_Prescott_Valley-Prescott_AZ.bngl +- Providence-Warwick_RI-MA_Providence-Warwick_RI-MA.bngl +- Provo-Orem_UT_Provo-Orem_UT.bngl +- Pueblo_CO_Pueblo_CO.bngl +- Punta_Gorda_FL_Punta_Gorda_FL.bngl +- Racine_WI_Racine_WI.bngl +- Raleigh-Cary_NC_Raleigh-Cary_NC.bngl +- Reading_PA_Reading_PA.bngl +- Reno_NV_Reno_NV.bngl +- Richmond_VA_Richmond_VA.bngl +- Riverside-San_Bernardino-Ontario_CA_Riverside-San_Bernardino-Ontario_CA.bngl +- Roanoke_VA_Roanoke_VA.bngl +- Rochester_MN_Rochester_MN.bngl +- Rochester_NY_Rochester_NY.bngl +- Rockford_IL_Rockford_IL.bngl +- Rocky_Mount_NC_Rocky_Mount_NC.bngl +- Rome_GA_Rome_GA.bngl +- Sacramento-Roseville-Folsom_CA_Sacramento-Roseville-Folsom_CA.bngl +- Saginaw_MI_Saginaw_MI.bngl +- Salem_OR_Salem_OR.bngl +- Salinas_CA_Salinas_CA.bngl +- Salisbury_MD-DE_Salisbury_MD-DE.bngl +- Salt_Lake_City_UT_Salt_Lake_City_UT.bngl +- San_Antonio-New_Braunfels_TX_San_Antonio-New_Braunfels_TX.bngl +- San_Diego-Chula_Vista-Carlsbad_CA_San_Diego-Chula_Vista-Carlsbad_CA.bngl +- San_Francisco-Oakland-Berkeley_CA_San_Francisco-Oakland-Berkeley_CA.bngl +- San_Jose-Sunnyvale-Santa_Clara_CA_San_Jose-Sunnyvale-Santa_Clara_CA.bngl +- San_Luis_Obispo-Paso_Robles_CA_San_Luis_Obispo-Paso_Robles_CA.bngl +- Santa_Maria-Santa_Barbara_CA_Santa_Maria-Santa_Barbara_CA.bngl +- Santa_Rosa-Petaluma_CA_Santa_Rosa-Petaluma_CA.bngl +- Savannah_GA_Savannah_GA.bngl +- Scranton-Wilkes-Barre_PA_Scranton-Wilkes-Barre_PA.bngl +- Scranton_Wilkes-Barre_PA_Scranton_Wilkes-Barre_PA.bngl +- Seattle-Tacoma-Bellevue_WA_Seattle-Tacoma-Bellevue_WA.bngl +- Shreveport-Bossier_City_LA_Shreveport-Bossier_City_LA.bngl +- Sioux_City_IA-NE-SD_Sioux_City_IA-NE-SD.bngl +- Sioux_Falls_SD_Sioux_Falls_SD.bngl +- South_Bend-Mishawaka_IN-MI_South_Bend-Mishawaka_IN-MI.bngl +- Spartanburg_SC_Spartanburg_SC.bngl +- Spokane-Spokane_Valley_WA_Spokane-Spokane_Valley_WA.bngl +- Springfield_IL_Springfield_IL.bngl +- Springfield_MA_Springfield_MA.bngl +- St._Cloud_MN_St._Cloud_MN.bngl +- St._George_UT_St._George_UT.bngl +- St._Joseph_MO-KS_St._Joseph_MO-KS.bngl +- St._Louis_MO-IL_St._Louis_MO-IL.bngl +- Stockton_CA_Stockton_CA.bngl +- Sumter_SC_Sumter_SC.bngl +- Syracuse_NY_Syracuse_NY.bngl +- Tallahassee_FL_Tallahassee_FL.bngl +- Tampa-St._Petersburg-Clearwater_FL_Tampa-St._Petersburg-Clearwater_FL.bngl +- Texarkana_TX-AR_Texarkana_TX-AR.bngl +- The_Villages_FL_The_Villages_FL.bngl +- Toledo_OH_Toledo_OH.bngl +- Topeka_KS_Topeka_KS.bngl +- Trenton-Princeton_NJ_Trenton-Princeton_NJ.bngl +- Tucson_AZ_Tucson_AZ.bngl +- Tulsa_OK_Tulsa_OK.bngl +- Tuscaloosa_AL_Tuscaloosa_AL.bngl +- Twin_Falls_ID_Twin_Falls_ID.bngl +- Urban_Honolulu_HI_Urban_Honolulu_HI.bngl +- Utica-Rome_NY_Utica-Rome_NY.bngl +- Valdosta_GA_Valdosta_GA.bngl +- Vallejo_CA_Vallejo_CA.bngl +- Victoria_TX_Victoria_TX.bngl +- Vineland-Bridgeton_NJ_Vineland-Bridgeton_NJ.bngl +- Virginia_Beach-Norfolk-Newport_News_VA-NC_Virginia_Beach-Norfolk-Newport_News_VA-NC.bngl +- Visalia_CA_Visalia_CA.bngl +- Warner_Robins_GA_Warner_Robins_GA.bngl +- Washington-Arlington-Alexandria_DC-VA-MD-WV_Washington-Arlington-Alexandria_DC-VA-MD-WV.bngl +- Waterloo-Cedar_Falls_IA_Waterloo-Cedar_Falls_IA.bngl +- Wenatchee_WA_Wenatchee_WA.bngl +- Wheeling_WV-OH_Wheeling_WV-OH.bngl +- Wichita_KS_Wichita_KS.bngl +- Winchester_VA-WV_Winchester_VA-WV.bngl +- Winston-Salem_NC_Winston-Salem_NC.bngl +- Worcester_MA-CT_Worcester_MA-CT.bngl +- Yakima_WA_Yakima_WA.bngl +- York-Hanover_PA_York-Hanover_PA.bngl +- Youngstown-Warren-Boardman_OH-PA_Youngstown-Warren-Boardman_OH-PA.bngl +- Yuma_AZ_Yuma_AZ.bngl + +## Tags + +covid-19, epidemiology, parameter-estimation, pybionetgen diff --git a/Published/Mallela2022_MSAs/Racine_WI_Racine_WI.bngl b/Published/Mallela2022_MSAs/Racine_WI_Racine_WI.bngl new file mode 100644 index 00000000..e5e2bc45 --- /dev/null +++ b/Published/Mallela2022_MSAs/Racine_WI_Racine_WI.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Racine, WI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Racine, WI +resetConcentrations() +simulate({suffix=>"Racine, WI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Raleigh-Cary_NC_Raleigh-Cary_NC.bngl b/Published/Mallela2022_MSAs/Raleigh-Cary_NC_Raleigh-Cary_NC.bngl new file mode 100644 index 00000000..fda78226 --- /dev/null +++ b/Published/Mallela2022_MSAs/Raleigh-Cary_NC_Raleigh-Cary_NC.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Raleigh-Cary, NC +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Raleigh-Cary, NC +resetConcentrations() +simulate({suffix=>"Raleigh-Cary, NC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Reading_PA_Reading_PA.bngl b/Published/Mallela2022_MSAs/Reading_PA_Reading_PA.bngl new file mode 100644 index 00000000..e3f0ba72 --- /dev/null +++ b/Published/Mallela2022_MSAs/Reading_PA_Reading_PA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Reading, PA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Reading, PA +resetConcentrations() +simulate({suffix=>"Reading, PA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Reno_NV_Reno_NV.bngl b/Published/Mallela2022_MSAs/Reno_NV_Reno_NV.bngl new file mode 100644 index 00000000..55def7a9 --- /dev/null +++ b/Published/Mallela2022_MSAs/Reno_NV_Reno_NV.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Reno, NV +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Reno, NV +resetConcentrations() +simulate({suffix=>"Reno, NV",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Richmond_VA_Richmond_VA.bngl b/Published/Mallela2022_MSAs/Richmond_VA_Richmond_VA.bngl new file mode 100644 index 00000000..7a5fbec9 --- /dev/null +++ b/Published/Mallela2022_MSAs/Richmond_VA_Richmond_VA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Richmond, VA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Richmond, VA +resetConcentrations() +simulate({suffix=>"Richmond, VA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Riverside-San_Bernardino-Ontario_CA_Riverside-San_Bernardino-Ontario_CA.bngl b/Published/Mallela2022_MSAs/Riverside-San_Bernardino-Ontario_CA_Riverside-San_Bernardino-Ontario_CA.bngl new file mode 100644 index 00000000..ab65f6dc --- /dev/null +++ b/Published/Mallela2022_MSAs/Riverside-San_Bernardino-Ontario_CA_Riverside-San_Bernardino-Ontario_CA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Riverside-San Bernardino-Ontario, CA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Riverside-San Bernardino-Ontario, CA +resetConcentrations() +simulate({suffix=>"Riverside-San Bernardino-Ontario, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Roanoke_VA_Roanoke_VA.bngl b/Published/Mallela2022_MSAs/Roanoke_VA_Roanoke_VA.bngl new file mode 100644 index 00000000..5779bda1 --- /dev/null +++ b/Published/Mallela2022_MSAs/Roanoke_VA_Roanoke_VA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Roanoke, VA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Roanoke, VA +resetConcentrations() +simulate({suffix=>"Roanoke, VA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Rochester_MN_Rochester_MN.bngl b/Published/Mallela2022_MSAs/Rochester_MN_Rochester_MN.bngl new file mode 100644 index 00000000..59020945 --- /dev/null +++ b/Published/Mallela2022_MSAs/Rochester_MN_Rochester_MN.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Rochester, MN +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Rochester, MN +resetConcentrations() +simulate({suffix=>"Rochester, MN",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Rochester_NY_Rochester_NY.bngl b/Published/Mallela2022_MSAs/Rochester_NY_Rochester_NY.bngl new file mode 100644 index 00000000..58a42d08 --- /dev/null +++ b/Published/Mallela2022_MSAs/Rochester_NY_Rochester_NY.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Rochester, NY +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Rochester, NY +resetConcentrations() +simulate({suffix=>"Rochester, NY",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Rockford_IL_Rockford_IL.bngl b/Published/Mallela2022_MSAs/Rockford_IL_Rockford_IL.bngl new file mode 100644 index 00000000..fe0fec7b --- /dev/null +++ b/Published/Mallela2022_MSAs/Rockford_IL_Rockford_IL.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Rockford, IL +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Rockford, IL +resetConcentrations() +simulate({suffix=>"Rockford, IL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Rocky_Mount_NC_Rocky_Mount_NC.bngl b/Published/Mallela2022_MSAs/Rocky_Mount_NC_Rocky_Mount_NC.bngl new file mode 100644 index 00000000..c49c6141 --- /dev/null +++ b/Published/Mallela2022_MSAs/Rocky_Mount_NC_Rocky_Mount_NC.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Rocky Mount, NC +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Rocky Mount, NC +resetConcentrations() +simulate({suffix=>"Rocky Mount, NC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Rome_GA_Rome_GA.bngl b/Published/Mallela2022_MSAs/Rome_GA_Rome_GA.bngl new file mode 100644 index 00000000..234cb2bd --- /dev/null +++ b/Published/Mallela2022_MSAs/Rome_GA_Rome_GA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Rome, GA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Rome, GA +resetConcentrations() +simulate({suffix=>"Rome, GA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Sacramento-Roseville-Folsom_CA_Sacramento-Roseville-Folsom_CA.bngl b/Published/Mallela2022_MSAs/Sacramento-Roseville-Folsom_CA_Sacramento-Roseville-Folsom_CA.bngl new file mode 100644 index 00000000..17e0000d --- /dev/null +++ b/Published/Mallela2022_MSAs/Sacramento-Roseville-Folsom_CA_Sacramento-Roseville-Folsom_CA.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Sacramento-Roseville-Folsom, CA +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Sacramento-Roseville-Folsom, CA +resetConcentrations() +simulate({suffix=>"Sacramento-Roseville-Folsom, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Saginaw_MI_Saginaw_MI.bngl b/Published/Mallela2022_MSAs/Saginaw_MI_Saginaw_MI.bngl new file mode 100644 index 00000000..0d6af4f7 --- /dev/null +++ b/Published/Mallela2022_MSAs/Saginaw_MI_Saginaw_MI.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Saginaw, MI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Saginaw, MI +resetConcentrations() +simulate({suffix=>"Saginaw, MI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Salem_OR_Salem_OR.bngl b/Published/Mallela2022_MSAs/Salem_OR_Salem_OR.bngl new file mode 100644 index 00000000..f1a9f9b1 --- /dev/null +++ b/Published/Mallela2022_MSAs/Salem_OR_Salem_OR.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Salem, OR +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Salem, OR +resetConcentrations() +simulate({suffix=>"Salem, OR",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Salinas_CA_Salinas_CA.bngl b/Published/Mallela2022_MSAs/Salinas_CA_Salinas_CA.bngl new file mode 100644 index 00000000..073a8051 --- /dev/null +++ b/Published/Mallela2022_MSAs/Salinas_CA_Salinas_CA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Salinas, CA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Salinas, CA +resetConcentrations() +simulate({suffix=>"Salinas, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Salisbury_MD-DE_Salisbury_MD-DE.bngl b/Published/Mallela2022_MSAs/Salisbury_MD-DE_Salisbury_MD-DE.bngl new file mode 100644 index 00000000..1bea029b --- /dev/null +++ b/Published/Mallela2022_MSAs/Salisbury_MD-DE_Salisbury_MD-DE.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Salisbury, MD-DE +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Salisbury, MD-DE +resetConcentrations() +simulate({suffix=>"Salisbury, MD-DE",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Salt_Lake_City_UT_Salt_Lake_City_UT.bngl b/Published/Mallela2022_MSAs/Salt_Lake_City_UT_Salt_Lake_City_UT.bngl new file mode 100644 index 00000000..9f55f96e --- /dev/null +++ b/Published/Mallela2022_MSAs/Salt_Lake_City_UT_Salt_Lake_City_UT.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Salt Lake City, UT +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Salt Lake City, UT +resetConcentrations() +simulate({suffix=>"Salt Lake City, UT",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/San_Antonio-New_Braunfels_TX_San_Antonio-New_Braunfels_TX.bngl b/Published/Mallela2022_MSAs/San_Antonio-New_Braunfels_TX_San_Antonio-New_Braunfels_TX.bngl new file mode 100644 index 00000000..08350a6b --- /dev/null +++ b/Published/Mallela2022_MSAs/San_Antonio-New_Braunfels_TX_San_Antonio-New_Braunfels_TX.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of San Antonio-New Braunfels, TX +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in San Antonio-New Braunfels, TX +resetConcentrations() +simulate({suffix=>"San Antonio-New Braunfels, TX",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/San_Diego-Chula_Vista-Carlsbad_CA_San_Diego-Chula_Vista-Carlsbad_CA.bngl b/Published/Mallela2022_MSAs/San_Diego-Chula_Vista-Carlsbad_CA_San_Diego-Chula_Vista-Carlsbad_CA.bngl new file mode 100644 index 00000000..850b3d3b --- /dev/null +++ b/Published/Mallela2022_MSAs/San_Diego-Chula_Vista-Carlsbad_CA_San_Diego-Chula_Vista-Carlsbad_CA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of San Diego-Chula Vista-Carlsbad, CA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in San Diego-Chula Vista-Carlsbad, CA +resetConcentrations() +simulate({suffix=>"San Diego-Chula Vista-Carlsbad, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/San_Francisco-Oakland-Berkeley_CA_San_Francisco-Oakland-Berkeley_CA.bngl b/Published/Mallela2022_MSAs/San_Francisco-Oakland-Berkeley_CA_San_Francisco-Oakland-Berkeley_CA.bngl new file mode 100644 index 00000000..1072368b --- /dev/null +++ b/Published/Mallela2022_MSAs/San_Francisco-Oakland-Berkeley_CA_San_Francisco-Oakland-Berkeley_CA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of San Francisco-Oakland-Berkeley, CA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in San Francisco-Oakland-Berkeley, CA +resetConcentrations() +simulate({suffix=>"San Francisco-Oakland-Berkeley, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/San_Jose-Sunnyvale-Santa_Clara_CA_San_Jose-Sunnyvale-Santa_Clara_CA.bngl b/Published/Mallela2022_MSAs/San_Jose-Sunnyvale-Santa_Clara_CA_San_Jose-Sunnyvale-Santa_Clara_CA.bngl new file mode 100644 index 00000000..be23db40 --- /dev/null +++ b/Published/Mallela2022_MSAs/San_Jose-Sunnyvale-Santa_Clara_CA_San_Jose-Sunnyvale-Santa_Clara_CA.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of San Jose-Sunnyvale-Santa Clara, CA +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in San Jose-Sunnyvale-Santa Clara, CA +resetConcentrations() +simulate({suffix=>"San Jose-Sunnyvale-Santa Clara, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/San_Luis_Obispo-Paso_Robles_CA_San_Luis_Obispo-Paso_Robles_CA.bngl b/Published/Mallela2022_MSAs/San_Luis_Obispo-Paso_Robles_CA_San_Luis_Obispo-Paso_Robles_CA.bngl new file mode 100644 index 00000000..99116740 --- /dev/null +++ b/Published/Mallela2022_MSAs/San_Luis_Obispo-Paso_Robles_CA_San_Luis_Obispo-Paso_Robles_CA.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of San Luis Obispo-Paso Robles, CA +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in San Luis Obispo-Paso Robles, CA +resetConcentrations() +simulate({suffix=>"San Luis Obispo-Paso Robles, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Santa_Maria-Santa_Barbara_CA_Santa_Maria-Santa_Barbara_CA.bngl b/Published/Mallela2022_MSAs/Santa_Maria-Santa_Barbara_CA_Santa_Maria-Santa_Barbara_CA.bngl new file mode 100644 index 00000000..57a519b7 --- /dev/null +++ b/Published/Mallela2022_MSAs/Santa_Maria-Santa_Barbara_CA_Santa_Maria-Santa_Barbara_CA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Santa Maria-Santa Barbara, CA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Santa Maria-Santa Barbara, CA +resetConcentrations() +simulate({suffix=>"Santa Maria-Santa Barbara, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Santa_Rosa-Petaluma_CA_Santa_Rosa-Petaluma_CA.bngl b/Published/Mallela2022_MSAs/Santa_Rosa-Petaluma_CA_Santa_Rosa-Petaluma_CA.bngl new file mode 100644 index 00000000..9dc76d91 --- /dev/null +++ b/Published/Mallela2022_MSAs/Santa_Rosa-Petaluma_CA_Santa_Rosa-Petaluma_CA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Santa Rosa-Petaluma, CA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Santa Rosa-Petaluma, CA +resetConcentrations() +simulate({suffix=>"Santa Rosa-Petaluma, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Savannah_GA_Savannah_GA.bngl b/Published/Mallela2022_MSAs/Savannah_GA_Savannah_GA.bngl new file mode 100644 index 00000000..bd3de5ac --- /dev/null +++ b/Published/Mallela2022_MSAs/Savannah_GA_Savannah_GA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Savannah, GA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Savannah, GA +resetConcentrations() +simulate({suffix=>"Savannah, GA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Scranton-Wilkes-Barre_PA_Scranton-Wilkes-Barre_PA.bngl b/Published/Mallela2022_MSAs/Scranton-Wilkes-Barre_PA_Scranton-Wilkes-Barre_PA.bngl new file mode 100644 index 00000000..72843941 --- /dev/null +++ b/Published/Mallela2022_MSAs/Scranton-Wilkes-Barre_PA_Scranton-Wilkes-Barre_PA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Scranton–Wilkes-Barre, PA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Scranton–Wilkes-Barre, PA +resetConcentrations() +simulate({suffix=>"Scranton–Wilkes-Barre, PA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Scranton_Wilkes-Barre_PA_Scranton_Wilkes-Barre_PA.bngl b/Published/Mallela2022_MSAs/Scranton_Wilkes-Barre_PA_Scranton_Wilkes-Barre_PA.bngl new file mode 100644 index 00000000..72843941 --- /dev/null +++ b/Published/Mallela2022_MSAs/Scranton_Wilkes-Barre_PA_Scranton_Wilkes-Barre_PA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Scranton–Wilkes-Barre, PA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Scranton–Wilkes-Barre, PA +resetConcentrations() +simulate({suffix=>"Scranton–Wilkes-Barre, PA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Seattle-Tacoma-Bellevue_WA_Seattle-Tacoma-Bellevue_WA.bngl b/Published/Mallela2022_MSAs/Seattle-Tacoma-Bellevue_WA_Seattle-Tacoma-Bellevue_WA.bngl new file mode 100644 index 00000000..167d228e --- /dev/null +++ b/Published/Mallela2022_MSAs/Seattle-Tacoma-Bellevue_WA_Seattle-Tacoma-Bellevue_WA.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Seattle-Tacoma-Bellevue, WA +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Seattle-Tacoma-Bellevue, WA +resetConcentrations() +simulate({suffix=>"Seattle-Tacoma-Bellevue, WA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Shreveport-Bossier_City_LA_Shreveport-Bossier_City_LA.bngl b/Published/Mallela2022_MSAs/Shreveport-Bossier_City_LA_Shreveport-Bossier_City_LA.bngl new file mode 100644 index 00000000..d3a0162e --- /dev/null +++ b/Published/Mallela2022_MSAs/Shreveport-Bossier_City_LA_Shreveport-Bossier_City_LA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Shreveport-Bossier City, LA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Shreveport-Bossier City, LA +resetConcentrations() +simulate({suffix=>"Shreveport-Bossier City, LA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Sioux_City_IA-NE-SD_Sioux_City_IA-NE-SD.bngl b/Published/Mallela2022_MSAs/Sioux_City_IA-NE-SD_Sioux_City_IA-NE-SD.bngl new file mode 100644 index 00000000..f86d6b0e --- /dev/null +++ b/Published/Mallela2022_MSAs/Sioux_City_IA-NE-SD_Sioux_City_IA-NE-SD.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Sioux City, IA-NE-SD +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Sioux City, IA-NE-SD +resetConcentrations() +simulate({suffix=>"Sioux City, IA-NE-SD",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Sioux_Falls_SD_Sioux_Falls_SD.bngl b/Published/Mallela2022_MSAs/Sioux_Falls_SD_Sioux_Falls_SD.bngl new file mode 100644 index 00000000..6ed3c784 --- /dev/null +++ b/Published/Mallela2022_MSAs/Sioux_Falls_SD_Sioux_Falls_SD.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Sioux Falls, SD +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Sioux Falls, SD +resetConcentrations() +simulate({suffix=>"Sioux Falls, SD",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/South_Bend-Mishawaka_IN-MI_South_Bend-Mishawaka_IN-MI.bngl b/Published/Mallela2022_MSAs/South_Bend-Mishawaka_IN-MI_South_Bend-Mishawaka_IN-MI.bngl new file mode 100644 index 00000000..c38332dd --- /dev/null +++ b/Published/Mallela2022_MSAs/South_Bend-Mishawaka_IN-MI_South_Bend-Mishawaka_IN-MI.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of South Bend-Mishawaka, IN-MI +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in South Bend-Mishawaka, IN-MI +resetConcentrations() +simulate({suffix=>"South Bend-Mishawaka, IN-MI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Spartanburg_SC_Spartanburg_SC.bngl b/Published/Mallela2022_MSAs/Spartanburg_SC_Spartanburg_SC.bngl new file mode 100644 index 00000000..8af5f115 --- /dev/null +++ b/Published/Mallela2022_MSAs/Spartanburg_SC_Spartanburg_SC.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Spartanburg, SC +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Spartanburg, SC +resetConcentrations() +simulate({suffix=>"Spartanburg, SC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Spokane-Spokane_Valley_WA_Spokane-Spokane_Valley_WA.bngl b/Published/Mallela2022_MSAs/Spokane-Spokane_Valley_WA_Spokane-Spokane_Valley_WA.bngl new file mode 100644 index 00000000..539cbbb0 --- /dev/null +++ b/Published/Mallela2022_MSAs/Spokane-Spokane_Valley_WA_Spokane-Spokane_Valley_WA.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Spokane-Spokane Valley, WA +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Spokane-Spokane Valley, WA +resetConcentrations() +simulate({suffix=>"Spokane-Spokane Valley, WA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Springfield_IL_Springfield_IL.bngl b/Published/Mallela2022_MSAs/Springfield_IL_Springfield_IL.bngl new file mode 100644 index 00000000..efcc19c0 --- /dev/null +++ b/Published/Mallela2022_MSAs/Springfield_IL_Springfield_IL.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Springfield, IL +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Springfield, IL +resetConcentrations() +simulate({suffix=>"Springfield, IL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Springfield_MA_Springfield_MA.bngl b/Published/Mallela2022_MSAs/Springfield_MA_Springfield_MA.bngl new file mode 100644 index 00000000..ee24cb3c --- /dev/null +++ b/Published/Mallela2022_MSAs/Springfield_MA_Springfield_MA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Springfield, MA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Springfield, MA +resetConcentrations() +simulate({suffix=>"Springfield, MA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/St._Cloud_MN_St._Cloud_MN.bngl b/Published/Mallela2022_MSAs/St._Cloud_MN_St._Cloud_MN.bngl new file mode 100644 index 00000000..442154cf --- /dev/null +++ b/Published/Mallela2022_MSAs/St._Cloud_MN_St._Cloud_MN.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of St. Cloud, MN +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in St. Cloud, MN +resetConcentrations() +simulate({suffix=>"St. Cloud, MN",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/St._George_UT_St._George_UT.bngl b/Published/Mallela2022_MSAs/St._George_UT_St._George_UT.bngl new file mode 100644 index 00000000..db6c6f07 --- /dev/null +++ b/Published/Mallela2022_MSAs/St._George_UT_St._George_UT.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of St. George, UT +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in St. George, UT +resetConcentrations() +simulate({suffix=>"St. George, UT",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/St._Joseph_MO-KS_St._Joseph_MO-KS.bngl b/Published/Mallela2022_MSAs/St._Joseph_MO-KS_St._Joseph_MO-KS.bngl new file mode 100644 index 00000000..1be625c2 --- /dev/null +++ b/Published/Mallela2022_MSAs/St._Joseph_MO-KS_St._Joseph_MO-KS.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of St. Joseph, MO-KS +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in St. Joseph, MO-KS +resetConcentrations() +simulate({suffix=>"St. Joseph, MO-KS",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/St._Louis_MO-IL_St._Louis_MO-IL.bngl b/Published/Mallela2022_MSAs/St._Louis_MO-IL_St._Louis_MO-IL.bngl new file mode 100644 index 00000000..7be1c854 --- /dev/null +++ b/Published/Mallela2022_MSAs/St._Louis_MO-IL_St._Louis_MO-IL.bngl @@ -0,0 +1,225 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of St. Louis, MO-IL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in St. Louis, MO-IL +resetConcentrations() +simulate({suffix=>"St. Louis, MO-IL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Stockton_CA_Stockton_CA.bngl b/Published/Mallela2022_MSAs/Stockton_CA_Stockton_CA.bngl new file mode 100644 index 00000000..ad342fda --- /dev/null +++ b/Published/Mallela2022_MSAs/Stockton_CA_Stockton_CA.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Stockton, CA +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Stockton, CA +resetConcentrations() +simulate({suffix=>"Stockton, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Sumter_SC_Sumter_SC.bngl b/Published/Mallela2022_MSAs/Sumter_SC_Sumter_SC.bngl new file mode 100644 index 00000000..514eca51 --- /dev/null +++ b/Published/Mallela2022_MSAs/Sumter_SC_Sumter_SC.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Sumter, SC +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Sumter, SC +resetConcentrations() +simulate({suffix=>"Sumter, SC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Syracuse_NY_Syracuse_NY.bngl b/Published/Mallela2022_MSAs/Syracuse_NY_Syracuse_NY.bngl new file mode 100644 index 00000000..bd6bc936 --- /dev/null +++ b/Published/Mallela2022_MSAs/Syracuse_NY_Syracuse_NY.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Syracuse, NY +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Syracuse, NY +resetConcentrations() +simulate({suffix=>"Syracuse, NY",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Tallahassee_FL_Tallahassee_FL.bngl b/Published/Mallela2022_MSAs/Tallahassee_FL_Tallahassee_FL.bngl new file mode 100644 index 00000000..4987d10c --- /dev/null +++ b/Published/Mallela2022_MSAs/Tallahassee_FL_Tallahassee_FL.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Tallahassee, FL +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Tallahassee, FL +resetConcentrations() +simulate({suffix=>"Tallahassee, FL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Tampa-St._Petersburg-Clearwater_FL_Tampa-St._Petersburg-Clearwater_FL.bngl b/Published/Mallela2022_MSAs/Tampa-St._Petersburg-Clearwater_FL_Tampa-St._Petersburg-Clearwater_FL.bngl new file mode 100644 index 00000000..137fe7fd --- /dev/null +++ b/Published/Mallela2022_MSAs/Tampa-St._Petersburg-Clearwater_FL_Tampa-St._Petersburg-Clearwater_FL.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Tampa-St. Petersburg-Clearwater, FL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Tampa-St. Petersburg-Clearwater, FL +resetConcentrations() +simulate({suffix=>"Tampa-St. Petersburg-Clearwater, FL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Texarkana_TX-AR_Texarkana_TX-AR.bngl b/Published/Mallela2022_MSAs/Texarkana_TX-AR_Texarkana_TX-AR.bngl new file mode 100644 index 00000000..cf0ae204 --- /dev/null +++ b/Published/Mallela2022_MSAs/Texarkana_TX-AR_Texarkana_TX-AR.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Texarkana, TX-AR +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Texarkana, TX-AR +resetConcentrations() +simulate({suffix=>"Texarkana, TX-AR",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/The_Villages_FL_The_Villages_FL.bngl b/Published/Mallela2022_MSAs/The_Villages_FL_The_Villages_FL.bngl new file mode 100644 index 00000000..bb7b8faf --- /dev/null +++ b/Published/Mallela2022_MSAs/The_Villages_FL_The_Villages_FL.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of The Villages, FL +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in The Villages, FL +resetConcentrations() +simulate({suffix=>"The Villages, FL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Toledo_OH_Toledo_OH.bngl b/Published/Mallela2022_MSAs/Toledo_OH_Toledo_OH.bngl new file mode 100644 index 00000000..001ead8f --- /dev/null +++ b/Published/Mallela2022_MSAs/Toledo_OH_Toledo_OH.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Toledo, OH +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Toledo, OH +resetConcentrations() +simulate({suffix=>"Toledo, OH",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Topeka_KS_Topeka_KS.bngl b/Published/Mallela2022_MSAs/Topeka_KS_Topeka_KS.bngl new file mode 100644 index 00000000..eac136c0 --- /dev/null +++ b/Published/Mallela2022_MSAs/Topeka_KS_Topeka_KS.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Topeka, KS +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Topeka, KS +resetConcentrations() +simulate({suffix=>"Topeka, KS",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Trenton-Princeton_NJ_Trenton-Princeton_NJ.bngl b/Published/Mallela2022_MSAs/Trenton-Princeton_NJ_Trenton-Princeton_NJ.bngl new file mode 100644 index 00000000..98be4b9a --- /dev/null +++ b/Published/Mallela2022_MSAs/Trenton-Princeton_NJ_Trenton-Princeton_NJ.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Trenton-Princeton, NJ +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Trenton-Princeton, NJ +resetConcentrations() +simulate({suffix=>"Trenton-Princeton, NJ",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Tucson_AZ_Tucson_AZ.bngl b/Published/Mallela2022_MSAs/Tucson_AZ_Tucson_AZ.bngl new file mode 100644 index 00000000..316ec62e --- /dev/null +++ b/Published/Mallela2022_MSAs/Tucson_AZ_Tucson_AZ.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Tucson, AZ +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Tucson, AZ +resetConcentrations() +simulate({suffix=>"Tucson, AZ",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Tulsa_OK_Tulsa_OK.bngl b/Published/Mallela2022_MSAs/Tulsa_OK_Tulsa_OK.bngl new file mode 100644 index 00000000..a889aa47 --- /dev/null +++ b/Published/Mallela2022_MSAs/Tulsa_OK_Tulsa_OK.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Tulsa, OK +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Tulsa, OK +resetConcentrations() +simulate({suffix=>"Tulsa, OK",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Tuscaloosa_AL_Tuscaloosa_AL.bngl b/Published/Mallela2022_MSAs/Tuscaloosa_AL_Tuscaloosa_AL.bngl new file mode 100644 index 00000000..84504875 --- /dev/null +++ b/Published/Mallela2022_MSAs/Tuscaloosa_AL_Tuscaloosa_AL.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Tuscaloosa, AL +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Tuscaloosa, AL +resetConcentrations() +simulate({suffix=>"Tuscaloosa, AL",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Twin_Falls_ID_Twin_Falls_ID.bngl b/Published/Mallela2022_MSAs/Twin_Falls_ID_Twin_Falls_ID.bngl new file mode 100644 index 00000000..9a1c3eed --- /dev/null +++ b/Published/Mallela2022_MSAs/Twin_Falls_ID_Twin_Falls_ID.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Twin Falls, ID +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Twin Falls, ID +resetConcentrations() +simulate({suffix=>"Twin Falls, ID",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Urban_Honolulu_HI_Urban_Honolulu_HI.bngl b/Published/Mallela2022_MSAs/Urban_Honolulu_HI_Urban_Honolulu_HI.bngl new file mode 100644 index 00000000..bd78de1d --- /dev/null +++ b/Published/Mallela2022_MSAs/Urban_Honolulu_HI_Urban_Honolulu_HI.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 77 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Urban Honolulu, HI +S0 731545 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Urban Honolulu, HI +resetConcentrations() +simulate({suffix=>"Urban Honolulu, HI",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Utica-Rome_NY_Utica-Rome_NY.bngl b/Published/Mallela2022_MSAs/Utica-Rome_NY_Utica-Rome_NY.bngl new file mode 100644 index 00000000..a0aee509 --- /dev/null +++ b/Published/Mallela2022_MSAs/Utica-Rome_NY_Utica-Rome_NY.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Utica-Rome, NY +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Utica-Rome, NY +resetConcentrations() +simulate({suffix=>"Utica-Rome, NY",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Valdosta_GA_Valdosta_GA.bngl b/Published/Mallela2022_MSAs/Valdosta_GA_Valdosta_GA.bngl new file mode 100644 index 00000000..0917feec --- /dev/null +++ b/Published/Mallela2022_MSAs/Valdosta_GA_Valdosta_GA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Valdosta, GA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Valdosta, GA +resetConcentrations() +simulate({suffix=>"Valdosta, GA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Vallejo_CA_Vallejo_CA.bngl b/Published/Mallela2022_MSAs/Vallejo_CA_Vallejo_CA.bngl new file mode 100644 index 00000000..8bc477df --- /dev/null +++ b/Published/Mallela2022_MSAs/Vallejo_CA_Vallejo_CA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Vallejo, CA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Vallejo, CA +resetConcentrations() +simulate({suffix=>"Vallejo, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Victoria_TX_Victoria_TX.bngl b/Published/Mallela2022_MSAs/Victoria_TX_Victoria_TX.bngl new file mode 100644 index 00000000..d4868cbe --- /dev/null +++ b/Published/Mallela2022_MSAs/Victoria_TX_Victoria_TX.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Victoria, TX +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Victoria, TX +resetConcentrations() +simulate({suffix=>"Victoria, TX",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Vineland-Bridgeton_NJ_Vineland-Bridgeton_NJ.bngl b/Published/Mallela2022_MSAs/Vineland-Bridgeton_NJ_Vineland-Bridgeton_NJ.bngl new file mode 100644 index 00000000..f7cdbd02 --- /dev/null +++ b/Published/Mallela2022_MSAs/Vineland-Bridgeton_NJ_Vineland-Bridgeton_NJ.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Vineland-Bridgeton, NJ +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Vineland-Bridgeton, NJ +resetConcentrations() +simulate({suffix=>"Vineland-Bridgeton, NJ",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Virginia_Beach-Norfolk-Newport_News_VA-NC_Virginia_Beach-Norfolk-Newport_News_VA-NC.bngl b/Published/Mallela2022_MSAs/Virginia_Beach-Norfolk-Newport_News_VA-NC_Virginia_Beach-Norfolk-Newport_News_VA-NC.bngl new file mode 100644 index 00000000..d6acdf0a --- /dev/null +++ b/Published/Mallela2022_MSAs/Virginia_Beach-Norfolk-Newport_News_VA-NC_Virginia_Beach-Norfolk-Newport_News_VA-NC.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Virginia Beach-Norfolk-Newport News, VA-NC +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Virginia Beach-Norfolk-Newport News, VA-NC +resetConcentrations() +simulate({suffix=>"Virginia Beach-Norfolk-Newport News, VA-NC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Visalia_CA_Visalia_CA.bngl b/Published/Mallela2022_MSAs/Visalia_CA_Visalia_CA.bngl new file mode 100644 index 00000000..ed094539 --- /dev/null +++ b/Published/Mallela2022_MSAs/Visalia_CA_Visalia_CA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Visalia, CA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Visalia, CA +resetConcentrations() +simulate({suffix=>"Visalia, CA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Warner_Robins_GA_Warner_Robins_GA.bngl b/Published/Mallela2022_MSAs/Warner_Robins_GA_Warner_Robins_GA.bngl new file mode 100644 index 00000000..138fe743 --- /dev/null +++ b/Published/Mallela2022_MSAs/Warner_Robins_GA_Warner_Robins_GA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Warner Robins, GA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Warner Robins, GA +resetConcentrations() +simulate({suffix=>"Warner Robins, GA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Washington-Arlington-Alexandria_DC-VA-MD-WV_Washington-Arlington-Alexandria_DC-VA-MD-WV.bngl b/Published/Mallela2022_MSAs/Washington-Arlington-Alexandria_DC-VA-MD-WV_Washington-Arlington-Alexandria_DC-VA-MD-WV.bngl new file mode 100644 index 00000000..cb3e1051 --- /dev/null +++ b/Published/Mallela2022_MSAs/Washington-Arlington-Alexandria_DC-VA-MD-WV_Washington-Arlington-Alexandria_DC-VA-MD-WV.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Washington-Arlington-Alexandria, DC-VA-MD-WV +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Washington-Arlington-Alexandria, DC-VA-MD-WV +resetConcentrations() +simulate({suffix=>"Washington-Arlington-Alexandria, DC-VA-MD-WV",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Waterloo-Cedar_Falls_IA_Waterloo-Cedar_Falls_IA.bngl b/Published/Mallela2022_MSAs/Waterloo-Cedar_Falls_IA_Waterloo-Cedar_Falls_IA.bngl new file mode 100644 index 00000000..a5804220 --- /dev/null +++ b/Published/Mallela2022_MSAs/Waterloo-Cedar_Falls_IA_Waterloo-Cedar_Falls_IA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Waterloo-Cedar Falls, IA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Waterloo-Cedar Falls, IA +resetConcentrations() +simulate({suffix=>"Waterloo-Cedar Falls, IA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Wenatchee_WA_Wenatchee_WA.bngl b/Published/Mallela2022_MSAs/Wenatchee_WA_Wenatchee_WA.bngl new file mode 100644 index 00000000..91c119ce --- /dev/null +++ b/Published/Mallela2022_MSAs/Wenatchee_WA_Wenatchee_WA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Wenatchee, WA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Wenatchee, WA +resetConcentrations() +simulate({suffix=>"Wenatchee, WA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Wheeling_WV-OH_Wheeling_WV-OH.bngl b/Published/Mallela2022_MSAs/Wheeling_WV-OH_Wheeling_WV-OH.bngl new file mode 100644 index 00000000..740ff995 --- /dev/null +++ b/Published/Mallela2022_MSAs/Wheeling_WV-OH_Wheeling_WV-OH.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Wheeling, WV-OH +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Wheeling, WV-OH +resetConcentrations() +simulate({suffix=>"Wheeling, WV-OH",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Wichita_KS_Wichita_KS.bngl b/Published/Mallela2022_MSAs/Wichita_KS_Wichita_KS.bngl new file mode 100644 index 00000000..33d08e2d --- /dev/null +++ b/Published/Mallela2022_MSAs/Wichita_KS_Wichita_KS.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Wichita, KS +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Wichita, KS +resetConcentrations() +simulate({suffix=>"Wichita, KS",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Winchester_VA-WV_Winchester_VA-WV.bngl b/Published/Mallela2022_MSAs/Winchester_VA-WV_Winchester_VA-WV.bngl new file mode 100644 index 00000000..300e8c18 --- /dev/null +++ b/Published/Mallela2022_MSAs/Winchester_VA-WV_Winchester_VA-WV.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Winchester, VA-WV +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Winchester, VA-WV +resetConcentrations() +simulate({suffix=>"Winchester, VA-WV",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Winston-Salem_NC_Winston-Salem_NC.bngl b/Published/Mallela2022_MSAs/Winston-Salem_NC_Winston-Salem_NC.bngl new file mode 100644 index 00000000..10fca918 --- /dev/null +++ b/Published/Mallela2022_MSAs/Winston-Salem_NC_Winston-Salem_NC.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Winston-Salem, NC +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Winston-Salem, NC +resetConcentrations() +simulate({suffix=>"Winston-Salem, NC",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Worcester_MA-CT_Worcester_MA-CT.bngl b/Published/Mallela2022_MSAs/Worcester_MA-CT_Worcester_MA-CT.bngl new file mode 100644 index 00000000..75463ac4 --- /dev/null +++ b/Published/Mallela2022_MSAs/Worcester_MA-CT_Worcester_MA-CT.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Worcester, MA-CT +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Worcester, MA-CT +resetConcentrations() +simulate({suffix=>"Worcester, MA-CT",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Yakima_WA_Yakima_WA.bngl b/Published/Mallela2022_MSAs/Yakima_WA_Yakima_WA.bngl new file mode 100644 index 00000000..fe1e1d39 --- /dev/null +++ b/Published/Mallela2022_MSAs/Yakima_WA_Yakima_WA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Yakima, WA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Yakima, WA +resetConcentrations() +simulate({suffix=>"Yakima, WA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/York-Hanover_PA_York-Hanover_PA.bngl b/Published/Mallela2022_MSAs/York-Hanover_PA_York-Hanover_PA.bngl new file mode 100644 index 00000000..a99a699d --- /dev/null +++ b/Published/Mallela2022_MSAs/York-Hanover_PA_York-Hanover_PA.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of York-Hanover, PA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in York-Hanover, PA +resetConcentrations() +simulate({suffix=>"York-Hanover, PA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/Youngstown-Warren-Boardman_OH-PA_Youngstown-Warren-Boardman_OH-PA.bngl b/Published/Mallela2022_MSAs/Youngstown-Warren-Boardman_OH-PA_Youngstown-Warren-Boardman_OH-PA.bngl new file mode 100644 index 00000000..1a091a0d --- /dev/null +++ b/Published/Mallela2022_MSAs/Youngstown-Warren-Boardman_OH-PA_Youngstown-Warren-Boardman_OH-PA.bngl @@ -0,0 +1,215 @@ +================================================ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Youngstown-Warren-Boardman, OH-PA +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Youngstown-Warren-Boardman, OH-PA +resetConcentrations() +simulate({suffix=>"Youngstown-Warren-Boardman, OH-PA",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions + + +================================================ diff --git a/Published/Mallela2022_MSAs/Yuma_AZ_Yuma_AZ.bngl b/Published/Mallela2022_MSAs/Yuma_AZ_Yuma_AZ.bngl new file mode 100644 index 00000000..dec0ff08 --- /dev/null +++ b/Published/Mallela2022_MSAs/Yuma_AZ_Yuma_AZ.bngl @@ -0,0 +1,211 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 63 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Yuma, AZ +S0 4903185 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,0) +P()=if(t>=sigma,p0,0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Yuma, AZ +resetConcentrations() +simulate({suffix=>"Yuma, AZ",method=>"ode",t_start=>0,t_end=>152,n_steps=>152,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Mallela2022_MSAs/metadata.yaml b/Published/Mallela2022_MSAs/metadata.yaml new file mode 100644 index 00000000..529c1c0b --- /dev/null +++ b/Published/Mallela2022_MSAs/metadata.yaml @@ -0,0 +1,25 @@ +id: "Mallela2022_MSAs" +name: "Mallela 2022 - COVID-19 MSA Models" +description: "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas." +tags: ["covid-19", "epidemiology", "parameter-estimation", "pybionetgen"] +category: "epidemiology" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_repository: "bionetgen-web-simulator" +collection: + type: "geographic-variants" + parent_model: "Mallela2022_template" + variant_key: "metropolitan_area" + count: 281 +playground: + visible: false + gallery_category: "epidemiology" + featured: false + difficulty: "advanced" diff --git a/Published/Massole2023/Massole_2023.bngl b/Published/Massole2023/Massole_2023.bngl new file mode 100644 index 00000000..e317816a --- /dev/null +++ b/Published/Massole2023/Massole_2023.bngl @@ -0,0 +1,27 @@ +begin model +begin molecule types +_EO_(epo,oh~0~1) +_EG_(oh~p,oh~p) +_PERYT_(oh~p,oh~p,oh~p,oh~p) +_PO_(epo,oh~0~1) +end molecule types + +begin seed species +_PERYT_(oh~p,oh~p,oh~p,oh~p) 1140 +_EO_(epo,oh~0) 580 +_PO_(epo,oh~0) 70907 +_EG_(oh~p,oh~p) 27373 +end seed species + +begin reaction rules +_EG_(oh~p) + _EO_(epo,oh~0) -> _EG_(oh~p!1)._EO_(epo!1,oh~1) 1.0 +_EG_(oh~p) + _PO_(epo,oh~0) -> _EG_(oh~p!1)._PO_(epo!1,oh~1) 1.0 +_PERYT_(oh~p) + _EO_(epo,oh~0) -> _PERYT_(oh~p!1)._EO_(epo!1,oh~1) 1.0 +_PERYT_(oh~p) + _PO_(epo,oh~0) -> _PERYT_(oh~p!1)._PO_(epo!1,oh~1) 1.0 +_EO_(epo,oh~0) + _EO_(oh~1) -> _EO_(epo!1,oh~1)._EO_(oh~1!1) 1.0 +_PO_(epo,oh~0) + _PO_(oh~1) -> _PO_(epo!1,oh~1)._PO_(oh~1!1) 1.0 +end reaction rules + + + +end model \ No newline at end of file diff --git a/Published/Massole2023/README.md b/Published/Massole2023/README.md new file mode 100644 index 00000000..c4398eb4 --- /dev/null +++ b/Published/Massole2023/README.md @@ -0,0 +1,21 @@ +# Massole 2023 + +Epo receptor signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- Massole_2023.bngl + +## Tags + +published, massole, 2023 diff --git a/Published/Massole2023/metadata.yaml b/Published/Massole2023/metadata.yaml new file mode 100644 index 00000000..217131ec --- /dev/null +++ b/Published/Massole2023/metadata.yaml @@ -0,0 +1,22 @@ +id: "Massole_2023" +name: "Massole 2023" +description: "Epo receptor signaling" +tags: ["published", "massole", "2023"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/complex-models/Massole_2023.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/McMillan2021/McMillan_2021.bngl b/Published/McMillan2021/McMillan_2021.bngl new file mode 100644 index 00000000..6e39f566 --- /dev/null +++ b/Published/McMillan2021/McMillan_2021.bngl @@ -0,0 +1,124 @@ +begin parameters + +Na 6.02e23 # Avogadro's number (molecues/mol) +Vol 1e-15 # Volume in Litres + + + +# Reagents Concentration in nM +R0_conc 20000 +T0_conc 6250 + + +# Receptor's interactions + +# Convert from nanomolar to number of molecules in volume Vol +# BioNetGen uses number of molecules and NOT concentration + +R0_tot (R0_conc)*(1e-9)*Na*Vol +T0_tot (T0_conc)*(1e-9)*Na*Vol + +koff 0.01 + +# values of constants in nM + +Kp 200 +Ka 200 + +K1 10 +K2 100 +K3 1000 + +# Convert macroscopic (Molar; volume indenpendent constant) to microscopic (events per second) constant +# BioNetGen uses microscopic constants + +kp koff /(Kp*1e-9*Na*Vol) +ka koff /(Ka*1e-9*Na*Vol) +k1 koff /(K1*1e-9*Na*Vol) +k2 koff /(K2*1e-9*Na*Vol) +k3 koff /(K3*1e-9*Na*Vol) + +end parameters + +begin molecule types +R(p,a) +T(1,2,3) +end molecule types + +begin seed species + +R(p,a) R0_tot +T(1,2,3) T0_tot +end seed species + + + +begin observables + +Molecules MonomerReceptor R(p,a) +#Molecules DimerReceptor R(p!0,a).R(p!0,a), R(a!0,p).R(a!0,p) +#Molecules AggregatedReceptor R(p!0,a!0) + + +Molecules freeTNF T(1,2,3) +Molecules TNF1R T(1!+,2,3), T(1,2!+,3), T(1,2,3!+) +Molecules TNF2R T(1!+,2!+,3), T(1!+,2,3!+), T(1,2!+,3!+) +Molecules TNF3R T(1!+,2!+,3!+) + + + + +#Molecules Aggregate2TNF T(1!+,2!+,3).R(p!+).R(p!+), T(1!+,2,3!+).R(p!+).R(p!+), T(1,2!+,3!+).R(p!+).R(p!+) +#Molecules Aggregate3TNF T(1!+,2!+,3!+).R(p!+).R(p!+).R(p!+) +#Molecules NoAggregate3TNF T(1!+,2!+,3!+).R(p).R(p).R(p) + +end observables + +begin reaction rules + +# Receptor dimerization parallel +#1: R(p) + R(p) <-> R(p!0).R(p!0) kp, koff + +# Receptor dimerization antiparallel +#2: R(a) + R(a) <-> R(a!0).R(a!0) ka, koff + + + +######################################################### +# TNF reactions +######################################################### + +# First TNF binding event + +3: T(1,2,3) + R(a) <-> T(1!1,2,3).R(a!1) k1, koff +4: T(1,2,3) + R(a) <-> T(1,2!1,3).R(a!1) k1, koff +5: T(1,2,3) + R(a) <-> T(1,2,3!1).R(a!1) k1, koff + +# Second TNF binding event + +6: T(1!+,2,3) + R(a) <-> T(1!+,2!1,3).R(a!1) k2, koff +7: T(1!+,2,3) + R(a) <-> T(1!+,2,3!1).R(a!1) k2, koff +8: T(1,2!+,3) + R(a) <-> T(1!1,2!+,3).R(a!1) k2, koff +9: T(1,2!+,3) + R(a) <-> T(1,2!+,3!1).R(a!1) k2, koff +10: T(1,2,3!+) + R(a) <-> T(1!1,2,3!+).R(a!1) k2, koff +11: T(1,2,3!+) + R(a) <-> T(1,2!1,3!+).R(a!1) k2, koff + + +# Third TNF binding event + +12: T(1!+,2!+,3) + R(a) <-> T(1!+,2!+,3!1).R(a!1) k3, koff +13: T(1!+,2,3!+) + R(a) <-> T(1!+,2!1,3!+).R(a!1) k3, koff +14: T(1,2!+,3!+) + R(a) <-> T(1!1,2!+,3!+).R(a!1) k3, koff + + + + +end reaction rules + +#actions + +# Simulation of a truncated network +#generate_network({overwrite=>1,max_iter=>1}); +#simulate_nf({suffix=>nf,t_end=>500,n_steps=>5, param=>"-v -cb -dump [500]"}); +generate_network({overwrite=>1}); +simulate_ode({suffix=>ode,n_steps=>5,t_end=>10000}); \ No newline at end of file diff --git a/Published/McMillan2021/README.md b/Published/McMillan2021/README.md new file mode 100644 index 00000000..6084ca6e --- /dev/null +++ b/Published/McMillan2021/README.md @@ -0,0 +1,21 @@ +# McMillan 2021 + +TNF signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: nf +- Imported from: published + +## Files + +- McMillan_2021.bngl + +## Tags + +published, nfsim, mcmillan, 2021, r0_tot, t0_tot, r, t, generate_network, simulate_ode diff --git a/Published/McMillan2021/metadata.yaml b/Published/McMillan2021/metadata.yaml new file mode 100644 index 00000000..66afb7e3 --- /dev/null +++ b/Published/McMillan2021/metadata.yaml @@ -0,0 +1,22 @@ +id: "McMillan_2021" +name: "McMillan 2021" +description: "TNF signaling" +tags: ["published", "nfsim", "mcmillan", "2021", "r0_tot", "t0_tot", "r", "t", "generate_network", "simulate_ode"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["nf"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/complex-models/McMillan_2021.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/Mertins2023/Mertins_2023.bngl b/Published/Mertins2023/Mertins_2023.bngl new file mode 100644 index 00000000..a53ee6ba --- /dev/null +++ b/Published/Mertins2023/Mertins_2023.bngl @@ -0,0 +1,123 @@ +begin parameters +s1 1e-2 #Basal BaxmRNA synthesis rate +s2 3e-2 #p53 regulated BaxmRNA synthesis rate due to activation by DNA Damage +s3 2e1 #Pro-caspase synthesis rate +s4 2e-1 #BAX protein synthesis rate +d1 1e-3 #1/s; BaxmRNA degradation rate +d2 1e-4 #1/s: BAX protein degradation rate +d3 2e-4 #1/s: Pro-caspase and caspase degradation rate +M 1.0e5 #Michaelis Menten Constant for p53 transcription rate +b1 3e-5 #molecules-1 sec-1: BAX-BCLXL on rate +b2 3e-3 #molecules-1 sec-1: BCLXL-BAD on rate +b3 3e-3 #molecules-1 sec-1: phosphoBAD-Fourteen-three-three on rate +b4 3e-5 #molecules-1 sec-1: p53-DNA PARP-DNA on rate +u1 1e-4 #1/s: BAX-BCLXL off rate +u2 1e-4 #1/s: BCLXL-BAD off rate +u3 1e-4 #1/s: phosphoBAD-Fourteen-three-three off rate +u4 1e-4 #1/s: p53-DNA and PARP-DNA off rate +p1 3e-10 #1/s: Kinase activity of AKT for BAD +q1 3e-5 #1/s: Dephosphorylation rate for phosphoBAD +a1 2e-10 #molecules-1 sec-1: Procaspase activation rate by BAX +a2 1e-12 #molecules-1 sec-1: Procaspase autoactiavtion rate +kf1 1e-3 #molecules-1 sec-1: on rate for NAD binding +kr1 3.79 #1/s: off rate for NAD based on reported Kd +IC50 0.001 #in uM; IC50 will vary as an input +kf2 1e-3 #in competition with NAD, therefore adjusted as above +kr2 IC50*3.79 +kcat1 1 # Catalytic activity for PARylation is reported (BindingDB.org) +kcat2 1 # Catalytic activity for de-PARylation is reported (BindingDB.org) +DNADSBtot 1.74e5 #Adjusted for this model +AKTtot 0 #Value represents amount of active (phosphorylated) AKT +p53tot 8.5e4 #This value is critical to demonstrated competition with PARP-DNA binding +BADtot 0.6e5 #This level of BAD is found in the AND logic gate (Bogdal, BMC Sys Biol 2013) +BCLXLtot 1e5 #This level of BCLXL is required for AND logic gate (Bogdal, BMC Sys Biol 2013) +SCAFtot 2e5 #Found in Lipniaki PLoS Comp Biol 2016, SCAF = Fourteen-three-three +PARPtot 1.07e5 #Estimage PARP concentration (Geiger et al.) +NADtot 1.07e6 #estimated on PARP concentration (i.e. one log higher than PARP) +XRCC1tot 1.07e5 #estimated on PARP concentration +PARGtot 1.07e4 #relative to PARP as defined in vivo +Inhtot 0.52e5 #estimated as 0.5 of PARPtot + +begin molecule types +DNADSB(br) +p53(dna) +mRNA_Bax() +Bax(b) +BclXL(b) +Bad(S75_S99~0~PP,b) +Fourteen_3_3(b) +Caspase(csp~Pro~Act) +PARP(DNA,CD~inact~act,NAD) +NAD(sub) +XRCC1(Glu~uPAR~PAR) +PARG(CD) +Inh(isub) +end molecule types + +begin seed species +DNADSB(br) DNADSBtot +p53(dna) p53tot +BclXL(b) BCLXtot +Bad(S75_S99~0,b) BADtot +Fourteen_3_3(b) SCAFtot +PARP(DNA,CD~inact,NAD) PARPtot +NAD(sub) NADPtot +XRCC1(Glu~uPAR) XRCC1tot +PARG(CD) PARGtot +Inh(isub) Inhtot +end seed species + +begin observables +Molecules mRNA_Bax mRNA_Bax() +Molecules Bax_free Bax(b) +Molecules Caspase_act Caspase(csp~Act) +Molecules p53_DNAbound p53(dna!+) +Molecules PARP_Inhbound PARP(DNA,CD~act,NAD!4).Inh(isub!4) +end observables + +begin reactions + +p53(dna) + DNADSB(br) <-> p53(dna!1).DNADSB(br!1) b4, u4 + # PARP binds DNADSB per function + PARP(DNA,CD~inact,NAD) + DNADSB(br) <-> PARP(DNA!2,CD~act,NAD).DNADSB(br!2) b4, u4 + # PARP binds substrate NAD + PARP(DNA!2,CD~act,NAD).DNADSB(br!2) + NAD(sub) <-> \ + PARP(DNA!2,CD~act,NAD!3).DNADSB(br!2).NAD(sub!3) kf1, kr1 + # PARP PARylates XRCC1 as a representative substrate + PARP(DNA!2,CD~act,NAD!3).DNADSB(br!2).NAD(sub!3) + XRCC1(Glu~uPAR) -> PARP(DNA!2,CD~act,NAD).DNADSB(br!2) + NAD(sub) + XRCC1(Glu~PAR) kcat1 + # PARG de-PARylates XRCC1 + PARG(CD) + XRCC1(Glu~PAR) -> PARG(CD) + XRCC1(Glu~uPAR) kcat2 + # Inhibitor binds to NAD pocket and PARP falls off DNA. + Inh(isub) + PARP(DNA!2,CD~act,NAD).DNADSB(br!2) <-> \ + Inh(isub!4).PARP(DNA,CD~act,NAD!4) + DNADSB(br) kf2,kr2 + # Baseline transcription and degradation of BAX mRNA + 0 <-> mRNA_Bax() s1, d1 + # p53 regulated BAX transcription via Hill function, typical rule for transcription + 0 -> mRNA_Bax() s2*(p53_DNAbound^2/(M^2 + p53_DNAbound^2)) + # Bax translation, protein degradation + 0 <-> Bax(b) s4*mRNA_Bax, d2 + # Bax--BclXL binding, unbinding + Bax(b) + BclXL(b) <-> Bax(b!1).BclXL(b!1) b1, u1 + # Bax (complexed) degradation + Bax(b!1).BclXL(b!1) -> BclXL(b) d2 + +# BclXL and dep'ylated Bad binding, unbinding + BclXL(b) + Bad(S75_S99~0,b) <-> BclXL(b!2).Bad(S75_S99~0,b!2) b2,u2 + +# Bad p'ylation by AKT, dep'ylation +Bad(S75_S99~0,b) <-> Bad(S75_S99~PP,b) p1*AKTtot, q1 +# Bad (p'ylated) and 14-3-3 binding, unbinding +Bad(S75_S99~PP,b) + Fourteen_3_3(b) <-> Bad(S75_S99~PP,b!3).Fourteen_3_3(b!3) b3, u3 + # BclXL unbinding from Bad upon Bad p'ylation by AKT. + BclXL(b!2).Bad(S75_S99~0,b!2) -> BclXL(b) + Bad(S75_S99~PP,b) p1*AKTtot + # Unbinding of Bad from 14-3-3 upon Bad dep'ylation + Bad(S75_S99~PP,b!3).Fourteen_3_3(b!3) -> Bad(S75_S99~0,b) + Fourteen_3_3(b) q1 + # Procaspase synthesis + 0 -> Caspase(csp~Pro) s3 + # Caspase and procaspase degradation + Caspase() -> 0 d3 + # Caspase activation by Bax and by other caspases + Caspase(csp~Pro) -> Caspase(csp~Act) a1*Bax_free + a2*Caspase_act^2 +end reaction rules + +end reactions \ No newline at end of file diff --git a/Published/Mertins2023/README.md b/Published/Mertins2023/README.md new file mode 100644 index 00000000..ce6e5969 --- /dev/null +++ b/Published/Mertins2023/README.md @@ -0,0 +1,21 @@ +# Mertins 2023 + +DNA damage response + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Mertins_2023.bngl + +## Tags + +published, mertins, 2023, dnadsb, p53, mrna_bax, bax, bclxl, bad, fourteen_3_3, caspase diff --git a/Published/Mertins2023/metadata.yaml b/Published/Mertins2023/metadata.yaml new file mode 100644 index 00000000..c7364b28 --- /dev/null +++ b/Published/Mertins2023/metadata.yaml @@ -0,0 +1,22 @@ +id: "Mertins_2023" +name: "Mertins 2023" +description: "DNA damage response" +tags: ["published", "mertins", "2023", "dnadsb", "p53", "mrna_bax", "bax", "bclxl", "bad", "fourteen_3_3", "caspase"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/growth-factor-signaling/Mertins_2023.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/Miller2022_NavajoNation/README.md b/Published/Miller2022_NavajoNation/README.md new file mode 100644 index 00000000..731e0a6a --- /dev/null +++ b/Published/Miller2022_NavajoNation/README.md @@ -0,0 +1,25 @@ +# Miller 2022 - Navajo Nation Models + +COVID-19 epidemiological models fit to Navajo Nation regional data. + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- supplementary_material_Arizona_Arizona.bngl +- supplementary_material_Colorado_Colorado.bngl +- supplementary_material_NavajoNation_NavajoNation.bngl +- supplementary_material_NewMexico_NewMexico.bngl +- supplementary_material_Utah_Utah.bngl + +## Tags + +covid-19, epidemiology, pybionetgen diff --git a/Published/Miller2022_NavajoNation/metadata.yaml b/Published/Miller2022_NavajoNation/metadata.yaml new file mode 100644 index 00000000..1e421f8e --- /dev/null +++ b/Published/Miller2022_NavajoNation/metadata.yaml @@ -0,0 +1,25 @@ +id: "Miller2022_NavajoNation" +name: "Miller 2022 - Navajo Nation Models" +description: "COVID-19 epidemiological models fit to Navajo Nation regional data." +tags: ["covid-19", "epidemiology", "pybionetgen"] +category: "epidemiology" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_repository: "bionetgen-web-simulator" +collection: + type: "geographic-variants" + parent_model: "Miller2022_template" + variant_key: "region" + count: 5 +playground: + visible: false + gallery_category: "epidemiology" + featured: false + difficulty: "advanced" diff --git a/Published/Miller2022_NavajoNation/supplementary_material_Arizona_Arizona.bngl b/Published/Miller2022_NavajoNation/supplementary_material_Arizona_Arizona.bngl new file mode 100644 index 00000000..a8481ece --- /dev/null +++ b/Published/Miller2022_NavajoNation/supplementary_material_Arizona_Arizona.bngl @@ -0,0 +1,221 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 1 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 62 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Arizona +S0 7278717 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2,lambda1,\ + 0)) +P()=if(t>=sigma && t=sigma+t_delta2,p1,\ + 0)) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Arizona +resetConcentrations() +simulate({suffix=>"Arizona",method=>"ode",t_start=>0,t_end=>236,n_steps=>236,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Miller2022_NavajoNation/supplementary_material_Colorado_Colorado.bngl b/Published/Miller2022_NavajoNation/supplementary_material_Colorado_Colorado.bngl new file mode 100644 index 00000000..d71f42ba --- /dev/null +++ b/Published/Miller2022_NavajoNation/supplementary_material_Colorado_Colorado.bngl @@ -0,0 +1,229 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 2 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 57 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# time between start of 2nd and 3rd social-distancing periods +t_delta3 t_delta3__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# steady-state social-distancing setpoint for 3rd phase +p2 p2__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda2 lambda2__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Colorado +S0 5758736 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2 && t=sigma+t_delta2+t_delta3,lambda2,\ + 0))) +P()=if(t>=sigma && t=sigma+t_delta2 && t=sigma+t_delta2+t_delta3,p2,\ + 0))) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Colorado +resetConcentrations() +simulate({suffix=>"Colorado",method=>"ode",t_start=>0,t_end=>236,n_steps=>236,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Miller2022_NavajoNation/supplementary_material_NavajoNation_NavajoNation.bngl b/Published/Miller2022_NavajoNation/supplementary_material_NavajoNation_NavajoNation.bngl new file mode 100644 index 00000000..de5c9f42 --- /dev/null +++ b/Published/Miller2022_NavajoNation/supplementary_material_NavajoNation_NavajoNation.bngl @@ -0,0 +1,213 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 0 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 71 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of NavajoNation +S0 356890 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma,lambda0,\ + 0) +P()=if(t>=sigma,p0,\ + 0) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in NavajoNation +resetConcentrations() +simulate({suffix=>"NavajoNation",method=>"ode",t_start=>0,t_end=>236,n_steps=>236,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Miller2022_NavajoNation/supplementary_material_NewMexico_NewMexico.bngl b/Published/Miller2022_NavajoNation/supplementary_material_NewMexico_NewMexico.bngl new file mode 100644 index 00000000..d719dd08 --- /dev/null +++ b/Published/Miller2022_NavajoNation/supplementary_material_NewMexico_NewMexico.bngl @@ -0,0 +1,229 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 2 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 67 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# time between start of 2nd and 3rd social-distancing periods +t_delta3 t_delta3__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# steady-state social-distancing setpoint for 3rd phase +p2 p2__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda2 lambda2__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of NewMexico +S0 2096829 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2 && t=sigma+t_delta2+t_delta3,lambda2,\ + 0))) +P()=if(t>=sigma && t=sigma+t_delta2 && t=sigma+t_delta2+t_delta3,p2,\ + 0))) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in NewMexico +resetConcentrations() +simulate({suffix=>"NewMexico",method=>"ode",t_start=>0,t_end=>236,n_steps=>236,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Miller2022_NavajoNation/supplementary_material_Utah_Utah.bngl b/Published/Miller2022_NavajoNation/supplementary_material_Utah_Utah.bngl new file mode 100644 index 00000000..b140f57b --- /dev/null +++ b/Published/Miller2022_NavajoNation/supplementary_material_Utah_Utah.bngl @@ -0,0 +1,229 @@ +begin model +begin parameters +# reporting period (1 d) +delta_t 1 # d +n 2 # n+1 distinct periods of social distancing +################################## +# Table 1: adjustable parameters # +################################## +# start time of regional epidemic +t0 t0__FREE # d +# start time of 1st social-distancing period +sigma 62 # d (> t0), earliest day on which the cumulative reported case count was 200 cases or more +# time between start of 1st and 2nd social-distancing periods +t_delta2 t_delta2__FREE #/d +# time between start of 2nd and 3rd social-distancing periods +t_delta3 t_delta3__FREE #/d +# steady-state social-distancing setpoint for 1st phase +p0 p0__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda0 lambda0__FREE # /d +# steady-state social-distancing setpoint for 2nd phase +p1 p1__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda1 lambda1__FREE # /d +# steady-state social-distancing setpoint for 3rd phase +p2 p2__FREE # dimensionless +# eigenvalue that determines timescale for social-distancing dynamics +lambda2 lambda2__FREE # /d +# rate constant for transmission +beta beta__FREE # /d +# fraction of symptomatic cases of mild disease detected +fD fD__FREE # dimensionless +# parameter of negative binomial distribution +r r__FREE +############################# +# Table 2: fixed parameters # +############################# +# total population of Utah +S0 3205958 # initial number of susceptible individuals +I0 1 # initial number of infected individuals with mild symptomatic disease +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease/hospitalization +fH 0.054 # dimensionless +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +end parameters +begin molecule types +fDCS() +counter() +S(state~M~P) +E1(state~M~P) +E2(state~M~P~Q) +E3(state~M~P~Q) +E4(state~M~P~Q) +E5(state~M~P~Q) +A(state~M~P~Q) +I(state~M~P~Q) +H() +R() +D() +IQ() +HQ() +RQ() +DQ() +end molecule types +begin seed species +IQ() 0 +HQ() 0 +RQ() 0 +DQ() 0 +fDCS() 0 +counter() 0 +S(state~M) S0 +I(state~M) I0 +end seed species +begin observables +Molecules fDCS_Cum fDCS() +Molecules SM S(state~M) +Molecules SP S(state~P) +Molecules nStotal S() +Molecules E1M E1(state~M) +Molecules E1P E1(state~P) +Molecules E2M E2(state~M) +Molecules E2P E2(state~P) +Molecules E2to5M E2(state~M) E3(state~M) E4(state~M) E5(state~M) +Molecules E2to5P E2(state~P) E3(state~P) E4(state~P) E5(state~P) +Molecules E2to5Q E2(state~Q) E3(state~Q) E4(state~Q) E5(state~Q) +Molecules nE2_MP E2(state~M) E2(state~P) +Molecules nE3_MP E3(state~M) E3(state~P) +Molecules nE4_MP E4(state~M) E4(state~P) +Molecules nE5_MP E5(state~M) E5(state~P) +Molecules IM I(state~M) +Molecules IP I(state~P) +Molecules IQobs I(state~Q) +Molecules AM A(state~M) +Molecules AP A(state~P) +Molecules AQ A(state~Q) +Molecules H H() +Molecules R R() +Molecules D D() +Molecules HQ HQ() +Molecules RQ RQ() +Molecules DQ DQ() +Molecules t counter() +end observables +begin functions +U()=if(t>sigma,1,0) +Lambda()=if(t>=sigma && t=sigma+t_delta2 && t=sigma+t_delta2+t_delta3,lambda2,\ + 0))) +P()=if(t>=sigma && t=sigma+t_delta2 && t=sigma+t_delta2+t_delta3,p2,\ + 0))) +kQfunc()=if(t>t0,kQ,0) +jQfunc()=if(t>t0,jQ,0) +cIfunc()=if(t>t0,cI,0) +phiM()=if(t>t0,IM+rhoE*E2to5M+rhoA*AM,0) +phiP()=IP+rhoE*E2to5P+rhoA*AP +CumNum_detected_cases_Cum()=fD*(IM+IP+IQobs+H+(1-fA)*R+D) + +# first-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP) + +# second-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP) + +# third-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ))) + +# fourth-order Taylor approximation of C(t) - C(t - delta_t) +# ApproxNewCasesDetectedDaily()=delta_t*(fD*(1-fA)*kL*nE5_MP)-(delta_t^2)*(fD*0.5*(1-fA)*kL)*(kL*nE4_MP-(kL+kQ)*nE5_MP)+(delta_t^3)*(fD/6.0*(1-fA)*kL)*(kL^2*nE3_MP-(kL+kQ)*(2*kL*nE4_MP-nE5_MP*(kL+kQ)))-(delta_t^4)*(fD/24.0*(1-fA)*kL)*(kL^3*nE2_MP-(kL+kQ)*(3*kL^2*nE3_MP-(kL+kQ)*(3*kL*nE4_MP-nE5_MP*(kL+kQ)))) + +end functions +begin reaction rules +0->fDCS() fD*(1-fA)*kL*nE5_MP # fD*dCS/dt = fD*(1-fA)*kL*nE5_MP +# increment time +0->counter() 1 +# disease transmission +S(state~M)->E1(state~M) (beta/S0)*(phiM()+mb*phiP()) +S(state~P)->E1(state~P) mb*(beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(state~M)<->S(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E1(state~M)<->E1(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E2(state~M)<->E2(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E3(state~M)<->E3(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E4(state~M)<->E4(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E5(state~M)<->E5(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +A(state~M)<->A(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(state~M)<->I(state~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# quarantine because of testing and contact tracing +E2(state~M)->E2(state~Q) kQ +E2(state~P)->E2(state~Q) kQ +E3(state~M)->E3(state~Q) kQ +E3(state~P)->E3(state~Q) kQ +E4(state~M)->E4(state~Q) kQ +E4(state~P)->E4(state~Q) kQ +E5(state~M)->E5(state~Q) kQ +E5(state~P)->E5(state~Q) kQ +A(state~M)->A(state~Q) kQ +A(state~P)->A(state~Q) kQ +I(state~M)->I(state~Q) kQfunc() +I(state~P)->I(state~Q) kQ +# self-isolation because of symptom awareness +I(state~M)->I(state~Q) jQfunc() +I(state~P)->I(state~Q) jQ +# incubation +E1(state~M)->E2(state~M) kL +E1(state~P)->E2(state~P) kL +E2(state~M)->E3(state~M) kL +E2(state~P)->E3(state~P) kL +E2(state~Q)->E3(state~Q) kL +E3(state~M)->E4(state~M) kL +E3(state~P)->E4(state~P) kL +E3(state~Q)->E4(state~Q) kL +E4(state~M)->E5(state~M) kL +E4(state~P)->E5(state~P) kL +E4(state~Q)->E5(state~Q) kL +E5(state~M)->A(state~M) kL*fA +E5(state~P)->A(state~P) kL*fA +E5(state~Q)->A(state~Q) kL*fA +E5(state~M)->I(state~M) kL*(1-fA) +E5(state~P)->I(state~P) kL*(1-fA) +E5(state~Q)->I(state~Q) kL*(1-fA) +# imnmune clearance & recovery from mild disease +A(state~M)->R() cA +A(state~P)->R() cA +A(state~Q)->R() cA +I(state~M)->R() cIfunc()*(1-fH) +I(state~P)->R() cI*(1-fH) +I(state~Q)->R() cI*(1-fH) +# progression to severe disease & hospitalization/isolation-at-home +I(state~M)->H() cIfunc()*fH +I(state~P)->H() cI*fH +I(state~Q)->H() cI*fH +# recovery from severe disease +H()->R() cH*fR +# progression from severe disease to death +H()->D() cH*(1-fR) +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +saveConcentrations() +# simulate the regional epidemic in Utah +resetConcentrations() +simulate({suffix=>"Utah",method=>"ode",t_start=>0,t_end=>236,n_steps=>236,\ +print_functions=>1}) +end actions \ No newline at end of file diff --git a/Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_KO.bngl b/Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_KO.bngl new file mode 100644 index 00000000..7ff9c099 --- /dev/null +++ b/Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_KO.bngl @@ -0,0 +1,517 @@ +begin model +# ============================================================================== +# # +# # +# MEK1-MEK2 Heterodimerization-based ERK Cascade Model # +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # +# # +# The model includes the negative feedback from ERK to MEK1 and its mediation # +# to MEK2 via heterodimerization. The code describes the events taking place # +# in WT MEFs. # +# # +# This code features the article entitled: # +# # +# "MEK1 and MEK2 differentially control the duration and amplitude # +# of the ERK cascade response" # +# # +# by Pawel Kocieniewski and Tomasz Lipniacki (Physical Biology, 2013). # +# Additional work with PyBNF and parameterization by Miller et al. (2025). # +# # +# ...:::*:::... # +# # +# The experimental perturbations described in the paper are simulated as # +# follows: # +# # +# a) MEK1 knock-out -- setting MEK1 content to zero (MEK1_0 = 0); # +# # +# b) MEK1 dimerization ablation (N78G mutant) -- disabling MEK1 homo- and # +# dimerization (set constants b2 = 0 and b4 = 0); # +# # +# c) MEK1 negative feedback ablation (T292A mutant) -- disabling MEK1 # +# Thr292 phosphorylation rule (set constant p4 = 0); # +# # +# d) MEK1 constitutive MEK1 repression (T292D mutant): # +# # +# i) -- setting total intial MEK1 phosphorylated at Thr292 (replace # +# MEK1(d,T292~Y,S1~Y) by MEK1(d,T292~P,S1~Y), # +# # +# ii) -- disabling MEK1 Thr292p dephosphorylation (set constant u4 = 0), # +# # +# iii) -- attenuate MEK1-Thr292p/PHP binding rate to reflect the lower # +# affinity of phosphomimetic substitution with respect to Thr 292P # +# (set b5 = b5/N, N = 3). # +# # +# ...:::*:::... # +# # +# Last changes: # +# # +# * Ely F. Miller Fri June 27 12:37:29 PST 2025 # +# # +# ============================================================================== + + +begin parameters + + ## General -------------------------------------------------------------- + # + MEK1_fraction 0.67 # MEK1 fraction of total MEKs content + X 5 # MEK2-to-MEK1 kinase activity ratio + sigma sigma__FREE #hypersensitive parameter for adaptive mcmc + + ## Concentrations of species --------------------------------------------- + + EGFR_0 4.999382777809e+05 # initial EGFR level, resting cell steady state + #EGFR_steady 4.999382777809e+05 + SOS1_0 1.999753111124e+05 # initial Sos1 level, resting cell steady state + #SOS1_steady 1.999753111124e+05 + RAS_0 500000 # initial RAS level, constant + RAF_0 500000 # initial RAF level, constant + MEK_tot_0 200000 # initial MEK1 and MEK2 total level, constant + MEK1_0 0 #MEK_tot_0*MEK1_fraction # initial MEK1 level, constant + MEK1_0_T292p 0 # initial MEK1-Thr292p level + MEK2_0 MEK_tot_0*(1-MEK1_fraction) # initial MEK2 level, constant + ERK_0 3000000 # initial combined ERK1 and ERK2 level, constant + PHP_MEK_0 3000000 # initial PHP level, constant + + + ## Assembly and dynamics of the EGFR receptor complexes ------------------ + # + s1 2.5 # EGFR receptor subunit constitutive production + d1 5e-6 # EGFR receptor subunit constitutive degradation + s2 1 # Sos1 constitutive production + d2 5e-6 # Sos1 constitutive degradation + c1 0 # formation of EGFR receptor subunit/ligand complex -- SIGNAL + c1_init 0 # c1 value prior to stimulation with ligand + c1_L 0.02 # c1 value after stimulation with ligand + c2 2e-7 # EGFR receptor dimerization due ligand + t1 100 # EGFR subunits transphosphorylation in EGFR dimer + d3 d3__FREE #1e-3 # degradation of ligand-bound dimer complexes + b1 4e-8 # association of phosphorylated receptor EGFR subunits with Sos1 + n1 2e-3 # disassociation of EGFR receptor subunits from Sos1 + + + ## MEK1 and MEK2 homo- and heterodimerization ---------------------------- + # + b2 1e-5 # MEK1 homodimer formation + n2 1e-3 # MEK1 dimer dissociation + b3 1e-5 # MEK2 homodimer formation + n3 3e-2 # MEK2 homodimer dissociation + b4 1e-5 # MEK1 and MEK2 heterodimer formation + n4 1e-3 # MEK1 and MEK2 heterodimer dissociation + + + ## Signal transduction through RAF, MEK1/2, and ERK ---------------------- + # + a1 1.5e-7 # activation of Ras by EGFR-Sos1 complex (exchange of GDP for GTP) + i1 2e-2 # inactivation of RAS (hydrolysis of bound GTP to GDP) + a2 4e-8 # activation of RAF by RAS-GTP + i2 1e-2 # inactivation of RAF + p1 1.5e-7 # phosphorylation of MEK1 and MEK2 on the activation sites by RAF + u1 5e-3 # dephosphorylation of MEK1 and MEK2 on the activation sites + p2a 1e-6 # phosphorylation of ERK on the activation sites by MEK1 + p2b X*p2a # phosphorylation of ERK on the activation sites by MEK2 + u2 2e-2 # dephosphorylation of ERK on the activation sites + + + ## Phosphorylation and dephosphorylation --------------------------------- + ## of feedback sites of Sos1 and MEK1 (Thr292) +p3 2e-9 #feedback phosphorylation of Sos1 by active ERK +u3 u3__FREE #1e-3 #dephosphorylation of the Sos1 feedback site +p4 1.2e-9 #feedback phosphorylation of MEK1 by ERK +u4 2e-4 #dephosphorylation of the MEK1 feedback site (Thr292) + + ## Interactions of PHP with Thr292p of MEK1 ------------------------------ + # + b5 4e-9 # PHP phosphatse binding to Thr292p of MEK1 + n5 2e-4 # dissociation of PHP phosphatase from Thr292p of MEK1 + u5 20 # dephosphorylation of MEK1 and MEK2 on the activation sites + # by MEK1-bound PHP phosphatase + +end parameters + + +# ============================================================================== + + +begin molecule types + + ## EGFR receptor subunit + # --------------------- + # + # lig -- indicates whether subunit is ligand-bound (B) or not (U) + # sos -- SOS1 binding domain + # dim -- subunit dimerization domain + # S -- indicates whether subunit has undergone phosphorylation + # (P) or not (U) due to subunit transphosphorylation + # + EGFR_wt(lig~U~B,sos,dim,S~U~P) + + + ## SOS1 Guanine Exchange Factor + # ---------------------------- + # + # egfr -- EGFR receptor subunit binding domain. In reality this interaction + # is mediated by Grb2 adapter protein. For sake of simplicity, + # we assume the interaction to be direct. + # S -- indicates whether Sos1 has undergone feedback phosphorylation by ERK. + # Sos1 possesses at least 4 feedback phosphorlyation sites. For + # simplicity sake we model it as a single site. + # + SOS1_wt(egfr,S~U~P) + + + ## RAS GTPase + # ---------- + # + # nt -- indicates whether RAS is bound to GTP (activated) or to GDP + # (inactivated). + # + RAS_wt(nt~GDP~GTP) + + + ## RAF kinase + # ---------- + # + # S -- indicates whether RAS is active (A) or inactive (I). + # + RAF_wt(S~A~I) + + + ## MEK1 kinase + # ----------- + # + # d -- MEK1 homo- and heterodimerization domain. + # S1 -- indicates whether MEK1 is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # T292 -- represents Thr292 residue, which undergoes feedback phosphorylation + # (Yp) by ERK. When phosphorylated, it becomes a binding domain + # for PHP phosphatase. + # + MEK1_wt(d,T292~Y~Yp,S1~Y~Yp~Ypp) + + + ## MEK2 kinase + # ----------- + # + # d -- MEK2 homo- and heterodimerization domain. + # S1 -- indicates whether MEK2 is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # + MEK2_wt(d,S1~Y~Yp~Ypp) + + + ## ERK + # ----- + # + # S1 -- indicates whether ERK is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # + ERK_wt(S1~Y~Yp~Ypp) + + + ## PHP (MEK phosphatase that binds to Thr292p) + # ----- + # + # mek -- MEK1 binding domain at MEK1-Thr292p. + # + PHP_wt(mek) + + + ## Dummy species to simulate constant de novo synthesis reactions + # (Source) and removal/degradation (Sink). + # + Source_wt() + # + Sink_wt() + +end molecule types + + +# ============================================================================== + +begin species + + EGFR_wt(lig~U,sos,dim,S~U) EGFR_0 + SOS1_wt(egfr,S~U) SOS1_0 + RAS_wt(nt~GDP) RAS_0 + RAF_wt(S~I) RAF_0 + MEK1_wt(d,T292~Y,S1~Y) MEK1_0 + MEK1_wt(d,T292~Yp,S1~Y) MEK1_0_T292p + MEK2_wt(d,S1~Y) MEK2_0 + ERK_wt(S1~Y) ERK_0 + PHP_wt(mek) PHP_MEK_0 + + #Source_wt() 1 + #Sink_wt() 0 + +end species + + +# ============================================================================== + + +begin reaction rules + +### WT MODEL + + ## Rule 1. Constitutive production and degradation of EGFR subunit. + # + #Source_wt() -> Source_wt() + EGFR_wt(lig~U,sos,dim,S~U) s1 + #EGFR_wt(sos,dim,S~U) -> Sink_wt() d1 + + + ## Rule 2. Constitutive production and degradation of SOS1. + # + #Source_wt() -> Source_wt() + SOS1_wt(egfr,S~U) s2 + #SOS1_wt(egfr,S~U) -> Sink_wt() d2 + + + ## Rule 3. MEK1 and MEK2 homo- and heterodimerization. + # + MEK1_wt(d) + MEK1_wt(d) <-> MEK1_wt(d!1).MEK1_wt(d!1) b2,n2 + MEK2_wt(d) + MEK2_wt(d) <-> MEK2_wt(d!1).MEK2_wt(d!1) b3,n3 + MEK2_wt(d) + MEK1_wt(d) <-> MEK2_wt(d!1).MEK1_wt(d!1) b4,n4 + + + ## Rule 4. Binding of EGFR receptor subunit with the ligand. + # + EGFR_wt(lig~U,dim,sos,S~U) -> EGFR_wt(lig~B,dim,sos,S~U) c1 + + + ## Rule 5. Dimerization of ligand-bound receptors. + # + EGFR_wt(lig~B,dim,sos,S~U) + EGFR_wt(lig~B,dim,sos,S~U) -> \ + EGFR_wt(lig~B,dim!1,sos,S~U).EGFR_wt(lig~B,dim!1,sos,S~U) c2 + + + ## Rule 6. Transphosphorylation of dimerized EGFR receptor subunits. + # + EGFR_wt(lig~B,dim!+,sos,S~U) -> EGFR_wt(lig~B,dim!+,sos,S~P) t1 + + + ## Rule 7. Binding of a dimerized transphosphorylated EGFR receptor + # subunit to Sos1. + # + EGFR_wt(lig~B,dim!+,sos,S~P) + SOS1_wt(egfr,S~U) <-> \ + EGFR_wt(lig~B,dim!+,sos!1,S~P).SOS1_wt(egfr!1,S~U) b1,n1 + + + ## Rule 8. Degradation of EGFR dimers. + # + EGFR_wt(lig~B,dim!1,sos!?,S~P).EGFR_wt(lig~B,dim!1,sos!?,S~P) -> Sink_wt() d3 + + + ## Rule 9. Activation of RAS by EGFR-Sos1 complex. + # + EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GDP) -> \ + EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GTP) a1 + + + ## Rule 10. Deactivation of RAS. + # + RAS_wt(nt~GTP) -> RAS_wt(nt~GDP) i1 + + + ## Rule 11. Activation of Raf by activated RAS. + # + RAS_wt(nt~GTP) + RAF_wt(S~I) -> \ + RAS_wt(nt~GTP) + RAF_wt(S~A) a2 + + + ## Rule 12. Raf Deactivation. + # + RAF_wt(S~A) -> RAF_wt(S~I) i2 + + + ## Rule 13. Phosphorylation of MEK1 on activating sites by RAF. + # + MEK1_wt(S1~Y) + RAF_wt(S~A) -> \ + MEK1_wt(S1~Yp) + RAF_wt(S~A) 2*p1 + # + MEK1_wt(S1~Yp) + RAF_wt(S~A) -> \ + MEK1_wt(S1~Ypp) + RAF_wt(S~A) p1 + + + ## Rule 14. Dephosphorylation of MEK1 on activating sites. + # + MEK1_wt(S1~Ypp) -> MEK1_wt(S1~Yp) 2*u1 + # + MEK1_wt(S1~Yp) -> MEK1_wt(S1~Y) u1 + + + ## Rule 15. Phosphorylation of MEK2 on activating sites by RAF. + # + MEK2_wt(S1~Y) + RAF_wt(S~A) -> \ + MEK2_wt(S1~Yp) + RAF_wt(S~A) 2*p1 + # + MEK2_wt(S1~Yp) + RAF_wt(S~A) -> \ + MEK2_wt(S1~Ypp) + RAF_wt(S~A) p1 + + + ## Rule 16. Dephosphorylation of MEK2 on activating sites. + # + MEK2_wt(S1~Ypp) -> MEK2_wt(S1~Yp) 2*u1 + # + MEK2_wt(S1~Yp) -> MEK2_wt(S1~Y) u1 + + + ## Rule 17. Activation of ERK by MEK1. + # + ERK_wt(S1~Y) + MEK1_wt(S1~Ypp) -> \ + ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) 2*p2a + # + ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) -> \ + ERK_wt(S1~Ypp) + MEK1_wt(S1~Ypp) p2a + + + ## Rule 18. Activation of ERK by MEK2. + # + ERK_wt(S1~Y) + MEK2_wt(S1~Ypp) -> \ + ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) 2*p2b + # + ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) -> \ + ERK_wt(S1~Ypp) + MEK2_wt(S1~Ypp) p2b + + + ## Rule 19. Dephosphorylation of ERK on activating sites. + # + ERK_wt(S1~Ypp) -> ERK_wt(S1~Yp) 2*u2 + # + ERK_wt(S1~Yp) -> ERK_wt(S1~Y) u2 + + +### NEGATIVE FEEDBACK BY ERK + + ## Rule 20. Feedback phosphorylation of Sos1 by ERK. + # + SOS1_wt(egfr,S~U) + ERK_wt(S1~Ypp) -> \ + SOS1_wt(egfr,S~P) + ERK_wt(S1~Ypp) p3 + + ## Rule 21. Dephosphorylation of the ERK-mediated negative feedback + # site of Sos1. + # + SOS1_wt(egfr,S~P) -> SOS1_wt(egfr,S~U) u3 + + + ## Rule 22. Feedback Phosphorylation of MEK1 by ERK on Thr292. + # + MEK1_wt(T292~Y) + ERK_wt(S1~Ypp) -> \ + MEK1_wt(T292~Yp)+ ERK_wt(S1~Ypp) p4 + + + ## Rule 23. Dephosphorylation of MEK1 on the negative feedback site (Thr292). + # + MEK1_wt(T292~Yp) -> MEK1_wt(T292~Y) u4 + + + ## Rule 24. PHP Attachment to phosphorylated Thr292 of MEK1. + # + MEK1_wt(T292~Yp) + PHP_wt(mek) <-> \ + MEK1_wt(T292~Yp!1).PHP_wt(mek!1) b5,n5 + + + ## Rule 25. Dephosphorylation of MEK1 on activating sites by the bound PHP. + # + MEK1_wt(T292~Yp!1,S1~Ypp).PHP_wt(mek!1) -> \ + MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) 2*u5 + # + MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) -> \ + MEK1_wt(T292~Yp!1,S1~Y).PHP_wt(mek!1) u5 + + + ## Rule 26. Dephosphorylation of the activating sites of MEK1 and MEK2 + # in the dimer with PHP-bound MEK1. + # + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Ypp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) 2*u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Y) u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Ypp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) 2*u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Y) u5 + +end reaction rules + + +# ============================================================================== + + +begin observables + +# ## Activity -------------------------------------------------------------- +# # +# Species EGFR_Lig_wt EGFR_wt(lig~B) +# Species EGFR_SOS_complex_wt EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) +# Species RAS_active_WT RAS_wt(nt~GTP) +# Species RAF_active_WT RAF_wt(S~A) +# Species MEK1_active_WT MEK1_wt(S1~Ypp) +# Species MEK2_active_WT MEK2_wt(S1~Ypp) +# Species MEK_total_active_WT MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) +# Species ERK_active_WT ERK_wt(S1~Ypp) +# +# +# ## Negative feedback ----------------------------------------------------- +# Species SOS1_P_wt SOS1_wt(egfr,S~P) +# Species MEK1_T292p_wt MEK1_wt(T292~Yp!?) +# Species MEK1_Phosphatase_Complex_wt MEK1_wt(T292~Yp!+) +# +# +# ## Species levels -------------------------------------------------------- +# # +# Species EGFR_tot_wt EGFR_wt() +# Species EGFR_mono_tot_wt EGFR_wt(dim) +# Species EGFR_dim_tot_wt EGFR_wt(dim!1).EGFR_wt(dim!1) +# Species EGFR_p_wt EGFR_wt(S~P) +# Species Sos1_tot_wt SOS1_wt() +# Species RAS_tot_wt RAS_wt() +# Species RAF_tot_wt RAF_wt() +# Species MEK1_tot_wt MEK1_wt() +# Species MEK2_tot_wt MEK2_wt() +# Species ERK_tot ERK_wt() +# +# +# ## Dimer levels ---------------------------------------------------------- +# # +# Molecules MEK1_homo_dim_wt MEK1_wt(d!1).MEK1_wt(d!1) +# Molecules MEK2_homo_dim_wt MEK2_wt(d!1).MEK2_wt(d!1) +# Molecules MEK_hetero_dim_wt MEK1_wt(d!1).MEK2_wt(d!1) + + + ## Publication observables ----------------------------------------------- + # + Species pSos1_wt SOS1_wt(S~P) + Species pEGFR_wt EGFR_wt(S~P) + Species pERK1_2_wt ERK_wt(S1~Ypp) + # + Species MEK1_pRDS_wt MEK1_wt(S1~Ypp) + Species MEK2_pRDS_wt MEK2_wt(S1~Ypp) + Species MEK_pRDS_KO MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) + +end observables + +end model + +# ============================================================================== + + +#generate_network({overwrite=>1}); +#writeMfile(); + + +setParameter("c1",0.02); +simulate({suffix=>"KO",method=>"ode",t_end=>3600,n_steps=>12}); + + +# ============================================================================== +# EOF + + + + diff --git a/Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_N78G.bngl b/Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_N78G.bngl new file mode 100644 index 00000000..d95111a6 --- /dev/null +++ b/Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_N78G.bngl @@ -0,0 +1,516 @@ +begin model +# ============================================================================== +# # +# # +# MEK1-MEK2 Heterodimerization-based ERK Cascade Model # +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # +# # +# The model includes the negative feedback from ERK to MEK1 and its mediation # +# to MEK2 via heterodimerization. The code describes the events taking place # +# in WT MEFs. # +# # +# This code features the article entitled: # +# # +# "MEK1 and MEK2 differentially control the duration and amplitude # +# of the ERK cascade response" # +# # +# by Pawel Kocieniewski and Tomasz Lipniacki (Physical Biology, 2013). # +# Additional work with PyBNF and parameterization by Miller et al. (2025). # +# # +# ...:::*:::... # +# # +# The experimental perturbations described in the paper are simulated as # +# follows: # +# # +# a) MEK1 knock-out -- setting MEK1 content to zero (MEK1_0 = 0); # +# # +# b) MEK1 dimerization ablation (N78G mutant) -- disabling MEK1 homo- and # +# dimerization (set constants b2 = 0 and b4 = 0); # +# # +# c) MEK1 negative feedback ablation (T292A mutant) -- disabling MEK1 # +# Thr292 phosphorylation rule (set constant p4 = 0); # +# # +# d) MEK1 constitutive MEK1 repression (T292D mutant): # +# # +# i) -- setting total intial MEK1 phosphorylated at Thr292 (replace # +# MEK1(d,T292~Y,S1~Y) by MEK1(d,T292~P,S1~Y), # +# # +# ii) -- disabling MEK1 Thr292p dephosphorylation (set constant u4 = 0), # +# # +# iii) -- attenuate MEK1-Thr292p/PHP binding rate to reflect the lower # +# affinity of phosphomimetic substitution with respect to Thr 292P # +# (set b5 = b5/N, N = 3). # +# # +# ...:::*:::... # +# # +# Last changes: # +# # +# * Ely F. Miller Fri June 27 12:37:29 PST 2025 # +# # +# ============================================================================== + + +begin parameters + + ## General -------------------------------------------------------------- + # + MEK1_fraction 0.67 # MEK1 fraction of total MEKs content + X 5 # MEK2-to-MEK1 kinase activity ratio + sigma sigma__FREE + + ## Concentrations of species --------------------------------------------- + # + EGFR_0 4.999382777809e+05 # initial EGFR level, resting cell steady state + #EGFR_steady 4.999382777809e+05 + SOS1_0 1.999753111124e+05 # initial Sos1 level, resting cell steady state + #SOS1_steady 1.999753111124e+05 + RAS_0 500000 # initial RAS level, constant + RAF_0 500000 # initial RAF level, constant + MEK_tot_0 200000 # initial MEK1 and MEK2 total level, constant + MEK1_0 MEK_tot_0*MEK1_fraction # initial MEK1 level, constant + MEK1_0_T292p 0 # initial MEK1-Thr292p level + MEK2_0 MEK_tot_0*(1-MEK1_fraction) # initial MEK2 level, constant + ERK_0 3000000 # initial combined ERK1 and ERK2 level, constant + PHP_MEK_0 3000000 # initial PHP level, constant + + + ## Assembly and dynamics of the EGFR receptor complexes ------------------ + # + s1 2.5 # EGFR receptor subunit constitutive production + d1 5e-6 # EGFR receptor subunit constitutive degradation + s2 1 # Sos1 constitutive production + d2 5e-6 # Sos1 constitutive degradation + c1 0 # formation of EGFR receptor subunit/ligand complex -- SIGNAL + c1_init 0 # c1 value prior to stimulation with ligand + c1_L 0.02 # c1 value after stimulation with ligand + c2 2e-7 # EGFR receptor dimerization due ligand + t1 100 # EGFR subunits transphosphorylation in EGFR dimer + d3 d3__FREE #1e-3 # degradation of ligand-bound dimer complexes + b1 4e-8 # association of phosphorylated receptor EGFR subunits with Sos1 + n1 2e-3 # disassociation of EGFR receptor subunits from Sos1 + + + ## MEK1 and MEK2 homo- and heterodimerization ---------------------------- + # + b2 0 # MEK1 homodimer formation + n2 1e-3 # MEK1 dimer dissociation + b3 1e-5 # MEK2 homodimer formation + n3 3e-2 # MEK2 homodimer dissociation + b4 0 # MEK1 and MEK2 heterodimer formation + n4 1e-3 # MEK1 and MEK2 heterodimer dissociation + + + ## Signal transduction through RAF, MEK1/2, and ERK ---------------------- + # + a1 1.5e-7 # activation of Ras by EGFR-Sos1 complex (exchange of GDP for GTP) + i1 2e-2 # inactivation of RAS (hydrolysis of bound GTP to GDP) + a2 4e-8 # activation of RAF by RAS-GTP + i2 1e-2 # inactivation of RAF + p1 1.5e-7 # phosphorylation of MEK1 and MEK2 on the activation sites by RAF + u1 5e-3 # dephosphorylation of MEK1 and MEK2 on the activation sites + p2a 1e-6 # phosphorylation of ERK on the activation sites by MEK1 + p2b X*p2a # phosphorylation of ERK on the activation sites by MEK2 + u2 2e-2 # dephosphorylation of ERK on the activation sites + + + ## Phosphorylation and dephosphorylation --------------------------------- + ## of feedback sites of Sos1 and MEK1 (Thr292) + # +p3 2e-9 #feedback phosphorylation of Sos1 by active ERK +u3 u3__FREE #1e-3 #dephosphorylation of the Sos1 feedback site +p4 1.2e-9 #feedback phosphorylation of MEK1 by ERK +u4 2e-4 #dephosphorylation of the MEK1 feedback site (Thr292) + + ## Interactions of PHP with Thr292p of MEK1 ------------------------------ + # + b5 4e-9 # PHP phosphatse binding to Thr292p of MEK1 + n5 2e-4 # dissociation of PHP phosphatase from Thr292p of MEK1 + u5 20 # dephosphorylation of MEK1 and MEK2 on the activation sites + # by MEK1-bound PHP phosphatase +end parameters + + +# ============================================================================== + + +begin molecule types + + ## EGFR receptor subunit + # --------------------- + # + # lig -- indicates whether subunit is ligand-bound (B) or not (U) + # sos -- SOS1 binding domain + # dim -- subunit dimerization domain + # S -- indicates whether subunit has undergone phosphorylation + # (P) or not (U) due to subunit transphosphorylation + # + EGFR_wt(lig~U~B,sos,dim,S~U~P) + + + ## SOS1 Guanine Exchange Factor + # ---------------------------- + # + # egfr -- EGFR receptor subunit binding domain. In reality this interaction + # is mediated by Grb2 adapter protein. For sake of simplicity, + # we assume the interaction to be direct. + # S -- indicates whether Sos1 has undergone feedback phosphorylation by ERK. + # Sos1 possesses at least 4 feedback phosphorlyation sites. For + # simplicity sake we model it as a single site. + # + SOS1_wt(egfr,S~U~P) + + + ## RAS GTPase + # ---------- + # + # nt -- indicates whether RAS is bound to GTP (activated) or to GDP + # (inactivated). + # + RAS_wt(nt~GDP~GTP) + + + ## RAF kinase + # ---------- + # + # S -- indicates whether RAS is active (A) or inactive (I). + # + RAF_wt(S~A~I) + + + ## MEK1 kinase + # ----------- + # + # d -- MEK1 homo- and heterodimerization domain. + # S1 -- indicates whether MEK1 is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # T292 -- represents Thr292 residue, which undergoes feedback phosphorylation + # (Yp) by ERK. When phosphorylated, it becomes a binding domain + # for PHP phosphatase. + # + MEK1_wt(d,T292~Y~Yp,S1~Y~Yp~Ypp) + + + ## MEK2 kinase + # ----------- + # + # d -- MEK2 homo- and heterodimerization domain. + # S1 -- indicates whether MEK2 is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # + MEK2_wt(d,S1~Y~Yp~Ypp) + + + ## ERK + # ----- + # + # S1 -- indicates whether ERK is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # + ERK_wt(S1~Y~Yp~Ypp) + + + ## PHP (MEK phosphatase that binds to Thr292p) + # ----- + # + # mek -- MEK1 binding domain at MEK1-Thr292p. + # + PHP_wt(mek) + + + ## Dummy species to simulate constant de novo synthesis reactions + # (Source) and removal/degradation (Sink). + # + Source_wt() + # + Sink_wt() + +end molecule types + + +# ============================================================================== + +begin species + + EGFR_wt(lig~U,sos,dim,S~U) EGFR_0 + SOS1_wt(egfr,S~U) SOS1_0 + RAS_wt(nt~GDP) RAS_0 + RAF_wt(S~I) RAF_0 + MEK1_wt(d,T292~Y,S1~Y) MEK1_0 + MEK1_wt(d,T292~Yp,S1~Y) MEK1_0_T292p + MEK2_wt(d,S1~Y) MEK2_0 + ERK_wt(S1~Y) ERK_0 + PHP_wt(mek) PHP_MEK_0 + + #Source_wt() 1 + #Sink_wt() 0 + +end species + + +# ============================================================================== + + +begin reaction rules + +### WT MODEL + + ## Rule 1. Constitutive production and degradation of EGFR subunit. + # + #Source_wt() -> Source_wt() + EGFR_wt(lig~U,sos,dim,S~U) s1 + #EGFR_wt(sos,dim,S~U) -> Sink_wt() d1 + + + ## Rule 2. Constitutive production and degradation of SOS1. + # + #Source_wt() -> Source_wt() + SOS1_wt(egfr,S~U) s2 + #SOS1_wt(egfr,S~U) -> Sink_wt() d2 + + + ## Rule 3. MEK1 and MEK2 homo- and heterodimerization. + # + MEK1_wt(d) + MEK1_wt(d) <-> MEK1_wt(d!1).MEK1_wt(d!1) b2,n2 + MEK2_wt(d) + MEK2_wt(d) <-> MEK2_wt(d!1).MEK2_wt(d!1) b3,n3 + MEK2_wt(d) + MEK1_wt(d) <-> MEK2_wt(d!1).MEK1_wt(d!1) b4,n4 + + + ## Rule 4. Binding of EGFR receptor subunit with the ligand. + # + EGFR_wt(lig~U,dim,sos,S~U) -> EGFR_wt(lig~B,dim,sos,S~U) c1 + + + ## Rule 5. Dimerization of ligand-bound receptors. + # + EGFR_wt(lig~B,dim,sos,S~U) + EGFR_wt(lig~B,dim,sos,S~U) -> \ + EGFR_wt(lig~B,dim!1,sos,S~U).EGFR_wt(lig~B,dim!1,sos,S~U) c2 + + + ## Rule 6. Transphosphorylation of dimerized EGFR receptor subunits. + # + EGFR_wt(lig~B,dim!+,sos,S~U) -> EGFR_wt(lig~B,dim!+,sos,S~P) t1 + + + ## Rule 7. Binding of a dimerized transphosphorylated EGFR receptor + # subunit to Sos1. + # + EGFR_wt(lig~B,dim!+,sos,S~P) + SOS1_wt(egfr,S~U) <-> \ + EGFR_wt(lig~B,dim!+,sos!1,S~P).SOS1_wt(egfr!1,S~U) b1,n1 + + + ## Rule 8. Degradation of EGFR dimers. + # + EGFR_wt(lig~B,dim!1,sos!?,S~P).EGFR_wt(lig~B,dim!1,sos!?,S~P) -> Sink_wt() d3 + + + ## Rule 9. Activation of RAS by EGFR-Sos1 complex. + # + EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GDP) -> \ + EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GTP) a1 + + + ## Rule 10. Deactivation of RAS. + # + RAS_wt(nt~GTP) -> RAS_wt(nt~GDP) i1 + + + ## Rule 11. Activation of Raf by activated RAS. + # + RAS_wt(nt~GTP) + RAF_wt(S~I) -> \ + RAS_wt(nt~GTP) + RAF_wt(S~A) a2 + + + ## Rule 12. Raf Deactivation. + # + RAF_wt(S~A) -> RAF_wt(S~I) i2 + + + ## Rule 13. Phosphorylation of MEK1 on activating sites by RAF. + # + MEK1_wt(S1~Y) + RAF_wt(S~A) -> \ + MEK1_wt(S1~Yp) + RAF_wt(S~A) 2*p1 + # + MEK1_wt(S1~Yp) + RAF_wt(S~A) -> \ + MEK1_wt(S1~Ypp) + RAF_wt(S~A) p1 + + + ## Rule 14. Dephosphorylation of MEK1 on activating sites. + # + MEK1_wt(S1~Ypp) -> MEK1_wt(S1~Yp) 2*u1 + # + MEK1_wt(S1~Yp) -> MEK1_wt(S1~Y) u1 + + + ## Rule 15. Phosphorylation of MEK2 on activating sites by RAF. + # + MEK2_wt(S1~Y) + RAF_wt(S~A) -> \ + MEK2_wt(S1~Yp) + RAF_wt(S~A) 2*p1 + # + MEK2_wt(S1~Yp) + RAF_wt(S~A) -> \ + MEK2_wt(S1~Ypp) + RAF_wt(S~A) p1 + + + ## Rule 16. Dephosphorylation of MEK2 on activating sites. + # + MEK2_wt(S1~Ypp) -> MEK2_wt(S1~Yp) 2*u1 + # + MEK2_wt(S1~Yp) -> MEK2_wt(S1~Y) u1 + + + ## Rule 17. Activation of ERK by MEK1. + # + ERK_wt(S1~Y) + MEK1_wt(S1~Ypp) -> \ + ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) 2*p2a + # + ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) -> \ + ERK_wt(S1~Ypp) + MEK1_wt(S1~Ypp) p2a + + + ## Rule 18. Activation of ERK by MEK2. + # + ERK_wt(S1~Y) + MEK2_wt(S1~Ypp) -> \ + ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) 2*p2b + # + ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) -> \ + ERK_wt(S1~Ypp) + MEK2_wt(S1~Ypp) p2b + + + ## Rule 19. Dephosphorylation of ERK on activating sites. + # + ERK_wt(S1~Ypp) -> ERK_wt(S1~Yp) 2*u2 + # + ERK_wt(S1~Yp) -> ERK_wt(S1~Y) u2 + + +### NEGATIVE FEEDBACK BY ERK + + ## Rule 20. Feedback phosphorylation of Sos1 by ERK. + # + SOS1_wt(egfr,S~U) + ERK_wt(S1~Ypp) -> \ + SOS1_wt(egfr,S~P) + ERK_wt(S1~Ypp) p3 + + ## Rule 21. Dephosphorylation of the ERK-mediated negative feedback + # site of Sos1. + # + SOS1_wt(egfr,S~P) -> SOS1_wt(egfr,S~U) u3 + + + ## Rule 22. Feedback Phosphorylation of MEK1 by ERK on Thr292. + # + MEK1_wt(T292~Y) + ERK_wt(S1~Ypp) -> \ + MEK1_wt(T292~Yp)+ ERK_wt(S1~Ypp) p4 + + + ## Rule 23. Dephosphorylation of MEK1 on the negative feedback site (Thr292). + # + MEK1_wt(T292~Yp) -> MEK1_wt(T292~Y) u4 + + + ## Rule 24. PHP Attachment to phosphorylated Thr292 of MEK1. + # + MEK1_wt(T292~Yp) + PHP_wt(mek) <-> \ + MEK1_wt(T292~Yp!1).PHP_wt(mek!1) b5,n5 + + + ## Rule 25. Dephosphorylation of MEK1 on activating sites by the bound PHP. + # + MEK1_wt(T292~Yp!1,S1~Ypp).PHP_wt(mek!1) -> \ + MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) 2*u5 + # + MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) -> \ + MEK1_wt(T292~Yp!1,S1~Y).PHP_wt(mek!1) u5 + + + ## Rule 26. Dephosphorylation of the activating sites of MEK1 and MEK2 + # in the dimer with PHP-bound MEK1. + # + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Ypp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) 2*u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Y) u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Ypp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) 2*u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Y) u5 + +end reaction rules + + +# ============================================================================== + + +begin observables + +# ## Activity -------------------------------------------------------------- +# # +# Species EGFR_Lig_wt EGFR_wt(lig~B) +# Species EGFR_SOS_complex_wt EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) +# Species RAS_active_WT RAS_wt(nt~GTP) +# Species RAF_active_WT RAF_wt(S~A) +# Species MEK1_active_WT MEK1_wt(S1~Ypp) +# Species MEK2_active_WT MEK2_wt(S1~Ypp) +# Species MEK_total_active_WT MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) +# Species ERK_active_WT ERK_wt(S1~Ypp) +# +# +# ## Negative feedback ----------------------------------------------------- +# Species SOS1_P_wt SOS1_wt(egfr,S~P) +# Species MEK1_T292p_wt MEK1_wt(T292~Yp!?) +# Species MEK1_Phosphatase_Complex_wt MEK1_wt(T292~Yp!+) +# +# +# ## Species levels -------------------------------------------------------- +# # +# Species EGFR_tot_wt EGFR_wt() +# Species EGFR_mono_tot_wt EGFR_wt(dim) +# Species EGFR_dim_tot_wt EGFR_wt(dim!1).EGFR_wt(dim!1) +# Species EGFR_p_wt EGFR_wt(S~P) +# Species Sos1_tot_wt SOS1_wt() +# Species RAS_tot_wt RAS_wt() +# Species RAF_tot_wt RAF_wt() +# Species MEK1_tot_wt MEK1_wt() +# Species MEK2_tot_wt MEK2_wt() +# Species ERK_tot ERK_wt() +# +# +# ## Dimer levels ---------------------------------------------------------- +# # +# Molecules MEK1_homo_dim_wt MEK1_wt(d!1).MEK1_wt(d!1) +# Molecules MEK2_homo_dim_wt MEK2_wt(d!1).MEK2_wt(d!1) +# Molecules MEK_hetero_dim_wt MEK1_wt(d!1).MEK2_wt(d!1) + + + ## Publication observables ----------------------------------------------- + # + Species pSos1_wt SOS1_wt(S~P) + Species pEGFR_wt EGFR_wt(S~P) + Species pERK1_2_wt ERK_wt(S1~Ypp) + # + Species MEK1_pRDS_wt MEK1_wt(S1~Ypp) + Species MEK2_pRDS_wt MEK2_wt(S1~Ypp) + Species MEK_pRDS_N78G MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) + +end observables + +end model +# ============================================================================== + + +#generate_network({overwrite=>1}); +#writeMfile(); + + +setParameter("c1",0.02); +simulate({suffix=>"N78G",method=>"ode",t_end=>3600,n_steps=>12}); + + +# ============================================================================== +# EOF + + +# EOF + diff --git a/Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_T292A.bngl b/Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_T292A.bngl new file mode 100644 index 00000000..969825d3 --- /dev/null +++ b/Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_T292A.bngl @@ -0,0 +1,515 @@ +begin model +# ============================================================================== +# # +# # +# MEK1-MEK2 Heterodimerization-based ERK Cascade Model # +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # +# # +# The model includes the negative feedback from ERK to MEK1 and its mediation # +# to MEK2 via heterodimerization. The code describes the events taking place # +# in WT MEFs. # +# # +# This code features the article entitled: # +# # +# "MEK1 and MEK2 differentially control the duration and amplitude # +# of the ERK cascade response" # +# # +# by Pawel Kocieniewski and Tomasz Lipniacki (Physical Biology, 2013). # +# Additional work with PyBNF and parameterization by Miller et al. (2025). # +# # +# ...:::*:::... # +# # +# The experimental perturbations described in the paper are simulated as # +# follows: # +# # +# a) MEK1 knock-out -- setting MEK1 content to zero (MEK1_0 = 0); # +# # +# b) MEK1 dimerization ablation (N78G mutant) -- disabling MEK1 homo- and # +# dimerization (set constants b2 = 0 and b4 = 0); # +# # +# c) MEK1 negative feedback ablation (T292A mutant) -- disabling MEK1 # +# Thr292 phosphorylation rule (set constant p4 = 0); # +# # +# d) MEK1 constitutive MEK1 repression (T292D mutant): # +# # +# i) -- setting total intial MEK1 phosphorylated at Thr292 (replace # +# MEK1(d,T292~Y,S1~Y) by MEK1(d,T292~P,S1~Y), # +# # +# ii) -- disabling MEK1 Thr292p dephosphorylation (set constant u4 = 0), # +# # +# iii) -- attenuate MEK1-Thr292p/PHP binding rate to reflect the lower # +# affinity of phosphomimetic substitution with respect to Thr 292P # +# (set b5 = b5/N, N = 3). # +# # +# ...:::*:::... # +# # +# Last changes: # +# # +# * Ely F. Miller Fri June 27 12:37:29 PST 2025 # +# # +# ============================================================================== + + +begin parameters + + ## General -------------------------------------------------------------- + # + MEK1_fraction 0.67 # MEK1 fraction of total MEKs content + X 5 # MEK2-to-MEK1 kinase activity ratio + sigma sigma__FREE + + ## Concentrations of species --------------------------------------------- + # + EGFR_0 4.999382777809e+05 # initial EGFR level, resting cell steady state + #EGFR_steady 4.999382777809e+05 + SOS1_0 1.999753111124e+05 # initial Sos1 level, resting cell steady state + #SOS1_steady 1.999753111124e+05 + RAS_0 500000 # initial RAS level, constant + RAF_0 500000 # initial RAF level, constant + MEK_tot_0 200000 # initial MEK1 and MEK2 total level, constant + MEK1_0 MEK_tot_0*MEK1_fraction # initial MEK1 level, constant + MEK1_0_T292p 0 # initial MEK1-Thr292p level + MEK2_0 MEK_tot_0*(1-MEK1_fraction) # initial MEK2 level, constant + ERK_0 3000000 # initial combined ERK1 and ERK2 level, constant + PHP_MEK_0 3000000 # initial PHP level, constant + + + ## Assembly and dynamics of the EGFR receptor complexes ------------------ + # + s1 2.5 # EGFR receptor subunit constitutive production + d1 5e-6 # EGFR receptor subunit constitutive degradation + s2 1 # Sos1 constitutive production + d2 5e-6 # Sos1 constitutive degradation + c1 0 # formation of EGFR receptor subunit/ligand complex -- SIGNAL + c1_init 0 # c1 value prior to stimulation with ligand + c1_L 0.02 # c1 value after stimulation with ligand + c2 2e-7 # EGFR receptor dimerization due ligand + t1 100 # EGFR subunits transphosphorylation in EGFR dimer + d3 d3__FREE #1e-3 # degradation of ligand-bound dimer complexes + b1 4e-8 # association of phosphorylated receptor EGFR subunits with Sos1 + n1 2e-3 # disassociation of EGFR receptor subunits from Sos1 + + + ## MEK1 and MEK2 homo- and heterodimerization ---------------------------- + # + b2 1e-5 # MEK1 homodimer formation + n2 1e-3 # MEK1 dimer dissociation + b3 1e-5 # MEK2 homodimer formation + n3 3e-2 # MEK2 homodimer dissociation + b4 1e-5 # MEK1 and MEK2 heterodimer formation + n4 1e-3 # MEK1 and MEK2 heterodimer dissociation + + + ## Signal transduction through RAF, MEK1/2, and ERK ---------------------- + # + a1 1.5e-7 # activation of Ras by EGFR-Sos1 complex (exchange of GDP for GTP) + i1 2e-2 # inactivation of RAS (hydrolysis of bound GTP to GDP) + a2 4e-8 # activation of RAF by RAS-GTP + i2 1e-2 # inactivation of RAF + p1 1.5e-7 # phosphorylation of MEK1 and MEK2 on the activation sites by RAF + u1 5e-3 # dephosphorylation of MEK1 and MEK2 on the activation sites + p2a 1e-6 # phosphorylation of ERK on the activation sites by MEK1 + p2b X*p2a # phosphorylation of ERK on the activation sites by MEK2 + u2 2e-2 # dephosphorylation of ERK on the activation sites + + + ## Phosphorylation and dephosphorylation --------------------------------- + ## of feedback sites of Sos1 and MEK1 (Thr292) + # + p3 2e-9 #feedback phosphorylation of Sos1 by active ERK +u3 u3__FREE #1e-3 #dephosphorylation of the Sos1 feedback site +p4 0 #feedback phosphorylation of MEK1 by ERK + u4 2e-4 #dephosphorylation of the MEK1 feedback site (Thr292) + + ## Interactions of PHP with Thr292p of MEK1 ------------------------------ + # + b5 4e-9 # PHP phosphatse binding to Thr292p of MEK1 + n5 2e-4 # dissociation of PHP phosphatase from Thr292p of MEK1 + u5 20 # dephosphorylation of MEK1 and MEK2 on the activation sites + # by MEK1-bound PHP phosphatase + +end parameters + + +# ============================================================================== + + +begin molecule types + + ## EGFR receptor subunit + # --------------------- + # + # lig -- indicates whether subunit is ligand-bound (B) or not (U) + # sos -- SOS1 binding domain + # dim -- subunit dimerization domain + # S -- indicates whether subunit has undergone phosphorylation + # (P) or not (U) due to subunit transphosphorylation + # + EGFR_wt(lig~U~B,sos,dim,S~U~P) + + + ## SOS1 Guanine Exchange Factor + # ---------------------------- + # + # egfr -- EGFR receptor subunit binding domain. In reality this interaction + # is mediated by Grb2 adapter protein. For sake of simplicity, + # we assume the interaction to be direct. + # S -- indicates whether Sos1 has undergone feedback phosphorylation by ERK. + # Sos1 possesses at least 4 feedback phosphorlyation sites. For + # simplicity sake we model it as a single site. + # + SOS1_wt(egfr,S~U~P) + + + ## RAS GTPase + # ---------- + # + # nt -- indicates whether RAS is bound to GTP (activated) or to GDP + # (inactivated). + # + RAS_wt(nt~GDP~GTP) + + + ## RAF kinase + # ---------- + # + # S -- indicates whether RAS is active (A) or inactive (I). + # + RAF_wt(S~A~I) + + + ## MEK1 kinase + # ----------- + # + # d -- MEK1 homo- and heterodimerization domain. + # S1 -- indicates whether MEK1 is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # T292 -- represents Thr292 residue, which undergoes feedback phosphorylation + # (Yp) by ERK. When phosphorylated, it becomes a binding domain + # for PHP phosphatase. + # + MEK1_wt(d,T292~Y~Yp,S1~Y~Yp~Ypp) + + + ## MEK2 kinase + # ----------- + # + # d -- MEK2 homo- and heterodimerization domain. + # S1 -- indicates whether MEK2 is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # + MEK2_wt(d,S1~Y~Yp~Ypp) + + + ## ERK + # ----- + # + # S1 -- indicates whether ERK is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # + ERK_wt(S1~Y~Yp~Ypp) + + + ## PHP (MEK phosphatase that binds to Thr292p) + # ----- + # + # mek -- MEK1 binding domain at MEK1-Thr292p. + # + PHP_wt(mek) + + + ## Dummy species to simulate constant de novo synthesis reactions + # (Source) and removal/degradation (Sink). + # + Source_wt() + # + Sink_wt() + +end molecule types + + +# ============================================================================== + +begin species + + EGFR_wt(lig~U,sos,dim,S~U) EGFR_0 + SOS1_wt(egfr,S~U) SOS1_0 + RAS_wt(nt~GDP) RAS_0 + RAF_wt(S~I) RAF_0 + MEK1_wt(d,T292~Y,S1~Y) MEK1_0 + MEK1_wt(d,T292~Yp,S1~Y) MEK1_0_T292p + MEK2_wt(d,S1~Y) MEK2_0 + ERK_wt(S1~Y) ERK_0 + PHP_wt(mek) PHP_MEK_0 + + #Source_wt() 1 + #Sink_wt() 0 + +end species + + +# ============================================================================== + + +begin reaction rules + +### WT MODEL + + ## Rule 1. Constitutive production and degradation of EGFR subunit. + # + #Source_wt() -> Source_wt() + EGFR_wt(lig~U,sos,dim,S~U) s1 + #EGFR_wt(sos,dim,S~U) -> Sink_wt() d1 + + + ## Rule 2. Constitutive production and degradation of SOS1. + # + #Source_wt() -> Source_wt() + SOS1_wt(egfr,S~U) s2 + #SOS1_wt(egfr,S~U) -> Sink_wt() d2 + + + ## Rule 3. MEK1 and MEK2 homo- and heterodimerization. + # + MEK1_wt(d) + MEK1_wt(d) <-> MEK1_wt(d!1).MEK1_wt(d!1) b2,n2 + MEK2_wt(d) + MEK2_wt(d) <-> MEK2_wt(d!1).MEK2_wt(d!1) b3,n3 + MEK2_wt(d) + MEK1_wt(d) <-> MEK2_wt(d!1).MEK1_wt(d!1) b4,n4 + + + ## Rule 4. Binding of EGFR receptor subunit with the ligand. + # + EGFR_wt(lig~U,dim,sos,S~U) -> EGFR_wt(lig~B,dim,sos,S~U) c1 + + + ## Rule 5. Dimerization of ligand-bound receptors. + # + EGFR_wt(lig~B,dim,sos,S~U) + EGFR_wt(lig~B,dim,sos,S~U) -> \ + EGFR_wt(lig~B,dim!1,sos,S~U).EGFR_wt(lig~B,dim!1,sos,S~U) c2 + + + ## Rule 6. Transphosphorylation of dimerized EGFR receptor subunits. + # + EGFR_wt(lig~B,dim!+,sos,S~U) -> EGFR_wt(lig~B,dim!+,sos,S~P) t1 + + + ## Rule 7. Binding of a dimerized transphosphorylated EGFR receptor + # subunit to Sos1. + # + EGFR_wt(lig~B,dim!+,sos,S~P) + SOS1_wt(egfr,S~U) <-> \ + EGFR_wt(lig~B,dim!+,sos!1,S~P).SOS1_wt(egfr!1,S~U) b1,n1 + + + ## Rule 8. Degradation of EGFR dimers. + # + EGFR_wt(lig~B,dim!1,sos!?,S~P).EGFR_wt(lig~B,dim!1,sos!?,S~P) -> Sink_wt() d3 + + + ## Rule 9. Activation of RAS by EGFR-Sos1 complex. + # + EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GDP) -> \ + EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GTP) a1 + + + ## Rule 10. Deactivation of RAS. + # + RAS_wt(nt~GTP) -> RAS_wt(nt~GDP) i1 + + + ## Rule 11. Activation of Raf by activated RAS. + # + RAS_wt(nt~GTP) + RAF_wt(S~I) -> \ + RAS_wt(nt~GTP) + RAF_wt(S~A) a2 + + + ## Rule 12. Raf Deactivation. + # + RAF_wt(S~A) -> RAF_wt(S~I) i2 + + + ## Rule 13. Phosphorylation of MEK1 on activating sites by RAF. + # + MEK1_wt(S1~Y) + RAF_wt(S~A) -> \ + MEK1_wt(S1~Yp) + RAF_wt(S~A) 2*p1 + # + MEK1_wt(S1~Yp) + RAF_wt(S~A) -> \ + MEK1_wt(S1~Ypp) + RAF_wt(S~A) p1 + + + ## Rule 14. Dephosphorylation of MEK1 on activating sites. + # + MEK1_wt(S1~Ypp) -> MEK1_wt(S1~Yp) 2*u1 + # + MEK1_wt(S1~Yp) -> MEK1_wt(S1~Y) u1 + + + ## Rule 15. Phosphorylation of MEK2 on activating sites by RAF. + # + MEK2_wt(S1~Y) + RAF_wt(S~A) -> \ + MEK2_wt(S1~Yp) + RAF_wt(S~A) 2*p1 + # + MEK2_wt(S1~Yp) + RAF_wt(S~A) -> \ + MEK2_wt(S1~Ypp) + RAF_wt(S~A) p1 + + + ## Rule 16. Dephosphorylation of MEK2 on activating sites. + # + MEK2_wt(S1~Ypp) -> MEK2_wt(S1~Yp) 2*u1 + # + MEK2_wt(S1~Yp) -> MEK2_wt(S1~Y) u1 + + + ## Rule 17. Activation of ERK by MEK1. + # + ERK_wt(S1~Y) + MEK1_wt(S1~Ypp) -> \ + ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) 2*p2a + # + ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) -> \ + ERK_wt(S1~Ypp) + MEK1_wt(S1~Ypp) p2a + + + ## Rule 18. Activation of ERK by MEK2. + # + ERK_wt(S1~Y) + MEK2_wt(S1~Ypp) -> \ + ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) 2*p2b + # + ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) -> \ + ERK_wt(S1~Ypp) + MEK2_wt(S1~Ypp) p2b + + + ## Rule 19. Dephosphorylation of ERK on activating sites. + # + ERK_wt(S1~Ypp) -> ERK_wt(S1~Yp) 2*u2 + # + ERK_wt(S1~Yp) -> ERK_wt(S1~Y) u2 + + +### NEGATIVE FEEDBACK BY ERK + + ## Rule 20. Feedback phosphorylation of Sos1 by ERK. + # + SOS1_wt(egfr,S~U) + ERK_wt(S1~Ypp) -> \ + SOS1_wt(egfr,S~P) + ERK_wt(S1~Ypp) p3 + + ## Rule 21. Dephosphorylation of the ERK-mediated negative feedback + # site of Sos1. + # + SOS1_wt(egfr,S~P) -> SOS1_wt(egfr,S~U) u3 + + + ## Rule 22. Feedback Phosphorylation of MEK1 by ERK on Thr292. + # + MEK1_wt(T292~Y) + ERK_wt(S1~Ypp) -> \ + MEK1_wt(T292~Yp)+ ERK_wt(S1~Ypp) p4 + + + ## Rule 23. Dephosphorylation of MEK1 on the negative feedback site (Thr292). + # + MEK1_wt(T292~Yp) -> MEK1_wt(T292~Y) u4 + + + ## Rule 24. PHP Attachment to phosphorylated Thr292 of MEK1. + # + MEK1_wt(T292~Yp) + PHP_wt(mek) <-> \ + MEK1_wt(T292~Yp!1).PHP_wt(mek!1) b5,n5 + + + ## Rule 25. Dephosphorylation of MEK1 on activating sites by the bound PHP. + # + MEK1_wt(T292~Yp!1,S1~Ypp).PHP_wt(mek!1) -> \ + MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) 2*u5 + # + MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) -> \ + MEK1_wt(T292~Yp!1,S1~Y).PHP_wt(mek!1) u5 + + + ## Rule 26. Dephosphorylation of the activating sites of MEK1 and MEK2 + # in the dimer with PHP-bound MEK1. + # + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Ypp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) 2*u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Y) u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Ypp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) 2*u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Y) u5 + +end reaction rules + + +# ============================================================================== + + +begin observables + +# ## Activity -------------------------------------------------------------- +# # +# Species EGFR_Lig_wt EGFR_wt(lig~B) +# Species EGFR_SOS_complex_wt EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) +# Species RAS_active_WT RAS_wt(nt~GTP) +# Species RAF_active_WT RAF_wt(S~A) +# Species MEK1_active_WT MEK1_wt(S1~Ypp) +# Species MEK2_active_WT MEK2_wt(S1~Ypp) +# Species MEK_total_active_WT MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) +# Species ERK_active_WT ERK_wt(S1~Ypp) +# +# +# ## Negative feedback ----------------------------------------------------- +# Species SOS1_P_wt SOS1_wt(egfr,S~P) +# Species MEK1_T292p_wt MEK1_wt(T292~Yp!?) +# Species MEK1_Phosphatase_Complex_wt MEK1_wt(T292~Yp!+) +# +# +# ## Species levels -------------------------------------------------------- +# # +# Species EGFR_tot_wt EGFR_wt() +# Species EGFR_mono_tot_wt EGFR_wt(dim) +# Species EGFR_dim_tot_wt EGFR_wt(dim!1).EGFR_wt(dim!1) +# Species EGFR_p_wt EGFR_wt(S~P) +# Species Sos1_tot_wt SOS1_wt() +# Species RAS_tot_wt RAS_wt() +# Species RAF_tot_wt RAF_wt() +# Species MEK1_tot_wt MEK1_wt() +# Species MEK2_tot_wt MEK2_wt() +# Species ERK_tot ERK_wt() +# +# +# ## Dimer levels ---------------------------------------------------------- +# # +# Molecules MEK1_homo_dim_wt MEK1_wt(d!1).MEK1_wt(d!1) +# Molecules MEK2_homo_dim_wt MEK2_wt(d!1).MEK2_wt(d!1) +# Molecules MEK_hetero_dim_wt MEK1_wt(d!1).MEK2_wt(d!1) + + + ## Publication observables ----------------------------------------------- + # + Species pSos1_wt SOS1_wt(S~P) + Species pEGFR_wt EGFR_wt(S~P) + Species pERK1_2_wt ERK_wt(S1~Ypp) + # + Species MEK1_pRDS_wt MEK1_wt(S1~Ypp) + Species MEK2_pRDS_wt MEK2_wt(S1~Ypp) + Species MEK_pRDS_T292A MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) + +end observables + +end model +# ============================================================================== + + +#generate_network({overwrite=>1}); +#writeMfile(); + + +setParameter("c1",0.02); +simulate({suffix=>"T292A",method=>"ode",t_end=>3600,n_steps=>12}); + +# ============================================================================== +# EOF + + + diff --git a/Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_T292D.bngl b/Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_T292D.bngl new file mode 100644 index 00000000..2d6d115f --- /dev/null +++ b/Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_T292D.bngl @@ -0,0 +1,515 @@ +begin model +# ============================================================================== +# # +# # +# MEK1-MEK2 Heterodimerization-based ERK Cascade Model # +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # +# # +# The model includes the negative feedback from ERK to MEK1 and its mediation # +# to MEK2 via heterodimerization. The code describes the events taking place # +# in WT MEFs. # +# # +# This code features the article entitled: # +# # +# "MEK1 and MEK2 differentially control the duration and amplitude # +# of the ERK cascade response" # +# # +# by Pawel Kocieniewski and Tomasz Lipniacki (Physical Biology, 2013). # +# Additional work with PyBNF and parameterization by Miller et al. (2025). # +# # +# ...:::*:::... # +# # +# The experimental perturbations described in the paper are simulated as # +# follows: # +# # +# a) MEK1 knock-out -- setting MEK1 content to zero (MEK1_0 = 0); # +# # +# b) MEK1 dimerization ablation (N78G mutant) -- disabling MEK1 homo- and # +# dimerization (set constants b2 = 0 and b4 = 0); # +# # +# c) MEK1 negative feedback ablation (T292A mutant) -- disabling MEK1 # +# Thr292 phosphorylation rule (set constant p4 = 0); # +# # +# d) MEK1 constitutive MEK1 repression (T292D mutant): # +# # +# i) -- setting total intial MEK1 phosphorylated at Thr292 (replace # +# MEK1(d,T292~Y,S1~Y) by MEK1(d,T292~P,S1~Y), # +# # +# ii) -- disabling MEK1 Thr292p dephosphorylation (set constant u4 = 0), # +# # +# iii) -- attenuate MEK1-Thr292p/PHP binding rate to reflect the lower # +# affinity of phosphomimetic substitution with respect to Thr 292P # +# (set b5 = b5/N, N = 3). # +# # +# ...:::*:::... # +# # +# Last changes: # +# # +# * Ely F. Miller Fri June 27 12:37:29 PST 2025 # +# # +# ============================================================================== + + +begin parameters + + ## General -------------------------------------------------------------- + # + MEK1_fraction 0.67 # MEK1 fraction of total MEKs content + X 5 # MEK2-to-MEK1 kinase activity ratio + sigma sigma__FREE + + ## Concentrations of species --------------------------------------------- + # + EGFR_0 4.999382777809e+05 # initial EGFR level, resting cell steady state + #EGFR_steady 4.999382777809e+05 + SOS1_0 1.999753111124e+05 # initial Sos1 level, resting cell steady state + #SOS1_steady 1.999753111124e+05 + RAS_0 500000 # initial RAS level, constant + RAF_0 500000 # initial RAF level, constant + MEK_tot_0 200000 # initial MEK1 and MEK2 total level, constant + MEK1_0 MEK_tot_0*MEK1_fraction # initial MEK1 level, constant + MEK1_0_T292p 0 # initial MEK1-Thr292p level + MEK2_0 MEK_tot_0*(1-MEK1_fraction) # initial MEK2 level, constant + ERK_0 3000000 # initial combined ERK1 and ERK2 level, constant + PHP_MEK_0 3000000 # initial PHP level, constant + + + ## Assembly and dynamics of the EGFR receptor complexes ------------------ + # + s1 2.5 # EGFR receptor subunit constitutive production + d1 5e-6 # EGFR receptor subunit constitutive degradation + s2 1 # Sos1 constitutive production + d2 5e-6 # Sos1 constitutive degradation + c1 0 # formation of EGFR receptor subunit/ligand complex -- SIGNAL + c1_init 0 # c1 value prior to stimulation with ligand + c1_L 0.02 # c1 value after stimulation with ligand + c2 2e-7 # EGFR receptor dimerization due ligand + t1 100 # EGFR subunits transphosphorylation in EGFR dimer + d3 d3__FREE #1e-3 # degradation of ligand-bound dimer complexes + b1 4e-8 # association of phosphorylated receptor EGFR subunits with Sos1 + n1 2e-3 # disassociation of EGFR receptor subunits from Sos1 + + + ## MEK1 and MEK2 homo- and heterodimerization ---------------------------- + # + b2 1e-5 # MEK1 homodimer formation + n2 1e-3 # MEK1 dimer dissociation + b3 1e-5 # MEK2 homodimer formation + n3 3e-2 # MEK2 homodimer dissociation + b4 1e-5 # MEK1 and MEK2 heterodimer formation + n4 1e-3 # MEK1 and MEK2 heterodimer dissociation + + + ## Signal transduction through RAF, MEK1/2, and ERK ---------------------- + # + a1 1.5e-7 # activation of Ras by EGFR-Sos1 complex (exchange of GDP for GTP) + i1 2e-2 # inactivation of RAS (hydrolysis of bound GTP to GDP) + a2 4e-8 # activation of RAF by RAS-GTP + i2 1e-2 # inactivation of RAF + p1 1.5e-7 # phosphorylation of MEK1 and MEK2 on the activation sites by RAF + u1 5e-3 # dephosphorylation of MEK1 and MEK2 on the activation sites + p2a 1e-6 # phosphorylation of ERK on the activation sites by MEK1 + p2b X*p2a # phosphorylation of ERK on the activation sites by MEK2 + u2 2e-2 # dephosphorylation of ERK on the activation sites + + + ## Phosphorylation and dephosphorylation --------------------------------- + ## of feedback sites of Sos1 and MEK1 (Thr292) + # + p3 2e-9 #feedback phosphorylation of Sos1 by active ERK +u3 u3__FREE #1e-3 #dephosphorylation of the Sos1 feedback site +p4 1.2e-9 #feedback phosphorylation of MEK1 by ERK + u4 0 #2e-4 #dephosphorylation of the MEK1 feedback site (Thr292) + + ## Interactions of PHP with Thr292p of MEK1 ------------------------------ + # + b5 4e-9/3 # PHP phosphatse binding to Thr292p of MEK1 + n5 2e-4 # dissociation of PHP phosphatase from Thr292p of MEK1 + u5 20 # dephosphorylation of MEK1 and MEK2 on the activation sites + # by MEK1-bound PHP phosphatase + +end parameters + + +# ============================================================================== + + +begin molecule types + + ## EGFR receptor subunit + # --------------------- + # + # lig -- indicates whether subunit is ligand-bound (B) or not (U) + # sos -- SOS1 binding domain + # dim -- subunit dimerization domain + # S -- indicates whether subunit has undergone phosphorylation + # (P) or not (U) due to subunit transphosphorylation + # + EGFR_wt(lig~U~B,sos,dim,S~U~P) + + + ## SOS1 Guanine Exchange Factor + # ---------------------------- + # + # egfr -- EGFR receptor subunit binding domain. In reality this interaction + # is mediated by Grb2 adapter protein. For sake of simplicity, + # we assume the interaction to be direct. + # S -- indicates whether Sos1 has undergone feedback phosphorylation by ERK. + # Sos1 possesses at least 4 feedback phosphorlyation sites. For + # simplicity sake we model it as a single site. + # + SOS1_wt(egfr,S~U~P) + + + ## RAS GTPase + # ---------- + # + # nt -- indicates whether RAS is bound to GTP (activated) or to GDP + # (inactivated). + # + RAS_wt(nt~GDP~GTP) + + + ## RAF kinase + # ---------- + # + # S -- indicates whether RAS is active (A) or inactive (I). + # + RAF_wt(S~A~I) + + + ## MEK1 kinase + # ----------- + # + # d -- MEK1 homo- and heterodimerization domain. + # S1 -- indicates whether MEK1 is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # T292 -- represents Thr292 residue, which undergoes feedback phosphorylation + # (Yp) by ERK. When phosphorylated, it becomes a binding domain + # for PHP phosphatase. + # + MEK1_wt(d,T292~Y~Yp,S1~Y~Yp~Ypp) + + + ## MEK2 kinase + # ----------- + # + # d -- MEK2 homo- and heterodimerization domain. + # S1 -- indicates whether MEK2 is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # + MEK2_wt(d,S1~Y~Yp~Ypp) + + + ## ERK + # ----- + # + # S1 -- indicates whether ERK is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # + ERK_wt(S1~Y~Yp~Ypp) + + + ## PHP (MEK phosphatase that binds to Thr292p) + # ----- + # + # mek -- MEK1 binding domain at MEK1-Thr292p. + # + PHP_wt(mek) + + + ## Dummy species to simulate constant de novo synthesis reactions + # (Source) and removal/degradation (Sink). + # + Source_wt() + # + Sink_wt() + +end molecule types + + +# ============================================================================== + +begin species + + EGFR_wt(lig~U,sos,dim,S~U) EGFR_0 + SOS1_wt(egfr,S~U) SOS1_0 + RAS_wt(nt~GDP) RAS_0 + RAF_wt(S~I) RAF_0 + MEK1_wt(d,T292~Yp,S1~Y) MEK1_0 + MEK1_wt(d,T292~Y,S1~Y) MEK1_0_T292p + MEK2_wt(d,S1~Y) MEK2_0 + ERK_wt(S1~Y) ERK_0 + PHP_wt(mek) PHP_MEK_0 + + #Source_wt() 1 + #Sink_wt() 0 + +end species + + +# ============================================================================== + + +begin reaction rules + +### WT MODEL + + ## Rule 1. Constitutive production and degradation of EGFR subunit. + # + #Source_wt() -> Source_wt() + EGFR_wt(lig~U,sos,dim,S~U) s1 + #EGFR_wt(sos,dim,S~U) -> Sink_wt() d1 + + + ## Rule 2. Constitutive production and degradation of SOS1. + # + #Source_wt() -> Source_wt() + SOS1_wt(egfr,S~U) s2 + #SOS1_wt(egfr,S~U) -> Sink_wt() d2 + + + ## Rule 3. MEK1 and MEK2 homo- and heterodimerization. + # + MEK1_wt(d) + MEK1_wt(d) <-> MEK1_wt(d!1).MEK1_wt(d!1) b2,n2 + MEK2_wt(d) + MEK2_wt(d) <-> MEK2_wt(d!1).MEK2_wt(d!1) b3,n3 + MEK2_wt(d) + MEK1_wt(d) <-> MEK2_wt(d!1).MEK1_wt(d!1) b4,n4 + + + ## Rule 4. Binding of EGFR receptor subunit with the ligand. + # + EGFR_wt(lig~U,dim,sos,S~U) -> EGFR_wt(lig~B,dim,sos,S~U) c1 + + + ## Rule 5. Dimerization of ligand-bound receptors. + # + EGFR_wt(lig~B,dim,sos,S~U) + EGFR_wt(lig~B,dim,sos,S~U) -> \ + EGFR_wt(lig~B,dim!1,sos,S~U).EGFR_wt(lig~B,dim!1,sos,S~U) c2 + + + ## Rule 6. Transphosphorylation of dimerized EGFR receptor subunits. + # + EGFR_wt(lig~B,dim!+,sos,S~U) -> EGFR_wt(lig~B,dim!+,sos,S~P) t1 + + + ## Rule 7. Binding of a dimerized transphosphorylated EGFR receptor + # subunit to Sos1. + # + EGFR_wt(lig~B,dim!+,sos,S~P) + SOS1_wt(egfr,S~U) <-> \ + EGFR_wt(lig~B,dim!+,sos!1,S~P).SOS1_wt(egfr!1,S~U) b1,n1 + + + ## Rule 8. Degradation of EGFR dimers. + # + EGFR_wt(lig~B,dim!1,sos!?,S~P).EGFR_wt(lig~B,dim!1,sos!?,S~P) -> Sink_wt() d3 + + + ## Rule 9. Activation of RAS by EGFR-Sos1 complex. + # + EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GDP) -> \ + EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GTP) a1 + + + ## Rule 10. Deactivation of RAS. + # + RAS_wt(nt~GTP) -> RAS_wt(nt~GDP) i1 + + + ## Rule 11. Activation of Raf by activated RAS. + # + RAS_wt(nt~GTP) + RAF_wt(S~I) -> \ + RAS_wt(nt~GTP) + RAF_wt(S~A) a2 + + + ## Rule 12. Raf Deactivation. + # + RAF_wt(S~A) -> RAF_wt(S~I) i2 + + + ## Rule 13. Phosphorylation of MEK1 on activating sites by RAF. + # + MEK1_wt(S1~Y) + RAF_wt(S~A) -> \ + MEK1_wt(S1~Yp) + RAF_wt(S~A) 2*p1 + # + MEK1_wt(S1~Yp) + RAF_wt(S~A) -> \ + MEK1_wt(S1~Ypp) + RAF_wt(S~A) p1 + + + ## Rule 14. Dephosphorylation of MEK1 on activating sites. + # + MEK1_wt(S1~Ypp) -> MEK1_wt(S1~Yp) 2*u1 + # + MEK1_wt(S1~Yp) -> MEK1_wt(S1~Y) u1 + + + ## Rule 15. Phosphorylation of MEK2 on activating sites by RAF. + # + MEK2_wt(S1~Y) + RAF_wt(S~A) -> \ + MEK2_wt(S1~Yp) + RAF_wt(S~A) 2*p1 + # + MEK2_wt(S1~Yp) + RAF_wt(S~A) -> \ + MEK2_wt(S1~Ypp) + RAF_wt(S~A) p1 + + + ## Rule 16. Dephosphorylation of MEK2 on activating sites. + # + MEK2_wt(S1~Ypp) -> MEK2_wt(S1~Yp) 2*u1 + # + MEK2_wt(S1~Yp) -> MEK2_wt(S1~Y) u1 + + + ## Rule 17. Activation of ERK by MEK1. + # + ERK_wt(S1~Y) + MEK1_wt(S1~Ypp) -> \ + ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) 2*p2a + # + ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) -> \ + ERK_wt(S1~Ypp) + MEK1_wt(S1~Ypp) p2a + + + ## Rule 18. Activation of ERK by MEK2. + # + ERK_wt(S1~Y) + MEK2_wt(S1~Ypp) -> \ + ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) 2*p2b + # + ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) -> \ + ERK_wt(S1~Ypp) + MEK2_wt(S1~Ypp) p2b + + + ## Rule 19. Dephosphorylation of ERK on activating sites. + # + ERK_wt(S1~Ypp) -> ERK_wt(S1~Yp) 2*u2 + # + ERK_wt(S1~Yp) -> ERK_wt(S1~Y) u2 + + +### NEGATIVE FEEDBACK BY ERK + + ## Rule 20. Feedback phosphorylation of Sos1 by ERK. + # + SOS1_wt(egfr,S~U) + ERK_wt(S1~Ypp) -> \ + SOS1_wt(egfr,S~P) + ERK_wt(S1~Ypp) p3 + + ## Rule 21. Dephosphorylation of the ERK-mediated negative feedback + # site of Sos1. + # + SOS1_wt(egfr,S~P) -> SOS1_wt(egfr,S~U) u3 + + + ## Rule 22. Feedback Phosphorylation of MEK1 by ERK on Thr292. + # + MEK1_wt(T292~Y) + ERK_wt(S1~Ypp) -> \ + MEK1_wt(T292~Yp)+ ERK_wt(S1~Ypp) p4 + + + ## Rule 23. Dephosphorylation of MEK1 on the negative feedback site (Thr292). + # + MEK1_wt(T292~Yp) -> MEK1_wt(T292~Y) u4 + + + ## Rule 24. PHP Attachment to phosphorylated Thr292 of MEK1. + # + MEK1_wt(T292~Yp) + PHP_wt(mek) <-> \ + MEK1_wt(T292~Yp!1).PHP_wt(mek!1) b5,n5 + + + ## Rule 25. Dephosphorylation of MEK1 on activating sites by the bound PHP. + # + MEK1_wt(T292~Yp!1,S1~Ypp).PHP_wt(mek!1) -> \ + MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) 2*u5 + # + MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) -> \ + MEK1_wt(T292~Yp!1,S1~Y).PHP_wt(mek!1) u5 + + + ## Rule 26. Dephosphorylation of the activating sites of MEK1 and MEK2 + # in the dimer with PHP-bound MEK1. + # + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Ypp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) 2*u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Y) u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Ypp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) 2*u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Y) u5 + +end reaction rules + + +# ============================================================================== + + +begin observables + +# ## Activity -------------------------------------------------------------- +# # +# Species EGFR_Lig_wt EGFR_wt(lig~B) +# Species EGFR_SOS_complex_wt EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) +# Species RAS_active_WT RAS_wt(nt~GTP) +# Species RAF_active_WT RAF_wt(S~A) +# Species MEK1_active_WT MEK1_wt(S1~Ypp) +# Species MEK2_active_WT MEK2_wt(S1~Ypp) +# Species MEK_total_active_WT MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) +# Species ERK_active_WT ERK_wt(S1~Ypp) +# +# +# ## Negative feedback ----------------------------------------------------- +# Species SOS1_P_wt SOS1_wt(egfr,S~P) +# Species MEK1_T292p_wt MEK1_wt(T292~Yp!?) +# Species MEK1_Phosphatase_Complex_wt MEK1_wt(T292~Yp!+) +# +# +# ## Species levels -------------------------------------------------------- +# # +# Species EGFR_tot_wt EGFR_wt() +# Species EGFR_mono_tot_wt EGFR_wt(dim) +# Species EGFR_dim_tot_wt EGFR_wt(dim!1).EGFR_wt(dim!1) +# Species EGFR_p_wt EGFR_wt(S~P) +# Species Sos1_tot_wt SOS1_wt() +# Species RAS_tot_wt RAS_wt() +# Species RAF_tot_wt RAF_wt() +# Species MEK1_tot_wt MEK1_wt() +# Species MEK2_tot_wt MEK2_wt() +# Species ERK_tot ERK_wt() +# +# +# ## Dimer levels ---------------------------------------------------------- +# # +# Molecules MEK1_homo_dim_wt MEK1_wt(d!1).MEK1_wt(d!1) +# Molecules MEK2_homo_dim_wt MEK2_wt(d!1).MEK2_wt(d!1) +# Molecules MEK_hetero_dim_wt MEK1_wt(d!1).MEK2_wt(d!1) + + + ## Publication observables ----------------------------------------------- + # + Species pSos1_wt SOS1_wt(S~P) + Species pEGFR_wt EGFR_wt(S~P) + Species pERK1_2_wt ERK_wt(S1~Ypp) + # + Species MEK1_pRDS_wt MEK1_wt(S1~Ypp) + Species MEK2_pRDS_wt MEK2_wt(S1~Ypp) + Species MEK_pRDS_T292D MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) + +end observables + +end model +# ============================================================================== + + +#generate_network({overwrite=>1}); +#writeMfile(); + + +setParameter("c1",0.02); +simulate({suffix=>"T292D",method=>"ode",t_end=>3600,n_steps=>12}); + +# ============================================================================== +# EOF + + + diff --git a/Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_WT.bngl b/Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_WT.bngl new file mode 100644 index 00000000..b346c627 --- /dev/null +++ b/Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_WT.bngl @@ -0,0 +1,535 @@ +begin model +# ============================================================================== +# # +# # +# MEK1-MEK2 Heterodimerization-based ERK Cascade Model # +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # +# # +# The model includes the negative feedback from ERK to MEK1 and its mediation # +# to MEK2 via heterodimerization. The code describes the events taking place # +# in WT MEFs. # +# # +# This code features the article entitled: # +# # +# "MEK1 and MEK2 differentially control the duration and amplitude # +# of the ERK cascade response" # +# # +# by Pawel Kocieniewski and Tomasz Lipniacki (Physical Biology, 2013). # +# Additional work with PyBNF and parameterization by Miller et al. (2025). # +# # +# ...:::*:::... # +# # +# The experimental perturbations described in the paper are simulated as # +# follows: # +# # +# a) MEK1 knock-out -- setting MEK1 content to zero (MEK1_0 = 0); # +# # +# b) MEK1 dimerization ablation (N78G mutant) -- disabling MEK1 homo- and # +# dimerization (set constants b2 = 0 and b4 = 0); # +# # +# c) MEK1 negative feedback ablation (T292A mutant) -- disabling MEK1 # +# Thr292 phosphorylation rule (set constant p4 = 0); # +# # +# d) MEK1 constitutive MEK1 repression (T292D mutant): # +# # +# i) -- setting total intial MEK1 phosphorylated at Thr292 (replace # +# MEK1(d,T292~Y,S1~Y) by MEK1(d,T292~P,S1~Y), # +# # +# ii) -- disabling MEK1 Thr292p dephosphorylation (set constant u4 = 0), # +# # +# iii) -- attenuate MEK1-Thr292p/PHP binding rate to reflect the lower # +# affinity of phosphomimetic substitution with respect to Thr 292P # +# (set b5 = b5/N, N = 3). # +# # +# ...:::*:::... # +# # +# Last changes: # +# # +# * Ely F. Miller Fri June 27 12:37:29 PST 2025 # +# # +# ============================================================================== + + +begin parameters + +## General -------------------------------------------------------------- +# +MEK1_fraction 0.67 # MEK1 fraction of total MEKs content +X 5 # MEK2-to-MEK1 kinase activity ratio +sigma sigma__FREE + +## Concentrations of species --------------------------------------------- +# +EGFR_0 4.999382777809e+05 # initial EGFR level, resting cell steady state + #EGFR_steady 4.999382777809e+05 +SOS1_0 1.999753111124e+05 # initial Sos1 level, resting cell steady state + #SOS1_steady 1.999753111124e+05 +RAS_0 500000 # initial RAS level, constant +RAF_0 500000 # initial RAF level, constant +MEK_tot_0 200000 # initial MEK1 and MEK2 total level, constant +MEK1_0 MEK_tot_0*MEK1_fraction # initial MEK1 level, constant +MEK1_0_T292p 0 # initial MEK1-Thr292p level +MEK2_0 MEK_tot_0*(1-MEK1_fraction) # initial MEK2 level, constant +ERK_0 3000000 # initial combined ERK1 and ERK2 level, constant +PHP_MEK_0 3000000 # initial PHP level, constant + + +## Assembly and dynamics of the EGFR receptor complexes ------------------ +# +s1 2.5 # EGFR receptor subunit constitutive production +d1 5e-6 # EGFR receptor subunit constitutive degradation +s2 1 # Sos1 constitutive production +d2 5e-6 # Sos1 constitutive degradation +c1 0 # formation of EGFR receptor subunit/ligand complex -- SIGNAL +c1_init 0 # c1 value prior to stimulation with ligand +c1_L 0.02 # c1 value after stimulation with ligand +c2 2e-7 # EGFR receptor dimerization due ligand +t1 100 # EGFR subunits transphosphorylation in EGFR dimer +d3 d3__FREE #1e-3 # degradation of ligand-bound dimer complexes +b1 4e-8 # association of phosphorylated receptor EGFR subunits with Sos1 +n1 2e-3 # disassociation of EGFR receptor subunits from Sos1 + + +## MEK1 and MEK2 homo- and heterodimerization ---------------------------- +# +b2 1e-5 # MEK1 homodimer formation +n2 1e-3 # MEK1 dimer dissociation +b3 1e-5 # MEK2 homodimer formation +n3 3e-2 # MEK2 homodimer dissociation +b4 1e-5 #MEK1 and MEK2 heterodimer formation +n4 1e-3 #MEK1 and MEK2 heterodimer dissociation + + +## Signal transduction through RAF, MEK1/2, and ERK ---------------------- +# +a1 1.5e-7 # activation of Ras by EGFR-Sos1 complex (exchange of GDP for GTP) +i1 2e-2 # inactivation of RAS (hydrolysis of bound GTP to GDP) +a2 4e-8 # activation of RAF by RAS-GTP +i2 1e-2 # inactivation of RAF +p1 1.5e-7 # phosphorylation of MEK1 and MEK2 on the activation sites by RAF +u1 5e-3 # dephosphorylation of MEK1 and MEK2 on the activation sites +p2a 1e-6 # phosphorylation of ERK on the activation sites by MEK1 +p2b X*p2a # phosphorylation of ERK on the activation sites by MEK2 +u2 2e-2 # dephosphorylation of ERK on the activation sites + + +## Phosphorylation and dephosphorylation --------------------------------- +## of feedback sites of Sos1 and MEK1 (Thr292) +# +p3 2e-9 #feedback phosphorylation of Sos1 by active ERK +u3 u3__FREE #1e-3 #dephosphorylation of the Sos1 feedback site +p4 1.2e-9 #feedback phosphorylation of MEK1 by ERK +u4 2e-4 #dephosphorylation of the MEK1 feedback site (Thr292) + +## Interactions of PHP with Thr292p of MEK1 ------------------------------ +# +b5 4e-9 # PHP phosphatse binding to Thr292p of MEK1 +n5 2e-4 # dissociation of PHP phosphatase from Thr292p of MEK1 +u5 20 # dephosphorylation of MEK1 and MEK2 on the activation sites +# by MEK1-bound PHP phosphatase + +scalepEGFR scalepEGFR__FREE # scaling factor to make model pEGFR output comparable to published AU units phosphorylation +scalepERK scalepERK__FREE # scaling factor to make model pERK output comparable to published AU units phosphorylation +scalepSos1 scalepSos1__FREE # scaling factor to make model pSos1 output comparable to published AU units phosphorylation +end parameters + + +# ============================================================================== + + +begin molecule types + +## EGFR receptor subunit +# --------------------- +# +# lig -- indicates whether subunit is ligand-bound (B) or not (U) +# sos -- SOS1 binding domain +# dim -- subunit dimerization domain +# S -- indicates whether subunit has undergone phosphorylation +# (P) or not (U) due to subunit transphosphorylation +# +EGFR_wt(lig~U~B,sos,dim,S~U~P) + + +## SOS1 Guanine Exchange Factor +# ---------------------------- +# +# egfr -- EGFR receptor subunit binding domain. In reality this interaction +# is mediated by Grb2 adapter protein. For sake of simplicity, +# we assume the interaction to be direct. +# S -- indicates whether Sos1 has undergone feedback phosphorylation by ERK. +# Sos1 possesses at least 4 feedback phosphorlyation sites. For +# simplicity sake we model it as a single site. +# +SOS1_wt(egfr,S~U~P) + + +## RAS GTPase +# ---------- +# +# nt -- indicates whether RAS is bound to GTP (activated) or to GDP +# (inactivated). +# +RAS_wt(nt~GDP~GTP) + + +## RAF kinase +# ---------- +# +# S -- indicates whether RAS is active (A) or inactive (I). +# +RAF_wt(S~A~I) + + +## MEK1 kinase +# ----------- +# +# d -- MEK1 homo- and heterodimerization domain. +# S1 -- indicates whether MEK1 is unphosphorylated (Y), monophosphorylated +# (Yp) or double phosphorylated (Ypp). Double phosphorylation +# is considered activating. +# T292 -- represents Thr292 residue, which undergoes feedback phosphorylation +# (Yp) by ERK. When phosphorylated, it becomes a binding domain +# for PHP phosphatase. +# +MEK1_wt(d,T292~Y~Yp,S1~Y~Yp~Ypp) + + +## MEK2 kinase +# ----------- +# +# d -- MEK2 homo- and heterodimerization domain. +# S1 -- indicates whether MEK2 is unphosphorylated (Y), monophosphorylated +# (Yp) or double phosphorylated (Ypp). Double phosphorylation +# is considered activating. +# +MEK2_wt(d,S1~Y~Yp~Ypp) + + +## ERK +# ----- +# +# S1 -- indicates whether ERK is unphosphorylated (Y), monophosphorylated +# (Yp) or double phosphorylated (Ypp). Double phosphorylation +# is considered activating. +# +ERK_wt(S1~Y~Yp~Ypp) + + +## PHP (MEK phosphatase that binds to Thr292p) +# ----- +# +# mek -- MEK1 binding domain at MEK1-Thr292p. +# +PHP_wt(mek) + + +## Dummy species to simulate constant de novo synthesis reactions +# (Source) and removal/degradation (Sink). +# +Source_wt() +# +Sink_wt() + +counter() +end molecule types + + +# ============================================================================== + +begin species + +EGFR_wt(lig~U,sos,dim,S~U) EGFR_0 +SOS1_wt(egfr,S~U) SOS1_0 +RAS_wt(nt~GDP) RAS_0 +RAF_wt(S~I) RAF_0 +MEK1_wt(d,T292~Y,S1~Y) MEK1_0 +MEK1_wt(d,T292~Yp,S1~Y) MEK1_0_T292p +MEK2_wt(d,S1~Y) MEK2_0 +ERK_wt(S1~Y) ERK_0 +PHP_wt(mek) PHP_MEK_0 + +#Source_wt() 1 +#Sink_wt() 0 + +#counter() 0 +end species + + +# ============================================================================== + + +begin reaction rules + +### WT MODEL + +## Rule 1. Constitutive production and degradation of EGFR subunit. +# +#Source_wt() -> Source_wt() + EGFR_wt(lig~U,sos,dim,S~U) s1 +#EGFR_wt(sos,dim,S~U) -> Sink_wt() d1 + + +## Rule 2. Constitutive production and degradation of SOS1. +# +#Source_wt() -> Source_wt() + SOS1_wt(egfr,S~U) s2 +#SOS1_wt(egfr,S~U) -> Sink_wt() d2 + + +## Rule 3. MEK1 and MEK2 homo- and heterodimerization. +# +MEK1_wt(d) + MEK1_wt(d) <-> MEK1_wt(d!1).MEK1_wt(d!1) b2,n2 +MEK2_wt(d) + MEK2_wt(d) <-> MEK2_wt(d!1).MEK2_wt(d!1) b3,n3 +MEK2_wt(d) + MEK1_wt(d) <-> MEK2_wt(d!1).MEK1_wt(d!1) b4,n4 + + +## Rule 4. Binding of EGFR receptor subunit with the ligand. +# +EGFR_wt(lig~U,dim,sos,S~U) -> EGFR_wt(lig~B,dim,sos,S~U) c1 + + +## Rule 5. Dimerization of ligand-bound receptors. +# +EGFR_wt(lig~B,dim,sos,S~U) + EGFR_wt(lig~B,dim,sos,S~U) -> \ +EGFR_wt(lig~B,dim!1,sos,S~U).EGFR_wt(lig~B,dim!1,sos,S~U) c2 + + +## Rule 6. Transphosphorylation of dimerized EGFR receptor subunits. +# +EGFR_wt(lig~B,dim!+,sos,S~U) -> EGFR_wt(lig~B,dim!+,sos,S~P) t1 + + +## Rule 7. Binding of a dimerized transphosphorylated EGFR receptor +# subunit to Sos1. +# +EGFR_wt(lig~B,dim!+,sos,S~P) + SOS1_wt(egfr,S~U) <-> \ +EGFR_wt(lig~B,dim!+,sos!1,S~P).SOS1_wt(egfr!1,S~U) b1,n1 + + +## Rule 8. Degradation of EGFR dimers. +# +EGFR_wt(lig~B,dim!1,sos!?,S~P).EGFR_wt(lig~B,dim!1,sos!?,S~P) -> Sink_wt() d3 + + +## Rule 9. Activation of RAS by EGFR-Sos1 complex. +# +EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GDP) -> \ +EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GTP) a1 + + +## Rule 10. Deactivation of RAS. +# +RAS_wt(nt~GTP) -> RAS_wt(nt~GDP) i1 + + +## Rule 11. Activation of Raf by activated RAS. +# +RAS_wt(nt~GTP) + RAF_wt(S~I) -> \ +RAS_wt(nt~GTP) + RAF_wt(S~A) a2 + + +## Rule 12. Raf Deactivation. +# +RAF_wt(S~A) -> RAF_wt(S~I) i2 + + +## Rule 13. Phosphorylation of MEK1 on activating sites by RAF. +# +MEK1_wt(S1~Y) + RAF_wt(S~A) -> \ +MEK1_wt(S1~Yp) + RAF_wt(S~A) 2*p1 +# +MEK1_wt(S1~Yp) + RAF_wt(S~A) -> \ +MEK1_wt(S1~Ypp) + RAF_wt(S~A) p1 + + +## Rule 14. Dephosphorylation of MEK1 on activating sites. +# +MEK1_wt(S1~Ypp) -> MEK1_wt(S1~Yp) 2*u1 +# +MEK1_wt(S1~Yp) -> MEK1_wt(S1~Y) u1 + + +## Rule 15. Phosphorylation of MEK2 on activating sites by RAF. +# +MEK2_wt(S1~Y) + RAF_wt(S~A) -> \ +MEK2_wt(S1~Yp) + RAF_wt(S~A) 2*p1 +# +MEK2_wt(S1~Yp) + RAF_wt(S~A) -> \ +MEK2_wt(S1~Ypp) + RAF_wt(S~A) p1 + + +## Rule 16. Dephosphorylation of MEK2 on activating sites. +# +MEK2_wt(S1~Ypp) -> MEK2_wt(S1~Yp) 2*u1 +# +MEK2_wt(S1~Yp) -> MEK2_wt(S1~Y) u1 + + +## Rule 17. Activation of ERK by MEK1. +# +ERK_wt(S1~Y) + MEK1_wt(S1~Ypp) -> \ +ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) 2*p2a +# +ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) -> \ +ERK_wt(S1~Ypp) + MEK1_wt(S1~Ypp) p2a + + +## Rule 18. Activation of ERK by MEK2. +# +ERK_wt(S1~Y) + MEK2_wt(S1~Ypp) -> \ +ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) 2*p2b +# +ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) -> \ +ERK_wt(S1~Ypp) + MEK2_wt(S1~Ypp) p2b + + +## Rule 19. Dephosphorylation of ERK on activating sites. +# +ERK_wt(S1~Ypp) -> ERK_wt(S1~Yp) 2*u2 +# +ERK_wt(S1~Yp) -> ERK_wt(S1~Y) u2 + + +### NEGATIVE FEEDBACK BY ERK + +## Rule 20. Feedback phosphorylation of Sos1 by ERK. +# +SOS1_wt(egfr,S~U) + ERK_wt(S1~Ypp) -> \ +SOS1_wt(egfr,S~P) + ERK_wt(S1~Ypp) p3 + +## Rule 21. Dephosphorylation of the ERK-mediated negative feedback +# site of Sos1. +# +SOS1_wt(egfr,S~P) -> SOS1_wt(egfr,S~U) u3 + + +## Rule 22. Feedback Phosphorylation of MEK1 by ERK on Thr292. +# +MEK1_wt(T292~Y) + ERK_wt(S1~Ypp) -> \ +MEK1_wt(T292~Yp)+ ERK_wt(S1~Ypp) p4 + + +## Rule 23. Dephosphorylation of MEK1 on the negative feedback site (Thr292). +# +MEK1_wt(T292~Yp) -> MEK1_wt(T292~Y) u4 + + +## Rule 24. PHP Attachment to phosphorylated Thr292 of MEK1. +# +MEK1_wt(T292~Yp) + PHP_wt(mek) <-> \ +MEK1_wt(T292~Yp!1).PHP_wt(mek!1) b5,n5 + + +## Rule 25. Dephosphorylation of MEK1 on activating sites by the bound PHP. +# +MEK1_wt(T292~Yp!1,S1~Ypp).PHP_wt(mek!1) -> \ +MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) 2*u5 +# +MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) -> \ +MEK1_wt(T292~Yp!1,S1~Y).PHP_wt(mek!1) u5 + + +## Rule 26. Dephosphorylation of the activating sites of MEK1 and MEK2 +# in the dimer with PHP-bound MEK1. +# +MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Ypp) -> \ +MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) 2*u5 +# +MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) -> \ +MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Y) u5 +# +MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Ypp) -> \ +MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) 2*u5 +# +MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) -> \ +MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Y) u5 + +#0->counter() 1 +end reaction rules + + +# ============================================================================== + + +begin observables + +# ## Activity -------------------------------------------------------------- +# # +# Species EGFR_Lig_wt EGFR_wt(lig~B) +# Species EGFR_SOS_complex_wt EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) +# Species RAS_active_WT RAS_wt(nt~GTP) +# Species RAF_active_WT RAF_wt(S~A) +# Species MEK1_active_WT MEK1_wt(S1~Ypp) +# Species MEK2_active_WT MEK2_wt(S1~Ypp) +# Species MEK_total_active_WT MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) +# Species ERK_active_WT ERK_wt(S1~Ypp) +# +# +# ## Negative feedback ----------------------------------------------------- +# Species SOS1_P_wt SOS1_wt(egfr,S~P) +# Species MEK1_T292p_wt MEK1_wt(T292~Yp!?) +# Species MEK1_Phosphatase_Complex_wt MEK1_wt(T292~Yp!+) +# +# +# ## Species levels -------------------------------------------------------- +# # +# Species EGFR_tot_wt EGFR_wt() +# Species EGFR_mono_tot_wt EGFR_wt(dim) +# Species EGFR_dim_tot_wt EGFR_wt(dim!1).EGFR_wt(dim!1) +# Species EGFR_p_wt EGFR_wt(S~P) +# Species Sos1_tot_wt SOS1_wt() +# Species RAS_tot_wt RAS_wt() +# Species RAF_tot_wt RAF_wt() +#Species MEK1_tot_wt MEK1_wt() +#Species MEK2_tot_wt MEK2_wt() +# Species ERK_tot ERK_wt() +# +# +# ## Dimer levels ---------------------------------------------------------- +# # +# Molecules MEK1_homo_dim_wt MEK1_wt(d!1).MEK1_wt(d!1) +# Molecules MEK2_homo_dim_wt MEK2_wt(d!1).MEK2_wt(d!1) +# Molecules MEK_hetero_dim_wt MEK1_wt(d!1).MEK2_wt(d!1) + + +## Publication observables ----------------------------------------------- +# +Species pSos1_wt SOS1_wt(S~P) +Species pEGFR_wt EGFR_wt(S~P) +Species pERK1_2_wt ERK_wt(S1~Ypp) +# +Species MEK1_pRDS_wt MEK1_wt(S1~Ypp) +Species MEK2_pRDS_wt MEK2_wt(S1~Ypp) +Species MEK_pRDS_WT MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) + +end observables + +begin functions + +scaled_pEGFR()=pEGFR_wt*scalepEGFR #5.2709948217252634e-05 +scaled_pERK()=pERK1_2_wt*scalepERK #3.891540224026214e-06 +scaled_pSOS1()=pSos1_wt*scalepSos1 #0.00020032075222804925 + +end functions +end model +# ============================================================================== + + + + + + +# ============================================================================== +# EOF + +begin actions + +#generate_network({overwrite=>1}); +#writeMfile(); + + + +setParameter("c1",0.02); +simulate({suffix=>"WT",method=>"ode",t_end=>3600,n_steps=>12,print_functions=>1}); + + +end actions diff --git a/Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_KO.bngl b/Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_KO.bngl new file mode 100644 index 00000000..d99cbe60 --- /dev/null +++ b/Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_KO.bngl @@ -0,0 +1,529 @@ +begin model +# ============================================================================== +# # +# # +# MEK1-MEK2 Heterodimerization-based ERK Cascade Model # +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # +# # +# The model includes the negative feedback from ERK to MEK1 and its mediation # +# to MEK2 via heterodimerization. The code describes the events taking place # +# in WT MEFs. # +# # +# This code features the article entitled: # +# # +# "MEK1 and MEK2 differentially control the duration and amplitude # +# of the ERK cascade response" # +# # +# by Pawel Kocieniewski and Tomasz Lipniacki (Physical Biology, 2013). # +# Additional work with PyBNF and parameterization by Miller et al. (2025). # +# # +# ...:::*:::... # +# # +# The experimental perturbations described in the paper are simulated as # +# follows: # +# # +# a) MEK1 knock-out -- setting MEK1 content to zero (MEK1_0 = 0); # +# # +# b) MEK1 dimerization ablation (N78G mutant) -- disabling MEK1 homo- and # +# dimerization (set constants b2 = 0 and b4 = 0); # +# # +# c) MEK1 negative feedback ablation (T292A mutant) -- disabling MEK1 # +# Thr292 phosphorylation rule (set constant p4 = 0); # +# # +# d) MEK1 constitutive MEK1 repression (T292D mutant): # +# # +# i) -- setting total intial MEK1 phosphorylated at Thr292 (replace # +# MEK1(d,T292~Y,S1~Y) by MEK1(d,T292~P,S1~Y), # +# # +# ii) -- disabling MEK1 Thr292p dephosphorylation (set constant u4 = 0), # +# # +# iii) -- attenuate MEK1-Thr292p/PHP binding rate to reflect the lower # +# affinity of phosphomimetic substitution with respect to Thr 292P # +# (set b5 = b5/N, N = 3). # +# # +# ...:::*:::... # +# # +# Last changes: # +# # +# * Ely F. Miller Fri June 27 12:37:29 PST 2025 # +# # +# ============================================================================== + + +begin parameters + + ## General -------------------------------------------------------------- + # + MEK1_fraction 0.67 # MEK1 fraction of total MEKs content + X 5 # MEK2-to-MEK1 kinase activity ratio + + + ## Concentrations of species --------------------------------------------- + + EGFR_0 4.999382777809e+05 # initial EGFR level, resting cell steady state + #EGFR_steady 4.999382777809e+05 + SOS1_0 1.999753111124e+05 # initial Sos1 level, resting cell steady state + #SOS1_steady 1.999753111124e+05 + RAS_0 500000 # initial RAS level, constant + RAF_0 500000 # initial RAF level, constant + MEK_tot_0 200000 # initial MEK1 and MEK2 total level, constant + MEK1_0 0 #MEK_tot_0*MEK1_fraction # initial MEK1 level, constant + MEK1_0_T292p 0 # initial MEK1-Thr292p level + MEK2_0 MEK_tot_0*(1-MEK1_fraction) # initial MEK2 level, constant + ERK_0 3000000 # initial combined ERK1 and ERK2 level, constant + PHP_MEK_0 3000000 # initial PHP level, constant + + +## Assembly and dynamics of the EGFR receptor complexes ------------------ +# +#s1 2.5 # EGFR receptor subunit constitutive production +#d1 5e-6 # EGFR receptor subunit constitutive degradation +#s2 1 # Sos1 constitutive production +#d2 5e-6 # Sos1 constitutive degradation +c1 0 # formation of EGFR receptor subunit/ligand complex -- SIGNAL +#c1_init c1_init__FREE #0 # c1 value prior to stimulation with ligand +c1_L c1_L__FREE #0.02 # c1 value after stimulation with ligand +c2 c2__FREE #2e-7 # EGFR receptor dimerization due ligand +t1 t1__FREE #100 # EGFR subunits transphosphorylation in EGFR dimer +d3 d3__FREE #1e-3 # degradation of ligand-bound dimer complexes +b1 b1__FREE #4e-8 # association of phosphorylated receptor EGFR subunits with Sos1 +n1 n1__FREE #2e-3 # disassociation of EGFR receptor subunits from Sos1 + + +## MEK1 and MEK2 homo- and heterodimerization ---------------------------- +# +b2 b2__FREE #1e-5 # MEK1 homodimer formation +n2 n2__FREE #1e-3 # MEK1 dimer dissociation +b3 b3__FREE #1e-5 # MEK2 homodimer formation +n3 n3__FREE #3e-2 # MEK2 homodimer dissociation +b4 b4__FREE #1e-5 #MEK1 and MEK2 heterodimer formation +n4 n4__FREE #1e-3 #MEK1 and MEK2 heterodimer dissociation + + +## Signal transduction through RAF, MEK1/2, and ERK ---------------------- +# +a1 a1__FREE #1.5e-7 # activation of Ras by EGFR-Sos1 complex (exchange of GDP for GTP) +i1 i1__FREE #2e-2 # inactivation of RAS (hydrolysis of bound GTP to GDP) +a2 a2__FREE #4e-8 # activation of RAF by RAS-GTP +i2 i2__FREE #1e-2 # inactivation of RAF +p1 p1__FREE #1.5e-7 # phosphorylation of MEK1 and MEK2 on the activation sites by RAF +u1 u1__FREE #5e-3 # dephosphorylation of MEK1 and MEK2 on the activation sites +p2a p2a__FREE #1e-6 # phosphorylation of ERK on the activation sites by MEK1 +p2b p2b__FREE*5 #X*p2a # phosphorylation of ERK on the activation sites by MEK2 +u2 u2__FREE #2e-2 # dephosphorylation of ERK on the activation sites + + +## Phosphorylation and dephosphorylation --------------------------------- +## of feedback sites of Sos1 and MEK1 (Thr292) +# +p3 p3__FREE #2e-9 #feedback phosphorylation of Sos1 by active ERK +u3 u3__FREE #1e-3 #dephosphorylation of the Sos1 feedback site +p4 p4__FREE #1.2e-9 #feedback phosphorylation of MEK1 by ERK +u4 u4__FREE #2e-4 #dephosphorylation of the MEK1 feedback site (Thr292) + +## Interactions of PHP with Thr292p of MEK1 ------------------------------ +# +b5 b5__FREE #4e-9 # PHP phosphatse binding to Thr292p of MEK1 +n5 n5__FREE #2e-4 # dissociation of PHP phosphatase from Thr292p of MEK1 +u5 u5__FREE #20 # dephosphorylation of MEK1 and MEK2 on the activation sites +# by MEK1-bound PHP phosphatase + +end parameters + + +# ============================================================================== + + +begin molecule types + + ## EGFR receptor subunit + # --------------------- + # + # lig -- indicates whether subunit is ligand-bound (B) or not (U) + # sos -- SOS1 binding domain + # dim -- subunit dimerization domain + # S -- indicates whether subunit has undergone phosphorylation + # (P) or not (U) due to subunit transphosphorylation + # + EGFR_wt(lig~U~B,sos,dim,S~U~P) + + + ## SOS1 Guanine Exchange Factor + # ---------------------------- + # + # egfr -- EGFR receptor subunit binding domain. In reality this interaction + # is mediated by Grb2 adapter protein. For sake of simplicity, + # we assume the interaction to be direct. + # S -- indicates whether Sos1 has undergone feedback phosphorylation by ERK. + # Sos1 possesses at least 4 feedback phosphorlyation sites. For + # simplicity sake we model it as a single site. + # + SOS1_wt(egfr,S~U~P) + + + ## RAS GTPase + # ---------- + # + # nt -- indicates whether RAS is bound to GTP (activated) or to GDP + # (inactivated). + # + RAS_wt(nt~GDP~GTP) + + + ## RAF kinase + # ---------- + # + # S -- indicates whether RAS is active (A) or inactive (I). + # + RAF_wt(S~A~I) + + + ## MEK1 kinase + # ----------- + # + # d -- MEK1 homo- and heterodimerization domain. + # S1 -- indicates whether MEK1 is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # T292 -- represents Thr292 residue, which undergoes feedback phosphorylation + # (Yp) by ERK. When phosphorylated, it becomes a binding domain + # for PHP phosphatase. + # + MEK1_wt(d,T292~Y~Yp,S1~Y~Yp~Ypp) + + + ## MEK2 kinase + # ----------- + # + # d -- MEK2 homo- and heterodimerization domain. + # S1 -- indicates whether MEK2 is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # + MEK2_wt(d,S1~Y~Yp~Ypp) + + + ## ERK + # ----- + # + # S1 -- indicates whether ERK is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # + ERK_wt(S1~Y~Yp~Ypp) + + + ## PHP (MEK phosphatase that binds to Thr292p) + # ----- + # + # mek -- MEK1 binding domain at MEK1-Thr292p. + # + PHP_wt(mek) + + + ## Dummy species to simulate constant de novo synthesis reactions + # (Source) and removal/degradation (Sink). + # + Source_wt() + # + Sink_wt() + +end molecule types + + +# ============================================================================== + +begin species + + EGFR_wt(lig~U,sos,dim,S~U) EGFR_0 + SOS1_wt(egfr,S~U) SOS1_0 + RAS_wt(nt~GDP) RAS_0 + RAF_wt(S~I) RAF_0 + MEK1_wt(d,T292~Y,S1~Y) MEK1_0 + MEK1_wt(d,T292~Yp,S1~Y) MEK1_0_T292p + MEK2_wt(d,S1~Y) MEK2_0 + ERK_wt(S1~Y) ERK_0 + PHP_wt(mek) PHP_MEK_0 + + #Source_wt() 1 + #Sink_wt() 0 + +end species + + +# ============================================================================== + + +begin reaction rules + +### WT MODEL + + ## Rule 1. Constitutive production and degradation of EGFR subunit. + # + #Source_wt() -> Source_wt() + EGFR_wt(lig~U,sos,dim,S~U) s1 + #EGFR_wt(sos,dim,S~U) -> Sink_wt() d1 + + + ## Rule 2. Constitutive production and degradation of SOS1. + # + #Source_wt() -> Source_wt() + SOS1_wt(egfr,S~U) s2 + #SOS1_wt(egfr,S~U) -> Sink_wt() d2 + + + ## Rule 3. MEK1 and MEK2 homo- and heterodimerization. + # + MEK1_wt(d) + MEK1_wt(d) <-> MEK1_wt(d!1).MEK1_wt(d!1) b2,n2 + MEK2_wt(d) + MEK2_wt(d) <-> MEK2_wt(d!1).MEK2_wt(d!1) b3,n3 + MEK2_wt(d) + MEK1_wt(d) <-> MEK2_wt(d!1).MEK1_wt(d!1) b4,n4 + + + ## Rule 4. Binding of EGFR receptor subunit with the ligand. + # + EGFR_wt(lig~U,dim,sos,S~U) -> EGFR_wt(lig~B,dim,sos,S~U) c1 + + + ## Rule 5. Dimerization of ligand-bound receptors. + # + EGFR_wt(lig~B,dim,sos,S~U) + EGFR_wt(lig~B,dim,sos,S~U) -> \ + EGFR_wt(lig~B,dim!1,sos,S~U).EGFR_wt(lig~B,dim!1,sos,S~U) c2 + + + ## Rule 6. Transphosphorylation of dimerized EGFR receptor subunits. + # + EGFR_wt(lig~B,dim!+,sos,S~U) -> EGFR_wt(lig~B,dim!+,sos,S~P) t1 + + + ## Rule 7. Binding of a dimerized transphosphorylated EGFR receptor + # subunit to Sos1. + # + EGFR_wt(lig~B,dim!+,sos,S~P) + SOS1_wt(egfr,S~U) <-> \ + EGFR_wt(lig~B,dim!+,sos!1,S~P).SOS1_wt(egfr!1,S~U) b1,n1 + + + ## Rule 8. Degradation of EGFR dimers. + # + EGFR_wt(lig~B,dim!1,sos!?,S~P).EGFR_wt(lig~B,dim!1,sos!?,S~P) -> Sink_wt() d3 + + + ## Rule 9. Activation of RAS by EGFR-Sos1 complex. + # + EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GDP) -> \ + EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GTP) a1 + + + ## Rule 10. Deactivation of RAS. + # + RAS_wt(nt~GTP) -> RAS_wt(nt~GDP) i1 + + + ## Rule 11. Activation of Raf by activated RAS. + # + RAS_wt(nt~GTP) + RAF_wt(S~I) -> \ + RAS_wt(nt~GTP) + RAF_wt(S~A) a2 + + + ## Rule 12. Raf Deactivation. + # + RAF_wt(S~A) -> RAF_wt(S~I) i2 + + + ## Rule 13. Phosphorylation of MEK1 on activating sites by RAF. + # + MEK1_wt(S1~Y) + RAF_wt(S~A) -> \ + MEK1_wt(S1~Yp) + RAF_wt(S~A) 2*p1 + # + MEK1_wt(S1~Yp) + RAF_wt(S~A) -> \ + MEK1_wt(S1~Ypp) + RAF_wt(S~A) p1 + + + ## Rule 14. Dephosphorylation of MEK1 on activating sites. + # + MEK1_wt(S1~Ypp) -> MEK1_wt(S1~Yp) 2*u1 + # + MEK1_wt(S1~Yp) -> MEK1_wt(S1~Y) u1 + + + ## Rule 15. Phosphorylation of MEK2 on activating sites by RAF. + # + MEK2_wt(S1~Y) + RAF_wt(S~A) -> \ + MEK2_wt(S1~Yp) + RAF_wt(S~A) 2*p1 + # + MEK2_wt(S1~Yp) + RAF_wt(S~A) -> \ + MEK2_wt(S1~Ypp) + RAF_wt(S~A) p1 + + + ## Rule 16. Dephosphorylation of MEK2 on activating sites. + # + MEK2_wt(S1~Ypp) -> MEK2_wt(S1~Yp) 2*u1 + # + MEK2_wt(S1~Yp) -> MEK2_wt(S1~Y) u1 + + + ## Rule 17. Activation of ERK by MEK1. + # + ERK_wt(S1~Y) + MEK1_wt(S1~Ypp) -> \ + ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) 2*p2a + # + ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) -> \ + ERK_wt(S1~Ypp) + MEK1_wt(S1~Ypp) p2a + + + ## Rule 18. Activation of ERK by MEK2. + # + ERK_wt(S1~Y) + MEK2_wt(S1~Ypp) -> \ + ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) 2*p2b + # + ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) -> \ + ERK_wt(S1~Ypp) + MEK2_wt(S1~Ypp) p2b + + + ## Rule 19. Dephosphorylation of ERK on activating sites. + # + ERK_wt(S1~Ypp) -> ERK_wt(S1~Yp) 2*u2 + # + ERK_wt(S1~Yp) -> ERK_wt(S1~Y) u2 + + +### NEGATIVE FEEDBACK BY ERK + + ## Rule 20. Feedback phosphorylation of Sos1 by ERK. + # + SOS1_wt(egfr,S~U) + ERK_wt(S1~Ypp) -> \ + SOS1_wt(egfr,S~P) + ERK_wt(S1~Ypp) p3 + + ## Rule 21. Dephosphorylation of the ERK-mediated negative feedback + # site of Sos1. + # + SOS1_wt(egfr,S~P) -> SOS1_wt(egfr,S~U) u3 + + + ## Rule 22. Feedback Phosphorylation of MEK1 by ERK on Thr292. + # + MEK1_wt(T292~Y) + ERK_wt(S1~Ypp) -> \ + MEK1_wt(T292~Yp)+ ERK_wt(S1~Ypp) p4 + + + ## Rule 23. Dephosphorylation of MEK1 on the negative feedback site (Thr292). + # + MEK1_wt(T292~Yp) -> MEK1_wt(T292~Y) u4 + + + ## Rule 24. PHP Attachment to phosphorylated Thr292 of MEK1. + # + MEK1_wt(T292~Yp) + PHP_wt(mek) <-> \ + MEK1_wt(T292~Yp!1).PHP_wt(mek!1) b5,n5 + + + ## Rule 25. Dephosphorylation of MEK1 on activating sites by the bound PHP. + # + MEK1_wt(T292~Yp!1,S1~Ypp).PHP_wt(mek!1) -> \ + MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) 2*u5 + # + MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) -> \ + MEK1_wt(T292~Yp!1,S1~Y).PHP_wt(mek!1) u5 + + + ## Rule 26. Dephosphorylation of the activating sites of MEK1 and MEK2 + # in the dimer with PHP-bound MEK1. + # + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Ypp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) 2*u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Y) u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Ypp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) 2*u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Y) u5 + +end reaction rules + + +# ============================================================================== + + +begin observables + +# ## Activity -------------------------------------------------------------- +# # +# Species EGFR_Lig_wt EGFR_wt(lig~B) +# Species EGFR_SOS_complex_wt EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) +# Species RAS_active_WT RAS_wt(nt~GTP) +# Species RAF_active_WT RAF_wt(S~A) +# Species MEK1_active_WT MEK1_wt(S1~Ypp) +# Species MEK2_active_WT MEK2_wt(S1~Ypp) +# Species MEK_total_active_WT MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) +# Species ERK_active_WT ERK_wt(S1~Ypp) +# +# +# ## Negative feedback ----------------------------------------------------- +# Species SOS1_P_wt SOS1_wt(egfr,S~P) +# Species MEK1_T292p_wt MEK1_wt(T292~Yp!?) +# Species MEK1_Phosphatase_Complex_wt MEK1_wt(T292~Yp!+) +# +# +# ## Species levels -------------------------------------------------------- +# # +# Species EGFR_tot_wt EGFR_wt() +# Species EGFR_mono_tot_wt EGFR_wt(dim) +# Species EGFR_dim_tot_wt EGFR_wt(dim!1).EGFR_wt(dim!1) +# Species EGFR_p_wt EGFR_wt(S~P) +# Species Sos1_tot_wt SOS1_wt() +# Species RAS_tot_wt RAS_wt() +# Species RAF_tot_wt RAF_wt() +# Species MEK1_tot_wt MEK1_wt() +# Species MEK2_tot_wt MEK2_wt() +# Species ERK_tot ERK_wt() +# +# +# ## Dimer levels ---------------------------------------------------------- +# # +# Molecules MEK1_homo_dim_wt MEK1_wt(d!1).MEK1_wt(d!1) +# Molecules MEK2_homo_dim_wt MEK2_wt(d!1).MEK2_wt(d!1) +# Molecules MEK_hetero_dim_wt MEK1_wt(d!1).MEK2_wt(d!1) + + + ## Publication observables ----------------------------------------------- + # + Species pSos1_wt SOS1_wt(S~P) + Species pEGFR_wt EGFR_wt(S~P) + Species pERK1_2_wt ERK_wt(S1~Ypp) + # + Species MEK1_pRDS_wt MEK1_wt(S1~Ypp) + Species MEK2_pRDS_wt MEK2_wt(S1~Ypp) + Species MEK_pRDS_KO MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) + +end observables + +end model + +# ============================================================================== + + +#generate_network({overwrite=>1}); +#writeMfile(); + + +setParameter("c1",0.02); +simulate({suffix=>"KO",method=>"ode",t_end=>3600,n_steps=>3600}); + +# ============================================================================== +# EOF + + + +# EOF + + +# EOF + + +Begin actions + +generate_network({overwrite=>1}); +simulate({suffix=>"KO",method=>"ode",t_end=>3600,n_steps=>3600}); + +writeXML() +End actions diff --git a/Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_N78G.bngl b/Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_N78G.bngl new file mode 100644 index 00000000..eb43a63a --- /dev/null +++ b/Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_N78G.bngl @@ -0,0 +1,514 @@ +begin model +# ============================================================================== +# # +# # +# MEK1-MEK2 Heterodimerization-based ERK Cascade Model # +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # +# # +# The model includes the negative feedback from ERK to MEK1 and its mediation # +# to MEK2 via heterodimerization. The code describes the events taking place # +# in WT MEFs. # +# # +# This code features the article entitled: # +# # +# "MEK1 and MEK2 differentially control the duration and amplitude # +# of the ERK cascade response" # +# # +# by Pawel Kocieniewski and Tomasz Lipniacki (Physical Biology, 2013). # +# Additional work with PyBNF and parameterization by Miller et al. (2025). # +# # +# ...:::*:::... # +# # +# The experimental perturbations described in the paper are simulated as # +# follows: # +# # +# a) MEK1 knock-out -- setting MEK1 content to zero (MEK1_0 = 0); # +# # +# b) MEK1 dimerization ablation (N78G mutant) -- disabling MEK1 homo- and # +# dimerization (set constants b2 = 0 and b4 = 0); # +# # +# c) MEK1 negative feedback ablation (T292A mutant) -- disabling MEK1 # +# Thr292 phosphorylation rule (set constant p4 = 0); # +# # +# d) MEK1 constitutive MEK1 repression (T292D mutant): # +# # +# i) -- setting total intial MEK1 phosphorylated at Thr292 (replace # +# MEK1(d,T292~Y,S1~Y) by MEK1(d,T292~P,S1~Y), # +# # +# ii) -- disabling MEK1 Thr292p dephosphorylation (set constant u4 = 0), # +# # +# iii) -- attenuate MEK1-Thr292p/PHP binding rate to reflect the lower # +# affinity of phosphomimetic substitution with respect to Thr 292P # +# (set b5 = b5/N, N = 3). # +# # +# ...:::*:::... # +# # +# Last changes: # +# # +# * Ely F. Miller Fri June 27 12:37:29 PST 2025 # +# # +# ============================================================================== + + +begin parameters + + ## General -------------------------------------------------------------- + # + MEK1_fraction 0.67 # MEK1 fraction of total MEKs content + X 5 # MEK2-to-MEK1 kinase activity ratio + + ## Concentrations of species --------------------------------------------- + # + EGFR_0 4.999382777809e+05 # initial EGFR level, resting cell steady state + #EGFR_steady 4.999382777809e+05 + SOS1_0 1.999753111124e+05 # initial Sos1 level, resting cell steady state + #SOS1_steady 1.999753111124e+05 + RAS_0 500000 # initial RAS level, constant + RAF_0 500000 # initial RAF level, constant + MEK_tot_0 200000 # initial MEK1 and MEK2 total level, constant + MEK1_0 MEK_tot_0*MEK1_fraction # initial MEK1 level, constant + MEK1_0_T292p 0 # initial MEK1-Thr292p level + MEK2_0 MEK_tot_0*(1-MEK1_fraction) # initial MEK2 level, constant + ERK_0 3000000 # initial combined ERK1 and ERK2 level, constant + PHP_MEK_0 3000000 # initial PHP level, constant + + +## Assembly and dynamics of the EGFR receptor complexes ------------------ +# +#s1 2.5 # EGFR receptor subunit constitutive production +#d1 5e-6 # EGFR receptor subunit constitutive degradation +#s2 1 # Sos1 constitutive production +#d2 5e-6 # Sos1 constitutive degradation +c1 0 # formation of EGFR receptor subunit/ligand complex -- SIGNAL +#c1_init c1_init__FREE #0 # c1 value prior to stimulation with ligand +c1_L c1_L__FREE #0.02 # c1 value after stimulation with ligand +c2 c2__FREE #2e-7 # EGFR receptor dimerization due ligand +t1 t1__FREE #100 # EGFR subunits transphosphorylation in EGFR dimer +d3 d3__FREE #1e-3 # degradation of ligand-bound dimer complexes +b1 b1__FREE #4e-8 # association of phosphorylated receptor EGFR subunits with Sos1 +n1 n1__FREE #2e-3 # disassociation of EGFR receptor subunits from Sos1 + + ## MEK1 and MEK2 homo- and heterodimerization ---------------------------- + # + b2 0 # MEK1 homodimer formation +n2 n2__FREE #1e-3 # MEK1 dimer dissociation +b3 b3__FREE #1e-5 # MEK2 homodimer formation +n3 n3__FREE #3e-2 # MEK2 homodimer dissociation + b4 0 # MEK1 and MEK2 heterodimer formation +n4 n4__FREE #1e-3 #MEK1 and MEK2 heterodimer dissociation + + +## Signal transduction through RAF, MEK1/2, and ERK ---------------------- +# +a1 a1__FREE #1.5e-7 # activation of Ras by EGFR-Sos1 complex (exchange of GDP for GTP) +i1 i1__FREE #2e-2 # inactivation of RAS (hydrolysis of bound GTP to GDP) +a2 a2__FREE #4e-8 # activation of RAF by RAS-GTP +i2 i2__FREE #1e-2 # inactivation of RAF +p1 p1__FREE #1.5e-7 # phosphorylation of MEK1 and MEK2 on the activation sites by RAF +u1 u1__FREE #5e-3 # dephosphorylation of MEK1 and MEK2 on the activation sites +p2a p2a__FREE #1e-6 # phosphorylation of ERK on the activation sites by MEK1 +p2b p2b__FREE*5 #X*p2a # phosphorylation of ERK on the activation sites by MEK2 +u2 u2__FREE #2e-2 # dephosphorylation of ERK on the activation sites + + +## Phosphorylation and dephosphorylation --------------------------------- +## of feedback sites of Sos1 and MEK1 (Thr292) +# +p3 p3__FREE #2e-9 #feedback phosphorylation of Sos1 by active ERK +u3 u3__FREE #1e-3 #dephosphorylation of the Sos1 feedback site +p4 p4__FREE #1.2e-9 #feedback phosphorylation of MEK1 by ERK +u4 u4__FREE #2e-4 #dephosphorylation of the MEK1 feedback site (Thr292) + +## Interactions of PHP with Thr292p of MEK1 ------------------------------ +# +b5 b5__FREE #4e-9 # PHP phosphatse binding to Thr292p of MEK1 +n5 n5__FREE #2e-4 # dissociation of PHP phosphatase from Thr292p of MEK1 +u5 u5__FREE #20 # dephosphorylation of MEK1 and MEK2 on the activation sites +# by MEK1-bound PHP phosphatase +end parameters + + +# ============================================================================== + + +begin molecule types + + ## EGFR receptor subunit + # --------------------- + # + # lig -- indicates whether subunit is ligand-bound (B) or not (U) + # sos -- SOS1 binding domain + # dim -- subunit dimerization domain + # S -- indicates whether subunit has undergone phosphorylation + # (P) or not (U) due to subunit transphosphorylation + # + EGFR_wt(lig~U~B,sos,dim,S~U~P) + + + ## SOS1 Guanine Exchange Factor + # ---------------------------- + # + # egfr -- EGFR receptor subunit binding domain. In reality this interaction + # is mediated by Grb2 adapter protein. For sake of simplicity, + # we assume the interaction to be direct. + # S -- indicates whether Sos1 has undergone feedback phosphorylation by ERK. + # Sos1 possesses at least 4 feedback phosphorlyation sites. For + # simplicity sake we model it as a single site. + # + SOS1_wt(egfr,S~U~P) + + + ## RAS GTPase + # ---------- + # + # nt -- indicates whether RAS is bound to GTP (activated) or to GDP + # (inactivated). + # + RAS_wt(nt~GDP~GTP) + + + ## RAF kinase + # ---------- + # + # S -- indicates whether RAS is active (A) or inactive (I). + # + RAF_wt(S~A~I) + + + ## MEK1 kinase + # ----------- + # + # d -- MEK1 homo- and heterodimerization domain. + # S1 -- indicates whether MEK1 is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # T292 -- represents Thr292 residue, which undergoes feedback phosphorylation + # (Yp) by ERK. When phosphorylated, it becomes a binding domain + # for PHP phosphatase. + # + MEK1_wt(d,T292~Y~Yp,S1~Y~Yp~Ypp) + + + ## MEK2 kinase + # ----------- + # + # d -- MEK2 homo- and heterodimerization domain. + # S1 -- indicates whether MEK2 is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # + MEK2_wt(d,S1~Y~Yp~Ypp) + + + ## ERK + # ----- + # + # S1 -- indicates whether ERK is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # + ERK_wt(S1~Y~Yp~Ypp) + + + ## PHP (MEK phosphatase that binds to Thr292p) + # ----- + # + # mek -- MEK1 binding domain at MEK1-Thr292p. + # + PHP_wt(mek) + + + ## Dummy species to simulate constant de novo synthesis reactions + # (Source) and removal/degradation (Sink). + # + Source_wt() + # + Sink_wt() + +end molecule types + + +# ============================================================================== + +begin species + + EGFR_wt(lig~U,sos,dim,S~U) EGFR_0 + SOS1_wt(egfr,S~U) SOS1_0 + RAS_wt(nt~GDP) RAS_0 + RAF_wt(S~I) RAF_0 + MEK1_wt(d,T292~Y,S1~Y) MEK1_0 + MEK1_wt(d,T292~Yp,S1~Y) MEK1_0_T292p + MEK2_wt(d,S1~Y) MEK2_0 + ERK_wt(S1~Y) ERK_0 + PHP_wt(mek) PHP_MEK_0 + + #Source_wt() 1 + #Sink_wt() 0 + +end species + + +# ============================================================================== + + +begin reaction rules + +### WT MODEL + + ## Rule 1. Constitutive production and degradation of EGFR subunit. + # + #Source_wt() -> Source_wt() + EGFR_wt(lig~U,sos,dim,S~U) s1 + #EGFR_wt(sos,dim,S~U) -> Sink_wt() d1 + + + ## Rule 2. Constitutive production and degradation of SOS1. + # + #Source_wt() -> Source_wt() + SOS1_wt(egfr,S~U) s2 + #SOS1_wt(egfr,S~U) -> Sink_wt() d2 + + + ## Rule 3. MEK1 and MEK2 homo- and heterodimerization. + # + MEK1_wt(d) + MEK1_wt(d) <-> MEK1_wt(d!1).MEK1_wt(d!1) b2,n2 + MEK2_wt(d) + MEK2_wt(d) <-> MEK2_wt(d!1).MEK2_wt(d!1) b3,n3 + MEK2_wt(d) + MEK1_wt(d) <-> MEK2_wt(d!1).MEK1_wt(d!1) b4,n4 + + + ## Rule 4. Binding of EGFR receptor subunit with the ligand. + # + EGFR_wt(lig~U,dim,sos,S~U) -> EGFR_wt(lig~B,dim,sos,S~U) c1 + + + ## Rule 5. Dimerization of ligand-bound receptors. + # + EGFR_wt(lig~B,dim,sos,S~U) + EGFR_wt(lig~B,dim,sos,S~U) -> \ + EGFR_wt(lig~B,dim!1,sos,S~U).EGFR_wt(lig~B,dim!1,sos,S~U) c2 + + + ## Rule 6. Transphosphorylation of dimerized EGFR receptor subunits. + # + EGFR_wt(lig~B,dim!+,sos,S~U) -> EGFR_wt(lig~B,dim!+,sos,S~P) t1 + + + ## Rule 7. Binding of a dimerized transphosphorylated EGFR receptor + # subunit to Sos1. + # + EGFR_wt(lig~B,dim!+,sos,S~P) + SOS1_wt(egfr,S~U) <-> \ + EGFR_wt(lig~B,dim!+,sos!1,S~P).SOS1_wt(egfr!1,S~U) b1,n1 + + + ## Rule 8. Degradation of EGFR dimers. + # + EGFR_wt(lig~B,dim!1,sos!?,S~P).EGFR_wt(lig~B,dim!1,sos!?,S~P) -> Sink_wt() d3 + + + ## Rule 9. Activation of RAS by EGFR-Sos1 complex. + # + EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GDP) -> \ + EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GTP) a1 + + + ## Rule 10. Deactivation of RAS. + # + RAS_wt(nt~GTP) -> RAS_wt(nt~GDP) i1 + + + ## Rule 11. Activation of Raf by activated RAS. + # + RAS_wt(nt~GTP) + RAF_wt(S~I) -> \ + RAS_wt(nt~GTP) + RAF_wt(S~A) a2 + + + ## Rule 12. Raf Deactivation. + # + RAF_wt(S~A) -> RAF_wt(S~I) i2 + + + ## Rule 13. Phosphorylation of MEK1 on activating sites by RAF. + # + MEK1_wt(S1~Y) + RAF_wt(S~A) -> \ + MEK1_wt(S1~Yp) + RAF_wt(S~A) 2*p1 + # + MEK1_wt(S1~Yp) + RAF_wt(S~A) -> \ + MEK1_wt(S1~Ypp) + RAF_wt(S~A) p1 + + + ## Rule 14. Dephosphorylation of MEK1 on activating sites. + # + MEK1_wt(S1~Ypp) -> MEK1_wt(S1~Yp) 2*u1 + # + MEK1_wt(S1~Yp) -> MEK1_wt(S1~Y) u1 + + + ## Rule 15. Phosphorylation of MEK2 on activating sites by RAF. + # + MEK2_wt(S1~Y) + RAF_wt(S~A) -> \ + MEK2_wt(S1~Yp) + RAF_wt(S~A) 2*p1 + # + MEK2_wt(S1~Yp) + RAF_wt(S~A) -> \ + MEK2_wt(S1~Ypp) + RAF_wt(S~A) p1 + + + ## Rule 16. Dephosphorylation of MEK2 on activating sites. + # + MEK2_wt(S1~Ypp) -> MEK2_wt(S1~Yp) 2*u1 + # + MEK2_wt(S1~Yp) -> MEK2_wt(S1~Y) u1 + + + ## Rule 17. Activation of ERK by MEK1. + # + ERK_wt(S1~Y) + MEK1_wt(S1~Ypp) -> \ + ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) 2*p2a + # + ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) -> \ + ERK_wt(S1~Ypp) + MEK1_wt(S1~Ypp) p2a + + + ## Rule 18. Activation of ERK by MEK2. + # + ERK_wt(S1~Y) + MEK2_wt(S1~Ypp) -> \ + ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) 2*p2b + # + ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) -> \ + ERK_wt(S1~Ypp) + MEK2_wt(S1~Ypp) p2b + + + ## Rule 19. Dephosphorylation of ERK on activating sites. + # + ERK_wt(S1~Ypp) -> ERK_wt(S1~Yp) 2*u2 + # + ERK_wt(S1~Yp) -> ERK_wt(S1~Y) u2 + + +### NEGATIVE FEEDBACK BY ERK + + ## Rule 20. Feedback phosphorylation of Sos1 by ERK. + # + SOS1_wt(egfr,S~U) + ERK_wt(S1~Ypp) -> \ + SOS1_wt(egfr,S~P) + ERK_wt(S1~Ypp) p3 + + ## Rule 21. Dephosphorylation of the ERK-mediated negative feedback + # site of Sos1. + # + SOS1_wt(egfr,S~P) -> SOS1_wt(egfr,S~U) u3 + + + ## Rule 22. Feedback Phosphorylation of MEK1 by ERK on Thr292. + # + MEK1_wt(T292~Y) + ERK_wt(S1~Ypp) -> \ + MEK1_wt(T292~Yp)+ ERK_wt(S1~Ypp) p4 + + + ## Rule 23. Dephosphorylation of MEK1 on the negative feedback site (Thr292). + # + MEK1_wt(T292~Yp) -> MEK1_wt(T292~Y) u4 + + + ## Rule 24. PHP Attachment to phosphorylated Thr292 of MEK1. + # + MEK1_wt(T292~Yp) + PHP_wt(mek) <-> \ + MEK1_wt(T292~Yp!1).PHP_wt(mek!1) b5,n5 + + + ## Rule 25. Dephosphorylation of MEK1 on activating sites by the bound PHP. + # + MEK1_wt(T292~Yp!1,S1~Ypp).PHP_wt(mek!1) -> \ + MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) 2*u5 + # + MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) -> \ + MEK1_wt(T292~Yp!1,S1~Y).PHP_wt(mek!1) u5 + + + ## Rule 26. Dephosphorylation of the activating sites of MEK1 and MEK2 + # in the dimer with PHP-bound MEK1. + # + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Ypp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) 2*u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Y) u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Ypp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) 2*u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Y) u5 + +end reaction rules + + +# ============================================================================== + + +begin observables + +# ## Activity -------------------------------------------------------------- +# # +# Species EGFR_Lig_wt EGFR_wt(lig~B) +# Species EGFR_SOS_complex_wt EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) +# Species RAS_active_WT RAS_wt(nt~GTP) +# Species RAF_active_WT RAF_wt(S~A) +# Species MEK1_active_WT MEK1_wt(S1~Ypp) +# Species MEK2_active_WT MEK2_wt(S1~Ypp) +# Species MEK_total_active_WT MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) +# Species ERK_active_WT ERK_wt(S1~Ypp) +# +# +# ## Negative feedback ----------------------------------------------------- +# Species SOS1_P_wt SOS1_wt(egfr,S~P) +# Species MEK1_T292p_wt MEK1_wt(T292~Yp!?) +# Species MEK1_Phosphatase_Complex_wt MEK1_wt(T292~Yp!+) +# +# +# ## Species levels -------------------------------------------------------- +# # +# Species EGFR_tot_wt EGFR_wt() +# Species EGFR_mono_tot_wt EGFR_wt(dim) +# Species EGFR_dim_tot_wt EGFR_wt(dim!1).EGFR_wt(dim!1) +# Species EGFR_p_wt EGFR_wt(S~P) +# Species Sos1_tot_wt SOS1_wt() +# Species RAS_tot_wt RAS_wt() +# Species RAF_tot_wt RAF_wt() +# Species MEK1_tot_wt MEK1_wt() +# Species MEK2_tot_wt MEK2_wt() +# Species ERK_tot ERK_wt() +# +# +# ## Dimer levels ---------------------------------------------------------- +# # +# Molecules MEK1_homo_dim_wt MEK1_wt(d!1).MEK1_wt(d!1) +# Molecules MEK2_homo_dim_wt MEK2_wt(d!1).MEK2_wt(d!1) +# Molecules MEK_hetero_dim_wt MEK1_wt(d!1).MEK2_wt(d!1) + + + ## Publication observables ----------------------------------------------- + # + Species pSos1_wt SOS1_wt(S~P) + Species pEGFR_wt EGFR_wt(S~P) + Species pERK1_2_wt ERK_wt(S1~Ypp) + # + Species MEK1_pRDS_wt MEK1_wt(S1~Ypp) + Species MEK2_pRDS_wt MEK2_wt(S1~Ypp) + Species MEK_pRDS_N78G MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) + +end observables + +end model +# ============================================================================== + + +#generate_network({overwrite=>1}); +#writeMfile(); + + +setParameter("c1",0.02); +simulate({suffix=>"N78G",method=>"ode",t_end=>3600,n_steps=>3600}); + + +# ============================================================================== +# EOF + + +# EOF + diff --git a/Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_T292A.bngl b/Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_T292A.bngl new file mode 100644 index 00000000..a20f8993 --- /dev/null +++ b/Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_T292A.bngl @@ -0,0 +1,516 @@ +begin model +# ============================================================================== +# # +# # +# MEK1-MEK2 Heterodimerization-based ERK Cascade Model # +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # +# # +# The model includes the negative feedback from ERK to MEK1 and its mediation # +# to MEK2 via heterodimerization. The code describes the events taking place # +# in WT MEFs. # +# # +# This code features the article entitled: # +# # +# "MEK1 and MEK2 differentially control the duration and amplitude # +# of the ERK cascade response" # +# # +# by Pawel Kocieniewski and Tomasz Lipniacki (Physical Biology, 2013). # +# Additional work with PyBNF and parameterization by Miller et al. (2025). # +# # +# ...:::*:::... # +# # +# The experimental perturbations described in the paper are simulated as # +# follows: # +# # +# a) MEK1 knock-out -- setting MEK1 content to zero (MEK1_0 = 0); # +# # +# b) MEK1 dimerization ablation (N78G mutant) -- disabling MEK1 homo- and # +# dimerization (set constants b2 = 0 and b4 = 0); # +# # +# c) MEK1 negative feedback ablation (T292A mutant) -- disabling MEK1 # +# Thr292 phosphorylation rule (set constant p4 = 0); # +# # +# d) MEK1 constitutive MEK1 repression (T292D mutant): # +# # +# i) -- setting total intial MEK1 phosphorylated at Thr292 (replace # +# MEK1(d,T292~Y,S1~Y) by MEK1(d,T292~P,S1~Y), # +# # +# ii) -- disabling MEK1 Thr292p dephosphorylation (set constant u4 = 0), # +# # +# iii) -- attenuate MEK1-Thr292p/PHP binding rate to reflect the lower # +# affinity of phosphomimetic substitution with respect to Thr 292P # +# (set b5 = b5/N, N = 3). # +# # +# ...:::*:::... # +# # +# Last changes: # +# # +# * Ely F. Miller Fri June 27 12:37:29 PST 2025 # +# # +# ============================================================================== + + +begin parameters + + ## General -------------------------------------------------------------- + # + MEK1_fraction 0.67 # MEK1 fraction of total MEKs content + X 5 # MEK2-to-MEK1 kinase activity ratio + + + ## Concentrations of species --------------------------------------------- + # + EGFR_0 4.999382777809e+05 # initial EGFR level, resting cell steady state + #EGFR_steady 4.999382777809e+05 + SOS1_0 1.999753111124e+05 # initial Sos1 level, resting cell steady state + #SOS1_steady 1.999753111124e+05 + RAS_0 500000 # initial RAS level, constant + RAF_0 500000 # initial RAF level, constant + MEK_tot_0 200000 # initial MEK1 and MEK2 total level, constant + MEK1_0 MEK_tot_0*MEK1_fraction # initial MEK1 level, constant + MEK1_0_T292p 0 # initial MEK1-Thr292p level + MEK2_0 MEK_tot_0*(1-MEK1_fraction) # initial MEK2 level, constant + ERK_0 3000000 # initial combined ERK1 and ERK2 level, constant + PHP_MEK_0 3000000 # initial PHP level, constant + + + ## Assembly and dynamics of the EGFR receptor complexes ------------------ +# +#s1 2.5 # EGFR receptor subunit constitutive production +#d1 5e-6 # EGFR receptor subunit constitutive degradation +#s2 1 # Sos1 constitutive production +#d2 5e-6 # Sos1 constitutive degradation +c1 0 # formation of EGFR receptor subunit/ligand complex -- SIGNAL +#c1_init c1_init__FREE #0 # c1 value prior to stimulation with ligand +c1_L c1_L__FREE #0.02 # c1 value after stimulation with ligand +c2 c2__FREE #2e-7 # EGFR receptor dimerization due ligand +t1 t1__FREE #100 # EGFR subunits transphosphorylation in EGFR dimer +d3 d3__FREE #1e-3 # degradation of ligand-bound dimer complexes +b1 b1__FREE #4e-8 # association of phosphorylated receptor EGFR subunits with Sos1 +n1 n1__FREE #2e-3 # disassociation of EGFR receptor subunits from Sos1 + + +## MEK1 and MEK2 homo- and heterodimerization ---------------------------- +# +b2 b2__FREE #1e-5 # MEK1 homodimer formation +n2 n2__FREE #1e-3 # MEK1 dimer dissociation +b3 b3__FREE #1e-5 # MEK2 homodimer formation +n3 n3__FREE #3e-2 # MEK2 homodimer dissociation +b4 b4__FREE #1e-5 #MEK1 and MEK2 heterodimer formation +n4 n4__FREE #1e-3 #MEK1 and MEK2 heterodimer dissociation + + +## Signal transduction through RAF, MEK1/2, and ERK ---------------------- +# +a1 a1__FREE #1.5e-7 # activation of Ras by EGFR-Sos1 complex (exchange of GDP for GTP) +i1 i1__FREE #2e-2 # inactivation of RAS (hydrolysis of bound GTP to GDP) +a2 a2__FREE #4e-8 # activation of RAF by RAS-GTP +i2 i2__FREE #1e-2 # inactivation of RAF +p1 p1__FREE #1.5e-7 # phosphorylation of MEK1 and MEK2 on the activation sites by RAF +u1 u1__FREE #5e-3 # dephosphorylation of MEK1 and MEK2 on the activation sites +p2a p2a__FREE #1e-6 # phosphorylation of ERK on the activation sites by MEK1 +p2b p2b__FREE*5 #X*p2a # phosphorylation of ERK on the activation sites by MEK2 +u2 u2__FREE #2e-2 # dephosphorylation of ERK on the activation sites + + +## Phosphorylation and dephosphorylation --------------------------------- +## of feedback sites of Sos1 and MEK1 (Thr292) +# +p3 p3__FREE #2e-9 #feedback phosphorylation of Sos1 by active ERK +u3 u3__FREE #1e-3 #dephosphorylation of the Sos1 feedback site +p4 0 #feedback phosphorylation of MEK1 by ERK +u4 u4__FREE #2e-4 #dephosphorylation of the MEK1 feedback site (Thr292) + +## Interactions of PHP with Thr292p of MEK1 ------------------------------ +# +b5 b5__FREE #4e-9 # PHP phosphatse binding to Thr292p of MEK1 +n5 n5__FREE #2e-4 # dissociation of PHP phosphatase from Thr292p of MEK1 +u5 u5__FREE #20 # dephosphorylation of MEK1 and MEK2 on the activation sites +# by MEK1-bound PHP phosphatase + + +end parameters + + +# ============================================================================== + + +begin molecule types + + ## EGFR receptor subunit + # --------------------- + # + # lig -- indicates whether subunit is ligand-bound (B) or not (U) + # sos -- SOS1 binding domain + # dim -- subunit dimerization domain + # S -- indicates whether subunit has undergone phosphorylation + # (P) or not (U) due to subunit transphosphorylation + # + EGFR_wt(lig~U~B,sos,dim,S~U~P) + + + ## SOS1 Guanine Exchange Factor + # ---------------------------- + # + # egfr -- EGFR receptor subunit binding domain. In reality this interaction + # is mediated by Grb2 adapter protein. For sake of simplicity, + # we assume the interaction to be direct. + # S -- indicates whether Sos1 has undergone feedback phosphorylation by ERK. + # Sos1 possesses at least 4 feedback phosphorlyation sites. For + # simplicity sake we model it as a single site. + # + SOS1_wt(egfr,S~U~P) + + + ## RAS GTPase + # ---------- + # + # nt -- indicates whether RAS is bound to GTP (activated) or to GDP + # (inactivated). + # + RAS_wt(nt~GDP~GTP) + + + ## RAF kinase + # ---------- + # + # S -- indicates whether RAS is active (A) or inactive (I). + # + RAF_wt(S~A~I) + + + ## MEK1 kinase + # ----------- + # + # d -- MEK1 homo- and heterodimerization domain. + # S1 -- indicates whether MEK1 is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # T292 -- represents Thr292 residue, which undergoes feedback phosphorylation + # (Yp) by ERK. When phosphorylated, it becomes a binding domain + # for PHP phosphatase. + # + MEK1_wt(d,T292~Y~Yp,S1~Y~Yp~Ypp) + + + ## MEK2 kinase + # ----------- + # + # d -- MEK2 homo- and heterodimerization domain. + # S1 -- indicates whether MEK2 is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # + MEK2_wt(d,S1~Y~Yp~Ypp) + + + ## ERK + # ----- + # + # S1 -- indicates whether ERK is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # + ERK_wt(S1~Y~Yp~Ypp) + + + ## PHP (MEK phosphatase that binds to Thr292p) + # ----- + # + # mek -- MEK1 binding domain at MEK1-Thr292p. + # + PHP_wt(mek) + + + ## Dummy species to simulate constant de novo synthesis reactions + # (Source) and removal/degradation (Sink). + # + Source_wt() + # + Sink_wt() + +end molecule types + + +# ============================================================================== + +begin species + + EGFR_wt(lig~U,sos,dim,S~U) EGFR_0 + SOS1_wt(egfr,S~U) SOS1_0 + RAS_wt(nt~GDP) RAS_0 + RAF_wt(S~I) RAF_0 + MEK1_wt(d,T292~Y,S1~Y) MEK1_0 + MEK1_wt(d,T292~Yp,S1~Y) MEK1_0_T292p + MEK2_wt(d,S1~Y) MEK2_0 + ERK_wt(S1~Y) ERK_0 + PHP_wt(mek) PHP_MEK_0 + + #Source_wt() 1 + #Sink_wt() 0 + +end species + + +# ============================================================================== + + +begin reaction rules + +### WT MODEL + + ## Rule 1. Constitutive production and degradation of EGFR subunit. + # + #Source_wt() -> Source_wt() + EGFR_wt(lig~U,sos,dim,S~U) s1 + #EGFR_wt(sos,dim,S~U) -> Sink_wt() d1 + + + ## Rule 2. Constitutive production and degradation of SOS1. + # + #Source_wt() -> Source_wt() + SOS1_wt(egfr,S~U) s2 + #SOS1_wt(egfr,S~U) -> Sink_wt() d2 + + + ## Rule 3. MEK1 and MEK2 homo- and heterodimerization. + # + MEK1_wt(d) + MEK1_wt(d) <-> MEK1_wt(d!1).MEK1_wt(d!1) b2,n2 + MEK2_wt(d) + MEK2_wt(d) <-> MEK2_wt(d!1).MEK2_wt(d!1) b3,n3 + MEK2_wt(d) + MEK1_wt(d) <-> MEK2_wt(d!1).MEK1_wt(d!1) b4,n4 + + + ## Rule 4. Binding of EGFR receptor subunit with the ligand. + # + EGFR_wt(lig~U,dim,sos,S~U) -> EGFR_wt(lig~B,dim,sos,S~U) c1 + + + ## Rule 5. Dimerization of ligand-bound receptors. + # + EGFR_wt(lig~B,dim,sos,S~U) + EGFR_wt(lig~B,dim,sos,S~U) -> \ + EGFR_wt(lig~B,dim!1,sos,S~U).EGFR_wt(lig~B,dim!1,sos,S~U) c2 + + + ## Rule 6. Transphosphorylation of dimerized EGFR receptor subunits. + # + EGFR_wt(lig~B,dim!+,sos,S~U) -> EGFR_wt(lig~B,dim!+,sos,S~P) t1 + + + ## Rule 7. Binding of a dimerized transphosphorylated EGFR receptor + # subunit to Sos1. + # + EGFR_wt(lig~B,dim!+,sos,S~P) + SOS1_wt(egfr,S~U) <-> \ + EGFR_wt(lig~B,dim!+,sos!1,S~P).SOS1_wt(egfr!1,S~U) b1,n1 + + + ## Rule 8. Degradation of EGFR dimers. + # + EGFR_wt(lig~B,dim!1,sos!?,S~P).EGFR_wt(lig~B,dim!1,sos!?,S~P) -> Sink_wt() d3 + + + ## Rule 9. Activation of RAS by EGFR-Sos1 complex. + # + EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GDP) -> \ + EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GTP) a1 + + + ## Rule 10. Deactivation of RAS. + # + RAS_wt(nt~GTP) -> RAS_wt(nt~GDP) i1 + + + ## Rule 11. Activation of Raf by activated RAS. + # + RAS_wt(nt~GTP) + RAF_wt(S~I) -> \ + RAS_wt(nt~GTP) + RAF_wt(S~A) a2 + + + ## Rule 12. Raf Deactivation. + # + RAF_wt(S~A) -> RAF_wt(S~I) i2 + + + ## Rule 13. Phosphorylation of MEK1 on activating sites by RAF. + # + MEK1_wt(S1~Y) + RAF_wt(S~A) -> \ + MEK1_wt(S1~Yp) + RAF_wt(S~A) 2*p1 + # + MEK1_wt(S1~Yp) + RAF_wt(S~A) -> \ + MEK1_wt(S1~Ypp) + RAF_wt(S~A) p1 + + + ## Rule 14. Dephosphorylation of MEK1 on activating sites. + # + MEK1_wt(S1~Ypp) -> MEK1_wt(S1~Yp) 2*u1 + # + MEK1_wt(S1~Yp) -> MEK1_wt(S1~Y) u1 + + + ## Rule 15. Phosphorylation of MEK2 on activating sites by RAF. + # + MEK2_wt(S1~Y) + RAF_wt(S~A) -> \ + MEK2_wt(S1~Yp) + RAF_wt(S~A) 2*p1 + # + MEK2_wt(S1~Yp) + RAF_wt(S~A) -> \ + MEK2_wt(S1~Ypp) + RAF_wt(S~A) p1 + + + ## Rule 16. Dephosphorylation of MEK2 on activating sites. + # + MEK2_wt(S1~Ypp) -> MEK2_wt(S1~Yp) 2*u1 + # + MEK2_wt(S1~Yp) -> MEK2_wt(S1~Y) u1 + + + ## Rule 17. Activation of ERK by MEK1. + # + ERK_wt(S1~Y) + MEK1_wt(S1~Ypp) -> \ + ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) 2*p2a + # + ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) -> \ + ERK_wt(S1~Ypp) + MEK1_wt(S1~Ypp) p2a + + + ## Rule 18. Activation of ERK by MEK2. + # + ERK_wt(S1~Y) + MEK2_wt(S1~Ypp) -> \ + ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) 2*p2b + # + ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) -> \ + ERK_wt(S1~Ypp) + MEK2_wt(S1~Ypp) p2b + + + ## Rule 19. Dephosphorylation of ERK on activating sites. + # + ERK_wt(S1~Ypp) -> ERK_wt(S1~Yp) 2*u2 + # + ERK_wt(S1~Yp) -> ERK_wt(S1~Y) u2 + + +### NEGATIVE FEEDBACK BY ERK + + ## Rule 20. Feedback phosphorylation of Sos1 by ERK. + # + SOS1_wt(egfr,S~U) + ERK_wt(S1~Ypp) -> \ + SOS1_wt(egfr,S~P) + ERK_wt(S1~Ypp) p3 + + ## Rule 21. Dephosphorylation of the ERK-mediated negative feedback + # site of Sos1. + # + SOS1_wt(egfr,S~P) -> SOS1_wt(egfr,S~U) u3 + + + ## Rule 22. Feedback Phosphorylation of MEK1 by ERK on Thr292. + # + MEK1_wt(T292~Y) + ERK_wt(S1~Ypp) -> \ + MEK1_wt(T292~Yp)+ ERK_wt(S1~Ypp) p4 + + + ## Rule 23. Dephosphorylation of MEK1 on the negative feedback site (Thr292). + # + MEK1_wt(T292~Yp) -> MEK1_wt(T292~Y) u4 + + + ## Rule 24. PHP Attachment to phosphorylated Thr292 of MEK1. + # + MEK1_wt(T292~Yp) + PHP_wt(mek) <-> \ + MEK1_wt(T292~Yp!1).PHP_wt(mek!1) b5,n5 + + + ## Rule 25. Dephosphorylation of MEK1 on activating sites by the bound PHP. + # + MEK1_wt(T292~Yp!1,S1~Ypp).PHP_wt(mek!1) -> \ + MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) 2*u5 + # + MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) -> \ + MEK1_wt(T292~Yp!1,S1~Y).PHP_wt(mek!1) u5 + + + ## Rule 26. Dephosphorylation of the activating sites of MEK1 and MEK2 + # in the dimer with PHP-bound MEK1. + # + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Ypp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) 2*u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Y) u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Ypp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) 2*u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Y) u5 + +end reaction rules + + +# ============================================================================== + + +begin observables + +# ## Activity -------------------------------------------------------------- +# # +# Species EGFR_Lig_wt EGFR_wt(lig~B) +# Species EGFR_SOS_complex_wt EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) +# Species RAS_active_WT RAS_wt(nt~GTP) +# Species RAF_active_WT RAF_wt(S~A) +# Species MEK1_active_WT MEK1_wt(S1~Ypp) +# Species MEK2_active_WT MEK2_wt(S1~Ypp) +# Species MEK_total_active_WT MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) +# Species ERK_active_WT ERK_wt(S1~Ypp) +# +# +# ## Negative feedback ----------------------------------------------------- +# Species SOS1_P_wt SOS1_wt(egfr,S~P) +# Species MEK1_T292p_wt MEK1_wt(T292~Yp!?) +# Species MEK1_Phosphatase_Complex_wt MEK1_wt(T292~Yp!+) +# +# +# ## Species levels -------------------------------------------------------- +# # +# Species EGFR_tot_wt EGFR_wt() +# Species EGFR_mono_tot_wt EGFR_wt(dim) +# Species EGFR_dim_tot_wt EGFR_wt(dim!1).EGFR_wt(dim!1) +# Species EGFR_p_wt EGFR_wt(S~P) +# Species Sos1_tot_wt SOS1_wt() +# Species RAS_tot_wt RAS_wt() +# Species RAF_tot_wt RAF_wt() +# Species MEK1_tot_wt MEK1_wt() +# Species MEK2_tot_wt MEK2_wt() +# Species ERK_tot ERK_wt() +# +# +# ## Dimer levels ---------------------------------------------------------- +# # +# Molecules MEK1_homo_dim_wt MEK1_wt(d!1).MEK1_wt(d!1) +# Molecules MEK2_homo_dim_wt MEK2_wt(d!1).MEK2_wt(d!1) +# Molecules MEK_hetero_dim_wt MEK1_wt(d!1).MEK2_wt(d!1) + + + ## Publication observables ----------------------------------------------- + # + Species pSos1_wt SOS1_wt(S~P) + Species pEGFR_wt EGFR_wt(S~P) + Species pERK1_2_wt ERK_wt(S1~Ypp) + # + Species MEK1_pRDS_wt MEK1_wt(S1~Ypp) + Species MEK2_pRDS_wt MEK2_wt(S1~Ypp) + Species MEK_pRDS_T292A MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) + +end observables + +end model +# ============================================================================== + + +#generate_network({overwrite=>1}); +#writeMfile(); + + +setParameter("c1",0.02); +simulate({suffix=>"T292A",method=>"ode",t_end=>3600,n_steps=>3600}); + +# ============================================================================== +# EOF + + + diff --git a/Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_T292D.bngl b/Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_T292D.bngl new file mode 100644 index 00000000..62bf3aeb --- /dev/null +++ b/Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_T292D.bngl @@ -0,0 +1,515 @@ +begin model +# ============================================================================== +# # +# # +# MEK1-MEK2 Heterodimerization-based ERK Cascade Model # +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # +# # +# The model includes the negative feedback from ERK to MEK1 and its mediation # +# to MEK2 via heterodimerization. The code describes the events taking place # +# in WT MEFs. # +# # +# This code features the article entitled: # +# # +# "MEK1 and MEK2 differentially control the duration and amplitude # +# of the ERK cascade response" # +# # +# by Pawel Kocieniewski and Tomasz Lipniacki (Physical Biology, 2013). # +# Additional work with PyBNF and parameterization by Miller et al. (2025). # +# # +# ...:::*:::... # +# # +# The experimental perturbations described in the paper are simulated as # +# follows: # +# # +# a) MEK1 knock-out -- setting MEK1 content to zero (MEK1_0 = 0); # +# # +# b) MEK1 dimerization ablation (N78G mutant) -- disabling MEK1 homo- and # +# dimerization (set constants b2 = 0 and b4 = 0); # +# # +# c) MEK1 negative feedback ablation (T292A mutant) -- disabling MEK1 # +# Thr292 phosphorylation rule (set constant p4 = 0); # +# # +# d) MEK1 constitutive MEK1 repression (T292D mutant): # +# # +# i) -- setting total intial MEK1 phosphorylated at Thr292 (replace # +# MEK1(d,T292~Y,S1~Y) by MEK1(d,T292~P,S1~Y), # +# # +# ii) -- disabling MEK1 Thr292p dephosphorylation (set constant u4 = 0), # +# # +# iii) -- attenuate MEK1-Thr292p/PHP binding rate to reflect the lower # +# affinity of phosphomimetic substitution with respect to Thr 292P # +# (set b5 = b5/N, N = 3). # +# # +# ...:::*:::... # +# # +# Last changes: # +# # +# * Ely F. Miller Fri June 27 12:37:29 PST 2025 # +# # +# ============================================================================== + + +begin parameters + + ## General -------------------------------------------------------------- + # + MEK1_fraction 0.67 # MEK1 fraction of total MEKs content + X 5 # MEK2-to-MEK1 kinase activity ratio + + + ## Concentrations of species --------------------------------------------- + # + EGFR_0 4.999382777809e+05 # initial EGFR level, resting cell steady state + #EGFR_steady 4.999382777809e+05 + SOS1_0 1.999753111124e+05 # initial Sos1 level, resting cell steady state + #SOS1_steady 1.999753111124e+05 + RAS_0 500000 # initial RAS level, constant + RAF_0 500000 # initial RAF level, constant + MEK_tot_0 200000 # initial MEK1 and MEK2 total level, constant + MEK1_0 MEK_tot_0*MEK1_fraction # initial MEK1 level, constant + MEK1_0_T292p 0 # initial MEK1-Thr292p level + MEK2_0 MEK_tot_0*(1-MEK1_fraction) # initial MEK2 level, constant + ERK_0 3000000 # initial combined ERK1 and ERK2 level, constant + PHP_MEK_0 3000000 # initial PHP level, constant + + + ## Assembly and dynamics of the EGFR receptor complexes ------------------ +# +#s1 2.5 # EGFR receptor subunit constitutive production +#d1 5e-6 # EGFR receptor subunit constitutive degradation +#s2 1 # Sos1 constitutive production +#d2 5e-6 # Sos1 constitutive degradation +c1 0 # formation of EGFR receptor subunit/ligand complex -- SIGNAL +#c1_init c1_init__FREE #0 # c1 value prior to stimulation with ligand +c1_L c1_L__FREE #0.02 # c1 value after stimulation with ligand +c2 c2__FREE #2e-7 # EGFR receptor dimerization due ligand +t1 t1__FREE #100 # EGFR subunits transphosphorylation in EGFR dimer +d3 d3__FREE #1e-3 # degradation of ligand-bound dimer complexes +b1 b1__FREE #4e-8 # association of phosphorylated receptor EGFR subunits with Sos1 +n1 n1__FREE #2e-3 # disassociation of EGFR receptor subunits from Sos1 + + + ## MEK1 and MEK2 homo- and heterodimerization ---------------------------- +# +b2 b2__FREE #1e-5 # MEK1 homodimer formation +n2 n2__FREE #1e-3 # MEK1 dimer dissociation +b3 b3__FREE #1e-5 # MEK2 homodimer formation +n3 n3__FREE #3e-2 # MEK2 homodimer dissociation +b4 b4__FREE #1e-5 #MEK1 and MEK2 heterodimer formation +n4 n4__FREE #1e-3 #MEK1 and MEK2 heterodimer dissociation + + +## Signal transduction through RAF, MEK1/2, and ERK ---------------------- +# +a1 a1__FREE #1.5e-7 # activation of Ras by EGFR-Sos1 complex (exchange of GDP for GTP) +i1 i1__FREE #2e-2 # inactivation of RAS (hydrolysis of bound GTP to GDP) +a2 a2__FREE #4e-8 # activation of RAF by RAS-GTP +i2 i2__FREE #1e-2 # inactivation of RAF +p1 p1__FREE #1.5e-7 # phosphorylation of MEK1 and MEK2 on the activation sites by RAF +u1 u1__FREE #5e-3 # dephosphorylation of MEK1 and MEK2 on the activation sites +p2a p2a__FREE #1e-6 # phosphorylation of ERK on the activation sites by MEK1 +p2b p2b__FREE*5 #X*p2a # phosphorylation of ERK on the activation sites by MEK2 +u2 u2__FREE #2e-2 # dephosphorylation of ERK on the activation sites + + + ## Phosphorylation and dephosphorylation --------------------------------- + ## of feedback sites of Sos1 and MEK1 (Thr292) + # +p3 p3__FREE #2e-9 #feedback phosphorylation of Sos1 by active ERK +u3 u3__FREE #1e-3 #dephosphorylation of the Sos1 feedback site +p4 p4__FREE #1.2e-9 #feedback phosphorylation of MEK1 by ERK +u4 0 #2e-4 #dephosphorylation of the MEK1 feedback site (Thr292) + + ## Interactions of PHP with Thr292p of MEK1 ------------------------------ + # +b5 b5__FREE/3 #4e-9 # PHP phosphatse binding to Thr292p of MEK1 +n5 n5__FREE #2e-4 # dissociation of PHP phosphatase from Thr292p of MEK1 +u5 u5__FREE #20 # dephosphorylation of MEK1 and MEK2 on the activation sites +# by MEK1-bound PHP phosphatase + +end parameters + + +# ============================================================================== + + +begin molecule types + + ## EGFR receptor subunit + # --------------------- + # + # lig -- indicates whether subunit is ligand-bound (B) or not (U) + # sos -- SOS1 binding domain + # dim -- subunit dimerization domain + # S -- indicates whether subunit has undergone phosphorylation + # (P) or not (U) due to subunit transphosphorylation + # + EGFR_wt(lig~U~B,sos,dim,S~U~P) + + + ## SOS1 Guanine Exchange Factor + # ---------------------------- + # + # egfr -- EGFR receptor subunit binding domain. In reality this interaction + # is mediated by Grb2 adapter protein. For sake of simplicity, + # we assume the interaction to be direct. + # S -- indicates whether Sos1 has undergone feedback phosphorylation by ERK. + # Sos1 possesses at least 4 feedback phosphorlyation sites. For + # simplicity sake we model it as a single site. + # + SOS1_wt(egfr,S~U~P) + + + ## RAS GTPase + # ---------- + # + # nt -- indicates whether RAS is bound to GTP (activated) or to GDP + # (inactivated). + # + RAS_wt(nt~GDP~GTP) + + + ## RAF kinase + # ---------- + # + # S -- indicates whether RAS is active (A) or inactive (I). + # + RAF_wt(S~A~I) + + + ## MEK1 kinase + # ----------- + # + # d -- MEK1 homo- and heterodimerization domain. + # S1 -- indicates whether MEK1 is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # T292 -- represents Thr292 residue, which undergoes feedback phosphorylation + # (Yp) by ERK. When phosphorylated, it becomes a binding domain + # for PHP phosphatase. + # + MEK1_wt(d,T292~Y~Yp,S1~Y~Yp~Ypp) + + + ## MEK2 kinase + # ----------- + # + # d -- MEK2 homo- and heterodimerization domain. + # S1 -- indicates whether MEK2 is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # + MEK2_wt(d,S1~Y~Yp~Ypp) + + + ## ERK + # ----- + # + # S1 -- indicates whether ERK is unphosphorylated (Y), monophosphorylated + # (Yp) or double phosphorylated (Ypp). Double phosphorylation + # is considered activating. + # + ERK_wt(S1~Y~Yp~Ypp) + + + ## PHP (MEK phosphatase that binds to Thr292p) + # ----- + # + # mek -- MEK1 binding domain at MEK1-Thr292p. + # + PHP_wt(mek) + + + ## Dummy species to simulate constant de novo synthesis reactions + # (Source) and removal/degradation (Sink). + # + Source_wt() + # + Sink_wt() + +end molecule types + + +# ============================================================================== + +begin species + + EGFR_wt(lig~U,sos,dim,S~U) EGFR_0 + SOS1_wt(egfr,S~U) SOS1_0 + RAS_wt(nt~GDP) RAS_0 + RAF_wt(S~I) RAF_0 + MEK1_wt(d,T292~Yp,S1~Y) MEK1_0 + MEK1_wt(d,T292~Y,S1~Y) MEK1_0_T292p + MEK2_wt(d,S1~Y) MEK2_0 + ERK_wt(S1~Y) ERK_0 + PHP_wt(mek) PHP_MEK_0 + + #Source_wt() 1 + #Sink_wt() 0 + +end species + + +# ============================================================================== + + +begin reaction rules + +### WT MODEL + + ## Rule 1. Constitutive production and degradation of EGFR subunit. + # + #Source_wt() -> Source_wt() + EGFR_wt(lig~U,sos,dim,S~U) s1 + #EGFR_wt(sos,dim,S~U) -> Sink_wt() d1 + + + ## Rule 2. Constitutive production and degradation of SOS1. + # + #Source_wt() -> Source_wt() + SOS1_wt(egfr,S~U) s2 + #SOS1_wt(egfr,S~U) -> Sink_wt() d2 + + + ## Rule 3. MEK1 and MEK2 homo- and heterodimerization. + # + MEK1_wt(d) + MEK1_wt(d) <-> MEK1_wt(d!1).MEK1_wt(d!1) b2,n2 + MEK2_wt(d) + MEK2_wt(d) <-> MEK2_wt(d!1).MEK2_wt(d!1) b3,n3 + MEK2_wt(d) + MEK1_wt(d) <-> MEK2_wt(d!1).MEK1_wt(d!1) b4,n4 + + + ## Rule 4. Binding of EGFR receptor subunit with the ligand. + # + EGFR_wt(lig~U,dim,sos,S~U) -> EGFR_wt(lig~B,dim,sos,S~U) c1 + + + ## Rule 5. Dimerization of ligand-bound receptors. + # + EGFR_wt(lig~B,dim,sos,S~U) + EGFR_wt(lig~B,dim,sos,S~U) -> \ + EGFR_wt(lig~B,dim!1,sos,S~U).EGFR_wt(lig~B,dim!1,sos,S~U) c2 + + + ## Rule 6. Transphosphorylation of dimerized EGFR receptor subunits. + # + EGFR_wt(lig~B,dim!+,sos,S~U) -> EGFR_wt(lig~B,dim!+,sos,S~P) t1 + + + ## Rule 7. Binding of a dimerized transphosphorylated EGFR receptor + # subunit to Sos1. + # + EGFR_wt(lig~B,dim!+,sos,S~P) + SOS1_wt(egfr,S~U) <-> \ + EGFR_wt(lig~B,dim!+,sos!1,S~P).SOS1_wt(egfr!1,S~U) b1,n1 + + + ## Rule 8. Degradation of EGFR dimers. + # + EGFR_wt(lig~B,dim!1,sos!?,S~P).EGFR_wt(lig~B,dim!1,sos!?,S~P) -> Sink_wt() d3 + + + ## Rule 9. Activation of RAS by EGFR-Sos1 complex. + # + EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GDP) -> \ + EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GTP) a1 + + + ## Rule 10. Deactivation of RAS. + # + RAS_wt(nt~GTP) -> RAS_wt(nt~GDP) i1 + + + ## Rule 11. Activation of Raf by activated RAS. + # + RAS_wt(nt~GTP) + RAF_wt(S~I) -> \ + RAS_wt(nt~GTP) + RAF_wt(S~A) a2 + + + ## Rule 12. Raf Deactivation. + # + RAF_wt(S~A) -> RAF_wt(S~I) i2 + + + ## Rule 13. Phosphorylation of MEK1 on activating sites by RAF. + # + MEK1_wt(S1~Y) + RAF_wt(S~A) -> \ + MEK1_wt(S1~Yp) + RAF_wt(S~A) 2*p1 + # + MEK1_wt(S1~Yp) + RAF_wt(S~A) -> \ + MEK1_wt(S1~Ypp) + RAF_wt(S~A) p1 + + + ## Rule 14. Dephosphorylation of MEK1 on activating sites. + # + MEK1_wt(S1~Ypp) -> MEK1_wt(S1~Yp) 2*u1 + # + MEK1_wt(S1~Yp) -> MEK1_wt(S1~Y) u1 + + + ## Rule 15. Phosphorylation of MEK2 on activating sites by RAF. + # + MEK2_wt(S1~Y) + RAF_wt(S~A) -> \ + MEK2_wt(S1~Yp) + RAF_wt(S~A) 2*p1 + # + MEK2_wt(S1~Yp) + RAF_wt(S~A) -> \ + MEK2_wt(S1~Ypp) + RAF_wt(S~A) p1 + + + ## Rule 16. Dephosphorylation of MEK2 on activating sites. + # + MEK2_wt(S1~Ypp) -> MEK2_wt(S1~Yp) 2*u1 + # + MEK2_wt(S1~Yp) -> MEK2_wt(S1~Y) u1 + + + ## Rule 17. Activation of ERK by MEK1. + # + ERK_wt(S1~Y) + MEK1_wt(S1~Ypp) -> \ + ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) 2*p2a + # + ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) -> \ + ERK_wt(S1~Ypp) + MEK1_wt(S1~Ypp) p2a + + + ## Rule 18. Activation of ERK by MEK2. + # + ERK_wt(S1~Y) + MEK2_wt(S1~Ypp) -> \ + ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) 2*p2b + # + ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) -> \ + ERK_wt(S1~Ypp) + MEK2_wt(S1~Ypp) p2b + + + ## Rule 19. Dephosphorylation of ERK on activating sites. + # + ERK_wt(S1~Ypp) -> ERK_wt(S1~Yp) 2*u2 + # + ERK_wt(S1~Yp) -> ERK_wt(S1~Y) u2 + + +### NEGATIVE FEEDBACK BY ERK + + ## Rule 20. Feedback phosphorylation of Sos1 by ERK. + # + SOS1_wt(egfr,S~U) + ERK_wt(S1~Ypp) -> \ + SOS1_wt(egfr,S~P) + ERK_wt(S1~Ypp) p3 + + ## Rule 21. Dephosphorylation of the ERK-mediated negative feedback + # site of Sos1. + # + SOS1_wt(egfr,S~P) -> SOS1_wt(egfr,S~U) u3 + + + ## Rule 22. Feedback Phosphorylation of MEK1 by ERK on Thr292. + # + MEK1_wt(T292~Y) + ERK_wt(S1~Ypp) -> \ + MEK1_wt(T292~Yp)+ ERK_wt(S1~Ypp) p4 + + + ## Rule 23. Dephosphorylation of MEK1 on the negative feedback site (Thr292). + # + MEK1_wt(T292~Yp) -> MEK1_wt(T292~Y) u4 + + + ## Rule 24. PHP Attachment to phosphorylated Thr292 of MEK1. + # + MEK1_wt(T292~Yp) + PHP_wt(mek) <-> \ + MEK1_wt(T292~Yp!1).PHP_wt(mek!1) b5,n5 + + + ## Rule 25. Dephosphorylation of MEK1 on activating sites by the bound PHP. + # + MEK1_wt(T292~Yp!1,S1~Ypp).PHP_wt(mek!1) -> \ + MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) 2*u5 + # + MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) -> \ + MEK1_wt(T292~Yp!1,S1~Y).PHP_wt(mek!1) u5 + + + ## Rule 26. Dephosphorylation of the activating sites of MEK1 and MEK2 + # in the dimer with PHP-bound MEK1. + # + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Ypp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) 2*u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Y) u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Ypp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) 2*u5 + # + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) -> \ + MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Y) u5 + +end reaction rules + + +# ============================================================================== + + +begin observables + +# ## Activity -------------------------------------------------------------- +# # +# Species EGFR_Lig_wt EGFR_wt(lig~B) +# Species EGFR_SOS_complex_wt EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) +# Species RAS_active_WT RAS_wt(nt~GTP) +# Species RAF_active_WT RAF_wt(S~A) +# Species MEK1_active_WT MEK1_wt(S1~Ypp) +# Species MEK2_active_WT MEK2_wt(S1~Ypp) +# Species MEK_total_active_WT MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) +# Species ERK_active_WT ERK_wt(S1~Ypp) +# +# +# ## Negative feedback ----------------------------------------------------- +# Species SOS1_P_wt SOS1_wt(egfr,S~P) +# Species MEK1_T292p_wt MEK1_wt(T292~Yp!?) +# Species MEK1_Phosphatase_Complex_wt MEK1_wt(T292~Yp!+) +# +# +# ## Species levels -------------------------------------------------------- +# # +# Species EGFR_tot_wt EGFR_wt() +# Species EGFR_mono_tot_wt EGFR_wt(dim) +# Species EGFR_dim_tot_wt EGFR_wt(dim!1).EGFR_wt(dim!1) +# Species EGFR_p_wt EGFR_wt(S~P) +# Species Sos1_tot_wt SOS1_wt() +# Species RAS_tot_wt RAS_wt() +# Species RAF_tot_wt RAF_wt() +# Species MEK1_tot_wt MEK1_wt() +# Species MEK2_tot_wt MEK2_wt() +# Species ERK_tot ERK_wt() +# +# +# ## Dimer levels ---------------------------------------------------------- +# # +# Molecules MEK1_homo_dim_wt MEK1_wt(d!1).MEK1_wt(d!1) +# Molecules MEK2_homo_dim_wt MEK2_wt(d!1).MEK2_wt(d!1) +# Molecules MEK_hetero_dim_wt MEK1_wt(d!1).MEK2_wt(d!1) + + + ## Publication observables ----------------------------------------------- + # + Species pSos1_wt SOS1_wt(S~P) + Species pEGFR_wt EGFR_wt(S~P) + Species pERK1_2_wt ERK_wt(S1~Ypp) + # + Species MEK1_pRDS_wt MEK1_wt(S1~Ypp) + Species MEK2_pRDS_wt MEK2_wt(S1~Ypp) + Species MEK_pRDS_T292D MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) + +end observables + +end model +# ============================================================================== + + +#generate_network({overwrite=>1}); +#writeMfile(); + + +setParameter("c1",0.02); +simulate({suffix=>"T292D",method=>"ode",t_end=>3600,n_steps=>3600}); + +# ============================================================================== +# EOF + + + diff --git a/Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_WT.bngl b/Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_WT.bngl new file mode 100644 index 00000000..ca254ea1 --- /dev/null +++ b/Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_WT.bngl @@ -0,0 +1,534 @@ +begin model +# ============================================================================== +# # +# # +# MEK1-MEK2 Heterodimerization-based ERK Cascade Model # +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # +# # +# The model includes the negative feedback from ERK to MEK1 and its mediation # +# to MEK2 via heterodimerization. The code describes the events taking place # +# in WT MEFs. # +# # +# This code features the article entitled: # +# # +# "MEK1 and MEK2 differentially control the duration and amplitude # +# of the ERK cascade response" # +# # +# by Pawel Kocieniewski and Tomasz Lipniacki (Physical Biology, 2013). # +# Additional work with PyBNF and parameterization by Miller et al. (2025). # +# # +# ...:::*:::... # +# # +# The experimental perturbations described in the paper are simulated as # +# follows: # +# # +# a) MEK1 knock-out -- setting MEK1 content to zero (MEK1_0 = 0); # +# # +# b) MEK1 dimerization ablation (N78G mutant) -- disabling MEK1 homo- and # +# dimerization (set constants b2 = 0 and b4 = 0); # +# # +# c) MEK1 negative feedback ablation (T292A mutant) -- disabling MEK1 # +# Thr292 phosphorylation rule (set constant p4 = 0); # +# # +# d) MEK1 constitutive MEK1 repression (T292D mutant): # +# # +# i) -- setting total intial MEK1 phosphorylated at Thr292 (replace # +# MEK1(d,T292~Y,S1~Y) by MEK1(d,T292~P,S1~Y), # +# # +# ii) -- disabling MEK1 Thr292p dephosphorylation (set constant u4 = 0), # +# # +# iii) -- attenuate MEK1-Thr292p/PHP binding rate to reflect the lower # +# affinity of phosphomimetic substitution with respect to Thr 292P # +# (set b5 = b5/N, N = 3). # +# # +# ...:::*:::... # +# # +# Last changes: # +# # +# * Ely F. Miller Fri June 27 12:37:29 PST 2025 # +# # +# ============================================================================== + +begin parameters + +## General -------------------------------------------------------------- +# +MEK1_fraction 0.67 # MEK1 fraction of total MEKs content +X 5 # MEK2-to-MEK1 kinase activity ratio + + +## Concentrations of species --------------------------------------------- +# +EGFR_0 4.999382777809e+05 # initial EGFR level, resting cell steady state + #EGFR_steady 4.999382777809e+05 +SOS1_0 1.999753111124e+05 # initial Sos1 level, resting cell steady state + #SOS1_steady 1.999753111124e+05 +RAS_0 500000 # initial RAS level, constant +RAF_0 500000 # initial RAF level, constant +MEK_tot_0 200000 # initial MEK1 and MEK2 total level, constant +MEK1_0 MEK_tot_0*MEK1_fraction # initial MEK1 level, constant +MEK1_0_T292p 0 # initial MEK1-Thr292p level +MEK2_0 MEK_tot_0*(1-MEK1_fraction) # initial MEK2 level, constant +ERK_0 3000000 # initial combined ERK1 and ERK2 level, constant +PHP_MEK_0 3000000 # initial PHP level, constant + + +## Assembly and dynamics of the EGFR receptor complexes ------------------ +# +#s1 2.5 # EGFR receptor subunit constitutive production +#d1 5e-6 # EGFR receptor subunit constitutive degradation +#s2 1 # Sos1 constitutive production +#d2 5e-6 # Sos1 constitutive degradation +c1 0 # formation of EGFR receptor subunit/ligand complex -- SIGNAL +#c1_init c1_init__FREE #0 # c1 value prior to stimulation with ligand +c1_L c1_L__FREE #0.02 # c1 value after stimulation with ligand +c2 c2__FREE #2e-7 # EGFR receptor dimerization due ligand +t1 t1__FREE #100 # EGFR subunits transphosphorylation in EGFR dimer +d3 d3__FREE #1e-3 # degradation of ligand-bound dimer complexes +b1 b1__FREE #4e-8 # association of phosphorylated receptor EGFR subunits with Sos1 +n1 n1__FREE #2e-3 # disassociation of EGFR receptor subunits from Sos1 + + +## MEK1 and MEK2 homo- and heterodimerization ---------------------------- +# +b2 b2__FREE #1e-5 # MEK1 homodimer formation +n2 n2__FREE #1e-3 # MEK1 dimer dissociation +b3 b3__FREE #1e-5 # MEK2 homodimer formation +n3 n3__FREE #3e-2 # MEK2 homodimer dissociation +b4 b4__FREE #1e-5 #MEK1 and MEK2 heterodimer formation +n4 n4__FREE #1e-3 #MEK1 and MEK2 heterodimer dissociation + + +## Signal transduction through RAF, MEK1/2, and ERK ---------------------- +# +a1 a1__FREE #1.5e-7 # activation of Ras by EGFR-Sos1 complex (exchange of GDP for GTP) +i1 i1__FREE #2e-2 # inactivation of RAS (hydrolysis of bound GTP to GDP) +a2 a2__FREE #4e-8 # activation of RAF by RAS-GTP +i2 i2__FREE #1e-2 # inactivation of RAF +p1 p1__FREE #1.5e-7 # phosphorylation of MEK1 and MEK2 on the activation sites by RAF +u1 u1__FREE #5e-3 # dephosphorylation of MEK1 and MEK2 on the activation sites +p2a p2a__FREE #1e-6 # phosphorylation of ERK on the activation sites by MEK1 +p2b p2b__FREE*5 #X*p2a # phosphorylation of ERK on the activation sites by MEK2 +u2 u2__FREE #2e-2 # dephosphorylation of ERK on the activation sites + + +## Phosphorylation and dephosphorylation --------------------------------- +## of feedback sites of Sos1 and MEK1 (Thr292) +# +p3 p3__FREE #2e-9 #feedback phosphorylation of Sos1 by active ERK +u3 u3__FREE #1e-3 #dephosphorylation of the Sos1 feedback site +p4 p4__FREE #1.2e-9 #feedback phosphorylation of MEK1 by ERK +u4 u4__FREE #2e-4 #dephosphorylation of the MEK1 feedback site (Thr292) + +## Interactions of PHP with Thr292p of MEK1 ------------------------------ +# +b5 b5__FREE #4e-9 # PHP phosphatse binding to Thr292p of MEK1 +n5 n5__FREE #2e-4 # dissociation of PHP phosphatase from Thr292p of MEK1 +u5 u5__FREE #20 # dephosphorylation of MEK1 and MEK2 on the activation sites +# by MEK1-bound PHP phosphatase + + +scalepEGFR scalepEGFR__FREE # scaling factor to make model pEGFR output comparable to published AU units phosphorylation +scalepERK scalepERK__FREE # scaling factor to make model pERK output comparable to published AU units phosphorylation +scalepSos1 scalepSos1__FREE # scaling factor to make model pSos1 output comparable to published AU units phosphorylation +end parameters + + +# ============================================================================== + + +begin molecule types + +## EGFR receptor subunit +# --------------------- +# +# lig -- indicates whether subunit is ligand-bound (B) or not (U) +# sos -- SOS1 binding domain +# dim -- subunit dimerization domain +# S -- indicates whether subunit has undergone phosphorylation +# (P) or not (U) due to subunit transphosphorylation +# +EGFR_wt(lig~U~B,sos,dim,S~U~P) + + +## SOS1 Guanine Exchange Factor +# ---------------------------- +# +# egfr -- EGFR receptor subunit binding domain. In reality this interaction +# is mediated by Grb2 adapter protein. For sake of simplicity, +# we assume the interaction to be direct. +# S -- indicates whether Sos1 has undergone feedback phosphorylation by ERK. +# Sos1 possesses at least 4 feedback phosphorlyation sites. For +# simplicity sake we model it as a single site. +# +SOS1_wt(egfr,S~U~P) + + +## RAS GTPase +# ---------- +# +# nt -- indicates whether RAS is bound to GTP (activated) or to GDP +# (inactivated). +# +RAS_wt(nt~GDP~GTP) + + +## RAF kinase +# ---------- +# +# S -- indicates whether RAS is active (A) or inactive (I). +# +RAF_wt(S~A~I) + + +## MEK1 kinase +# ----------- +# +# d -- MEK1 homo- and heterodimerization domain. +# S1 -- indicates whether MEK1 is unphosphorylated (Y), monophosphorylated +# (Yp) or double phosphorylated (Ypp). Double phosphorylation +# is considered activating. +# T292 -- represents Thr292 residue, which undergoes feedback phosphorylation +# (Yp) by ERK. When phosphorylated, it becomes a binding domain +# for PHP phosphatase. +# +MEK1_wt(d,T292~Y~Yp,S1~Y~Yp~Ypp) + + +## MEK2 kinase +# ----------- +# +# d -- MEK2 homo- and heterodimerization domain. +# S1 -- indicates whether MEK2 is unphosphorylated (Y), monophosphorylated +# (Yp) or double phosphorylated (Ypp). Double phosphorylation +# is considered activating. +# +MEK2_wt(d,S1~Y~Yp~Ypp) + + +## ERK +# ----- +# +# S1 -- indicates whether ERK is unphosphorylated (Y), monophosphorylated +# (Yp) or double phosphorylated (Ypp). Double phosphorylation +# is considered activating. +# +ERK_wt(S1~Y~Yp~Ypp) + + +## PHP (MEK phosphatase that binds to Thr292p) +# ----- +# +# mek -- MEK1 binding domain at MEK1-Thr292p. +# +PHP_wt(mek) + + +## Dummy species to simulate constant de novo synthesis reactions +# (Source) and removal/degradation (Sink). +# +Source_wt() +# +Sink_wt() + +counter() +end molecule types + + +# ============================================================================== + +begin species + +EGFR_wt(lig~U,sos,dim,S~U) EGFR_0 +SOS1_wt(egfr,S~U) SOS1_0 +RAS_wt(nt~GDP) RAS_0 +RAF_wt(S~I) RAF_0 +MEK1_wt(d,T292~Y,S1~Y) MEK1_0 +MEK1_wt(d,T292~Yp,S1~Y) MEK1_0_T292p +MEK2_wt(d,S1~Y) MEK2_0 +ERK_wt(S1~Y) ERK_0 +PHP_wt(mek) PHP_MEK_0 + +#Source_wt() 1 +#Sink_wt() 0 + +#counter() 0 +end species + + +# ============================================================================== + + +begin reaction rules + +### WT MODEL + +## Rule 1. Constitutive production and degradation of EGFR subunit. +# +#Source_wt() -> Source_wt() + EGFR_wt(lig~U,sos,dim,S~U) s1 +#EGFR_wt(sos,dim,S~U) -> Sink_wt() d1 + + +## Rule 2. Constitutive production and degradation of SOS1. +# +#Source_wt() -> Source_wt() + SOS1_wt(egfr,S~U) s2 +#SOS1_wt(egfr,S~U) -> Sink_wt() d2 + + +## Rule 3. MEK1 and MEK2 homo- and heterodimerization. +# +MEK1_wt(d) + MEK1_wt(d) <-> MEK1_wt(d!1).MEK1_wt(d!1) b2,n2 +MEK2_wt(d) + MEK2_wt(d) <-> MEK2_wt(d!1).MEK2_wt(d!1) b3,n3 +MEK2_wt(d) + MEK1_wt(d) <-> MEK2_wt(d!1).MEK1_wt(d!1) b4,n4 + + +## Rule 4. Binding of EGFR receptor subunit with the ligand. +# +EGFR_wt(lig~U,dim,sos,S~U) -> EGFR_wt(lig~B,dim,sos,S~U) c1 + + +## Rule 5. Dimerization of ligand-bound receptors. +# +EGFR_wt(lig~B,dim,sos,S~U) + EGFR_wt(lig~B,dim,sos,S~U) -> \ +EGFR_wt(lig~B,dim!1,sos,S~U).EGFR_wt(lig~B,dim!1,sos,S~U) c2 + + +## Rule 6. Transphosphorylation of dimerized EGFR receptor subunits. +# +EGFR_wt(lig~B,dim!+,sos,S~U) -> EGFR_wt(lig~B,dim!+,sos,S~P) t1 + + +## Rule 7. Binding of a dimerized transphosphorylated EGFR receptor +# subunit to Sos1. +# +EGFR_wt(lig~B,dim!+,sos,S~P) + SOS1_wt(egfr,S~U) <-> \ +EGFR_wt(lig~B,dim!+,sos!1,S~P).SOS1_wt(egfr!1,S~U) b1,n1 + + +## Rule 8. Degradation of EGFR dimers. +# +EGFR_wt(lig~B,dim!1,sos!?,S~P).EGFR_wt(lig~B,dim!1,sos!?,S~P) -> Sink_wt() d3 + + +## Rule 9. Activation of RAS by EGFR-Sos1 complex. +# +EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GDP) -> \ +EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) + RAS_wt(nt~GTP) a1 + + +## Rule 10. Deactivation of RAS. +# +RAS_wt(nt~GTP) -> RAS_wt(nt~GDP) i1 + + +## Rule 11. Activation of Raf by activated RAS. +# +RAS_wt(nt~GTP) + RAF_wt(S~I) -> \ +RAS_wt(nt~GTP) + RAF_wt(S~A) a2 + + +## Rule 12. Raf Deactivation. +# +RAF_wt(S~A) -> RAF_wt(S~I) i2 + + +## Rule 13. Phosphorylation of MEK1 on activating sites by RAF. +# +MEK1_wt(S1~Y) + RAF_wt(S~A) -> \ +MEK1_wt(S1~Yp) + RAF_wt(S~A) 2*p1 +# +MEK1_wt(S1~Yp) + RAF_wt(S~A) -> \ +MEK1_wt(S1~Ypp) + RAF_wt(S~A) p1 + + +## Rule 14. Dephosphorylation of MEK1 on activating sites. +# +MEK1_wt(S1~Ypp) -> MEK1_wt(S1~Yp) 2*u1 +# +MEK1_wt(S1~Yp) -> MEK1_wt(S1~Y) u1 + + +## Rule 15. Phosphorylation of MEK2 on activating sites by RAF. +# +MEK2_wt(S1~Y) + RAF_wt(S~A) -> \ +MEK2_wt(S1~Yp) + RAF_wt(S~A) 2*p1 +# +MEK2_wt(S1~Yp) + RAF_wt(S~A) -> \ +MEK2_wt(S1~Ypp) + RAF_wt(S~A) p1 + + +## Rule 16. Dephosphorylation of MEK2 on activating sites. +# +MEK2_wt(S1~Ypp) -> MEK2_wt(S1~Yp) 2*u1 +# +MEK2_wt(S1~Yp) -> MEK2_wt(S1~Y) u1 + + +## Rule 17. Activation of ERK by MEK1. +# +ERK_wt(S1~Y) + MEK1_wt(S1~Ypp) -> \ +ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) 2*p2a +# +ERK_wt(S1~Yp) + MEK1_wt(S1~Ypp) -> \ +ERK_wt(S1~Ypp) + MEK1_wt(S1~Ypp) p2a + + +## Rule 18. Activation of ERK by MEK2. +# +ERK_wt(S1~Y) + MEK2_wt(S1~Ypp) -> \ +ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) 2*p2b +# +ERK_wt(S1~Yp) + MEK2_wt(S1~Ypp) -> \ +ERK_wt(S1~Ypp) + MEK2_wt(S1~Ypp) p2b + + +## Rule 19. Dephosphorylation of ERK on activating sites. +# +ERK_wt(S1~Ypp) -> ERK_wt(S1~Yp) 2*u2 +# +ERK_wt(S1~Yp) -> ERK_wt(S1~Y) u2 + + +### NEGATIVE FEEDBACK BY ERK + +## Rule 20. Feedback phosphorylation of Sos1 by ERK. +# +SOS1_wt(egfr,S~U) + ERK_wt(S1~Ypp) -> \ +SOS1_wt(egfr,S~P) + ERK_wt(S1~Ypp) p3 + +## Rule 21. Dephosphorylation of the ERK-mediated negative feedback +# site of Sos1. +# +SOS1_wt(egfr,S~P) -> SOS1_wt(egfr,S~U) u3 + + +## Rule 22. Feedback Phosphorylation of MEK1 by ERK on Thr292. +# +MEK1_wt(T292~Y) + ERK_wt(S1~Ypp) -> \ +MEK1_wt(T292~Yp)+ ERK_wt(S1~Ypp) p4 + + +## Rule 23. Dephosphorylation of MEK1 on the negative feedback site (Thr292). +# +MEK1_wt(T292~Yp) -> MEK1_wt(T292~Y) u4 + + +## Rule 24. PHP Attachment to phosphorylated Thr292 of MEK1. +# +MEK1_wt(T292~Yp) + PHP_wt(mek) <-> \ +MEK1_wt(T292~Yp!1).PHP_wt(mek!1) b5,n5 + + +## Rule 25. Dephosphorylation of MEK1 on activating sites by the bound PHP. +# +MEK1_wt(T292~Yp!1,S1~Ypp).PHP_wt(mek!1) -> \ +MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) 2*u5 +# +MEK1_wt(T292~Yp!1,S1~Yp).PHP_wt(mek!1) -> \ +MEK1_wt(T292~Yp!1,S1~Y).PHP_wt(mek!1) u5 + + +## Rule 26. Dephosphorylation of the activating sites of MEK1 and MEK2 +# in the dimer with PHP-bound MEK1. +# +MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Ypp) -> \ +MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) 2*u5 +# +MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Yp) -> \ +MEK1_wt(d!1,T292~Yp!+).MEK1_wt(d!1,S1~Y) u5 +# +MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Ypp) -> \ +MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) 2*u5 +# +MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Yp) -> \ +MEK1_wt(d!1,T292~Yp!+).MEK2_wt(d!1,S1~Y) u5 + +#0->counter() 1 +end reaction rules + + +# ============================================================================== + + +begin observables + +# ## Activity -------------------------------------------------------------- +# # +# Species EGFR_Lig_wt EGFR_wt(lig~B) +# Species EGFR_SOS_complex_wt EGFR_wt(sos!1,S~P).SOS1_wt(egfr!1,S~U) +# Species RAS_active_WT RAS_wt(nt~GTP) +# Species RAF_active_WT RAF_wt(S~A) +# Species MEK1_active_WT MEK1_wt(S1~Ypp) +# Species MEK2_active_WT MEK2_wt(S1~Ypp) +# Species MEK_total_active_WT MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) +# Species ERK_active_WT ERK_wt(S1~Ypp) +# +# +# ## Negative feedback ----------------------------------------------------- +# Species SOS1_P_wt SOS1_wt(egfr,S~P) +# Species MEK1_T292p_wt MEK1_wt(T292~Yp!?) +# Species MEK1_Phosphatase_Complex_wt MEK1_wt(T292~Yp!+) +# +# +# ## Species levels -------------------------------------------------------- +# # +# Species EGFR_tot_wt EGFR_wt() +# Species EGFR_mono_tot_wt EGFR_wt(dim) +# Species EGFR_dim_tot_wt EGFR_wt(dim!1).EGFR_wt(dim!1) +# Species EGFR_p_wt EGFR_wt(S~P) +# Species Sos1_tot_wt SOS1_wt() +# Species RAS_tot_wt RAS_wt() +# Species RAF_tot_wt RAF_wt() +#Species MEK1_tot_wt MEK1_wt() +#Species MEK2_tot_wt MEK2_wt() +# Species ERK_tot ERK_wt() +# +# +# ## Dimer levels ---------------------------------------------------------- +# # +# Molecules MEK1_homo_dim_wt MEK1_wt(d!1).MEK1_wt(d!1) +# Molecules MEK2_homo_dim_wt MEK2_wt(d!1).MEK2_wt(d!1) +# Molecules MEK_hetero_dim_wt MEK1_wt(d!1).MEK2_wt(d!1) + + +## Publication observables ----------------------------------------------- +# +Species pSos1_wt SOS1_wt(S~P) +Species pEGFR_wt EGFR_wt(S~P) +Species pERK1_2_wt ERK_wt(S1~Ypp) +# +Species MEK1_pRDS_wt MEK1_wt(S1~Ypp) +Species MEK2_pRDS_wt MEK2_wt(S1~Ypp) +Species MEK_pRDS_WT MEK1_wt(S1~Ypp) MEK2_wt(S1~Ypp) + +end observables + +begin functions + +scaled_pEGFR()=pEGFR_wt*scalepEGFR #5.2709948217252634e-05 +scaled_pERK()=pERK1_2_wt*scalepERK #3.891540224026214e-06 +scaled_pSOS1()=pSos1_wt*scalepSos1 #0.00020032075222804925 + +end functions +end model +# ============================================================================== + + + + + + +# ============================================================================== +# EOF + +begin actions + +#generate_network({overwrite=>1}); +#writeMfile(); + + +setParameter("c1",0.02); +simulate({suffix=>"WT",method=>"ode",t_end=>3600,n_steps=>3600,print_functions=>1}); + + +end actions diff --git a/Published/Miller2025_MEK/README.md b/Published/Miller2025_MEK/README.md new file mode 100644 index 00000000..0e41b50c --- /dev/null +++ b/Published/Miller2025_MEK/README.md @@ -0,0 +1,30 @@ +# Miller 2025 - MEK Isoform Models + +MEK isoform variant models curated for PyBioNetGen. + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- MEK_isoform_aMCMC_MEK1_KO.bngl +- MEK_isoform_aMCMC_MEK1_N78G.bngl +- MEK_isoform_aMCMC_MEK1_T292A.bngl +- MEK_isoform_aMCMC_MEK1_T292D.bngl +- MEK_isoform_aMCMC_MEK1_WT.bngl +- MEK_isoform_optimization_DE_MEK1_KO.bngl +- MEK_isoform_optimization_DE_MEK1_N78G.bngl +- MEK_isoform_optimization_DE_MEK1_T292A.bngl +- MEK_isoform_optimization_DE_MEK1_T292D.bngl +- MEK_isoform_optimization_DE_MEK1_WT.bngl + +## Tags + +mek, isoforms, signaling, pybionetgen diff --git a/Published/Miller2025_MEK/metadata.yaml b/Published/Miller2025_MEK/metadata.yaml new file mode 100644 index 00000000..e2e7fb59 --- /dev/null +++ b/Published/Miller2025_MEK/metadata.yaml @@ -0,0 +1,25 @@ +id: "Miller2025_MEK" +name: "Miller 2025 - MEK Isoform Models" +description: "MEK isoform variant models curated for PyBioNetGen." +tags: ["mek", "isoforms", "signaling", "pybionetgen"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_repository: "bionetgen-web-simulator" +collection: + type: "parameter-fit-variants" + parent_model: "Miller2025_MEK_template" + variant_key: "isoform" + count: 10 +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/ModelZAP/Model_ZAP.bngl b/Published/ModelZAP/Model_ZAP.bngl new file mode 100644 index 00000000..28461f39 --- /dev/null +++ b/Published/ModelZAP/Model_ZAP.bngl @@ -0,0 +1,300 @@ +begin model + +begin parameters + Ve 0.05 + Vc 25 + A 25 + f 602.3 + kon (0.0017/100.00)/Ve + koff 0.01 + Kab 0.002 + KB Kab/A + KU 0.01 + kp 0.015/A + kd 0.001 + KZB 0.0083 + kzb KZB/Vc + kzu 0.125 + kzp 4.98E-5/Vc + kzps 4.98E-5/Vc + kzd 5.64E-5/Vc + ksbPP 4.15E-4/Vc + ksuPP 1.7 + ksbU 4.15E-4/Vc + ksuU 1.7 + klb 6.7E-4/Vc + klu 0.004 + kdl 0.07 + KPR 0.01 + kh 10000 + KSB 0.0083 + ksb KSB/Vc + ksu 0.125 + ksbss ksb*0.1 + KSA0 0.0 + KST0 0.0 + ksa KSA0 + kst KST0/Vc + ksi 1.21 + ksil 0.014/Vc + ksih 0.025/Vc + ksd 5.64E-5/Vc + kfd 0.01 + L0 60*A + R0 80*A + A0 80*A + LCK0 390*A + Z0 1130.5697757365117 + ZAP0 Z0*Vc + SS0 0.0 + SYK0 SS0*Vc + S0 180*Vc + CBL0 141*Vc + _rateLaw1 1000 +end parameters + +begin molecule types + A(State~UZAP~PZAP~SHP~uSYK~pSYK,CBL) + CBL(site) + CD16(lig,receptor) + LCK() + Ligand(Site) + Zeta(receptor,ITAM1~U~PP,ITAM2~U~PP,ITAM3~U~PP,ITAM4~U~PP,ITAM5~U~PP,ITAM6~U~PP) + dead() +end molecule types + +begin species + A(CBL,State~UZAP) ZAP0 + Zeta(ITAM1~U,ITAM2~U,ITAM3~U,ITAM4~U,ITAM5~U,ITAM6~U,receptor) A0 + LCK() LCK0 + Ligand(Site) L0 + CD16(lig,receptor) R0 + A(CBL,State~SHP) S0 + CBL(site) CBL0 + A(CBL,State~uSYK) SYK0 +end species + +begin observables + Molecules pSYK_total A(State~pSYK!?) + Molecules pSYK_free A(State~pSYK) + Molecules pSYK_bound A(State~pSYK!+) + Molecules PZAP_total A(State~PZAP!?) + Molecules PZAP_free A(State~PZAP) + Molecules PZAP_bound A(State~PZAP!+) + Molecules tot_bound_ZAP A(State~UZAP!+),A(State~PZAP!+) + Molecules tot_bound_SYK A(State~uSYK!+),A(State~pSYK!+) + Molecules bound_phosph_zeta Zeta(receptor!+,ITAM1~PP!?),Zeta(receptor!+,ITAM2~PP!?),Zeta(receptor!+,ITAM3~PP!?),Zeta(receptor!+,ITAM4~PP!?),Zeta(receptor!+,ITAM5~PP!?),Zeta(receptor!+,ITAM6~PP!?) + Molecules open_U_zeta Zeta(receptor!+,ITAM1~U),Zeta(receptor!+,ITAM2~U),Zeta(receptor!+,ITAM3~U),Zeta(receptor!+,ITAM4~U),Zeta(receptor!+,ITAM5~U),Zeta(receptor!+,ITAM6~U) + Molecules bound_U_zeta Zeta(receptor!+,ITAM1~U!?),Zeta(receptor!+,ITAM2~U!?),Zeta(receptor!+,ITAM3~U!?),Zeta(receptor!+,ITAM4~U!?),Zeta(receptor!+,ITAM5~U!?),Zeta(receptor!+,ITAM6~U!?) + Molecules total_phosph_zeta Zeta(ITAM1~PP!?),Zeta(ITAM2~PP!?),Zeta(ITAM3~PP!?),Zeta(ITAM4~PP!?),Zeta(ITAM5~PP!?),Zeta(ITAM6~PP!?) + Molecules tot_bound_SHP A(State~SHP!+) + Molecules lig_receptor_complex CD16(lig!1).Ligand(Site!1) + Molecules Receptor CD16(lig!+),CD16(lig) + Molecules zeta Zeta(receptor!+),Zeta(receptor) + Molecules Lig Ligand(Site!+),Ligand(Site) +end observables + +begin reaction rules + ligand_binding: Ligand(Site) + CD16(lig,receptor) <-> CD16(lig!1,receptor).Ligand(Site!1) kon,koff + Adaptor_binding: CD16(lig!1,receptor).Ligand(Site!1) + Zeta(receptor,ITAM1~U,ITAM2~U,ITAM3~U,ITAM4~U,ITAM5~U,ITAM6~U) <-> Zeta(receptor!1,ITAM1~U,ITAM2~U,ITAM3~U,ITAM4~U,ITAM5~U,ITAM6~U).CD16(lig!2,receptor!1).Ligand(Site!2) KB,KU + ITAM1_phosphorylation: LCK() + Zeta(receptor!+,ITAM1~U) -> LCK() + Zeta(receptor!+,ITAM1~PP) kp + ITAM2_phosphorylation: LCK() + Zeta(receptor!+,ITAM2~U) -> LCK() + Zeta(receptor!+,ITAM2~PP) kp + ITAM3_phosphorylation: LCK() + Zeta(receptor!+,ITAM3~U) -> LCK() + Zeta(receptor!+,ITAM3~PP) kp + ITAM4_phosphorylation: LCK() + Zeta(receptor!+,ITAM4~U) -> LCK() + Zeta(receptor!+,ITAM4~PP) kp + ITAM5_phosphorylation: LCK() + Zeta(receptor!+,ITAM5~U) -> LCK() + Zeta(receptor!+,ITAM5~PP) kp + ITAM6_phosphorylation: LCK() + Zeta(receptor!+,ITAM6~U) -> LCK() + Zeta(receptor!+,ITAM6~PP) kp + ITAM1_dephosphorylation: Zeta(receptor!+,ITAM1~PP) -> Zeta(receptor!+,ITAM1~U) kd + ITAM2_dephosphorylation: Zeta(receptor!+,ITAM2~PP) -> Zeta(receptor!+,ITAM2~U) kd + ITAM3_dephosphorylation: Zeta(receptor!+,ITAM3~PP) -> Zeta(receptor!+,ITAM3~U) kd + ITAM4_dephosphorylation: Zeta(receptor!+,ITAM4~PP) -> Zeta(receptor!+,ITAM4~U) kd + ITAM5_dephosphorylation: Zeta(receptor!+,ITAM5~PP) -> Zeta(receptor!+,ITAM5~U) kd + ITAM6_dephosphorylation: Zeta(receptor!+,ITAM6~PP) -> Zeta(receptor!+,ITAM6~U) kd + PZAP_binding_ITAM1: A(State~PZAP,CBL) + Zeta(receptor!+,ITAM1~PP) <-> Zeta(receptor!+,ITAM1~PP!1).A(State~PZAP!1,CBL) kzb,kzu + PZAP_binding_ITAM2: A(State~PZAP,CBL) + Zeta(receptor!+,ITAM2~PP) <-> Zeta(receptor!+,ITAM2~PP!1).A(State~PZAP!1,CBL) kzb,kzu + PZAP_binding_ITAM3: A(State~PZAP,CBL) + Zeta(receptor!+,ITAM3~PP) <-> Zeta(receptor!+,ITAM3~PP!1).A(State~PZAP!1,CBL) kzb,kzu + PZAP_binding_ITAM4: A(State~PZAP,CBL) + Zeta(receptor!+,ITAM4~PP) <-> Zeta(receptor!+,ITAM4~PP!1).A(State~PZAP!1,CBL) kzb,kzu + PZAP_binding_ITAM5: A(State~PZAP,CBL) + Zeta(receptor!+,ITAM5~PP) <-> Zeta(receptor!+,ITAM5~PP!1).A(State~PZAP!1,CBL) kzb,kzu + PZAP_binding_ITAM6: A(State~PZAP,CBL) + Zeta(receptor!+,ITAM6~PP) <-> Zeta(receptor!+,ITAM6~PP!1).A(State~PZAP!1,CBL) kzb,kzu + UZAP_binding_ITAM1: A(State~UZAP,CBL) + Zeta(receptor!+,ITAM1~PP) <-> Zeta(receptor!+,ITAM1~PP!1).A(State~UZAP!1,CBL) kzb,kzu + UZAP_binding_ITAM2: A(State~UZAP,CBL) + Zeta(receptor!+,ITAM2~PP) <-> Zeta(receptor!+,ITAM2~PP!1).A(State~UZAP!1,CBL) kzb,kzu + UZAP_binding_ITAM3: A(State~UZAP,CBL) + Zeta(receptor!+,ITAM3~PP) <-> Zeta(receptor!+,ITAM3~PP!1).A(State~UZAP!1,CBL) kzb,kzu + UZAP_binding_ITAM4: A(State~UZAP,CBL) + Zeta(receptor!+,ITAM4~PP) <-> Zeta(receptor!+,ITAM4~PP!1).A(State~UZAP!1,CBL) kzb,kzu + UZAP_binding_ITAM5: A(State~UZAP,CBL) + Zeta(receptor!+,ITAM5~PP) <-> Zeta(receptor!+,ITAM5~PP!1).A(State~UZAP!1,CBL) kzb,kzu + UZAP_binding_ITAM6: A(State~UZAP,CBL) + Zeta(receptor!+,ITAM6~PP) <-> Zeta(receptor!+,ITAM6~PP!1).A(State~UZAP!1,CBL) kzb,kzu + ZAP_phosphorylation_1: Zeta(receptor!+,ITAM1~PP!1).A(State~UZAP!1,CBL) + LCK() -> Zeta(receptor!+,ITAM1~PP!1).A(State~PZAP!1,CBL) + LCK() kzp + ZAP_phosphorylation_2: Zeta(receptor!+,ITAM2~PP!1).A(State~UZAP!1,CBL) + LCK() -> Zeta(receptor!+,ITAM2~PP!1).A(State~PZAP!1,CBL) + LCK() kzp + ZAP_phosphorylation_3: Zeta(receptor!+,ITAM3~PP!1).A(State~UZAP!1,CBL) + LCK() -> Zeta(receptor!+,ITAM3~PP!1).A(State~PZAP!1,CBL) + LCK() kzp + ZAP_phosphorylation_4: Zeta(receptor!+,ITAM4~PP!1).A(State~UZAP!1,CBL) + LCK() -> Zeta(receptor!+,ITAM4~PP!1).A(State~PZAP!1,CBL) + LCK() kzp + ZAP_phosphorylation_5: Zeta(receptor!+,ITAM5~PP!1).A(State~UZAP!1,CBL) + LCK() -> Zeta(receptor!+,ITAM5~PP!1).A(State~PZAP!1,CBL) + LCK() kzp + ZAP_phosphorylation_6: Zeta(receptor!+,ITAM6~PP!1).A(State~UZAP!1,CBL) + LCK() -> Zeta(receptor!+,ITAM6~PP!1).A(State~PZAP!1,CBL) + LCK() kzp + bound_ZAP_dephosphorylation_SHP: A(State~SHP!+,CBL)%1 + A(State~PZAP!+)%2 -> A(State~SHP!+,CBL)%1 + A(State~UZAP!+)%2 kzd + free_ZAP_dephosphorylation_SHP: A(State~SHP!+,CBL)%1 + A(State~PZAP)%2 -> A(State~SHP!+,CBL)%1 + A(State~UZAP)%2 kzd + SHP_binding_ITAM1_PP: A(State~SHP,CBL) + Zeta(receptor!+,ITAM1~PP) <-> Zeta(receptor!+,ITAM1~PP!1).A(State~SHP!1,CBL) ksbPP,ksuPP + SHP_binding_ITAM2_PP: A(State~SHP,CBL) + Zeta(receptor!+,ITAM2~PP) <-> Zeta(receptor!+,ITAM2~PP!1).A(State~SHP!1,CBL) ksbPP,ksuPP + SHP_binding_ITAM3_PP: A(State~SHP,CBL) + Zeta(receptor!+,ITAM3~PP) <-> Zeta(receptor!+,ITAM3~PP!1).A(State~SHP!1,CBL) ksbPP,ksuPP + SHP_binding_ITAM4_PP: A(State~SHP,CBL) + Zeta(receptor!+,ITAM4~PP) <-> Zeta(receptor!+,ITAM4~PP!1).A(State~SHP!1,CBL) ksbPP,ksuPP + SHP_binding_ITAM5_PP: A(State~SHP,CBL) + Zeta(receptor!+,ITAM5~PP) <-> Zeta(receptor!+,ITAM5~PP!1).A(State~SHP!1,CBL) ksbPP,ksuPP + SHP_binding_ITAM6_PP: A(State~SHP,CBL) + Zeta(receptor!+,ITAM6~PP) <-> Zeta(receptor!+,ITAM6~PP!1).A(State~SHP!1,CBL) ksbPP,ksuPP + SHP_binding_ITAM1_U: A(State~SHP,CBL) + Zeta(receptor!+,ITAM1~U) <-> Zeta(receptor!+,ITAM1~U!1).A(State~SHP!1,CBL) ksbU,ksuU + SHP_binding_ITAM2_U: A(State~SHP,CBL) + Zeta(receptor!+,ITAM2~U) <-> Zeta(receptor!+,ITAM2~U!1).A(State~SHP!1,CBL) ksbU,ksuU + SHP_binding_ITAM3_U: A(State~SHP,CBL) + Zeta(receptor!+,ITAM3~U) <-> Zeta(receptor!+,ITAM3~U!1).A(State~SHP!1,CBL) ksbU,ksuU + SHP_binding_ITAM4_U: A(State~SHP,CBL) + Zeta(receptor!+,ITAM4~U) <-> Zeta(receptor!+,ITAM4~U!1).A(State~SHP!1,CBL) ksbU,ksuU + SHP_binding_ITAM5_U: A(State~SHP,CBL) + Zeta(receptor!+,ITAM5~U) <-> Zeta(receptor!+,ITAM5~U!1).A(State~SHP!1,CBL) ksbU,ksuU + SHP_binding_ITAM6_U: A(State~SHP,CBL) + Zeta(receptor!+,ITAM6~U) <-> Zeta(receptor!+,ITAM6~U!1).A(State~SHP!1,CBL) ksbU,ksuU + pZAP_binds_CBL: A(State~PZAP!+,CBL) + CBL(site) <-> A(State~PZAP!+,CBL!1).CBL(site!1) klb,klu + uZAP_binds_CBL: A(State~UZAP!+,CBL) + CBL(site) <-> A(State~UZAP!+,CBL!1).CBL(site!1) klb,klu + KP_uZAP_CBL_split: A(State~UZAP,CBL!1).CBL(site!1) -> A(State~UZAP,CBL) + CBL(site) kh + KP_pZAP_uZAP_CBL: A(State~PZAP,CBL!1).CBL(site!1) -> A(State~UZAP,CBL!1).CBL(site!1) kh + KP: Zeta(receptor!1).CD16(lig!2,receptor!1).Ligand(Site!2) -> Ligand(Site) + CD16(lig,receptor) + Zeta(receptor) KPR + KP_new_JJ: Zeta(receptor!1).CD16(lig!2,receptor!1).Ligand(Site!2) -> Ligand(Site!1).CD16(lig!1,receptor) + Zeta(receptor) KU + KP_adaptor_dephosph_1: Zeta(receptor,ITAM1~PP!1).A(State~PZAP!1) -> Zeta(receptor,ITAM1~PP!1).A(State~UZAP!1) kh + KP_adaptor_dephosph_2: Zeta(receptor,ITAM2~PP!1).A(State~PZAP!1) -> Zeta(receptor,ITAM2~PP!1).A(State~UZAP!1) kh + KP_adaptor_dephosph_3: Zeta(receptor,ITAM3~PP!1).A(State~PZAP!1) -> Zeta(receptor,ITAM3~PP!1).A(State~UZAP!1) kh + KP_adaptor_dephosph_4: Zeta(receptor,ITAM4~PP!1).A(State~PZAP!1) -> Zeta(receptor,ITAM4~PP!1).A(State~UZAP!1) kh + KP_adaptor_dephosph_5: Zeta(receptor,ITAM5~PP!1).A(State~PZAP!1) -> Zeta(receptor,ITAM5~PP!1).A(State~UZAP!1) kh + KP_adaptor_dephosph_6: Zeta(receptor,ITAM6~PP!1).A(State~PZAP!1) -> Zeta(receptor,ITAM6~PP!1).A(State~UZAP!1) kh + LRZ1_breaking_ITAM1: Zeta(receptor,ITAM1!1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6).A(State!1) -> A(State) + Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) kh + LRZ1_breaking_ITAM2: Zeta(receptor,ITAM1,ITAM2!1,ITAM3,ITAM4,ITAM5,ITAM6).A(State!1) -> A(State) + Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) kh + LRZ1_breaking_ITAM3: Zeta(receptor,ITAM1,ITAM2,ITAM3!1,ITAM4,ITAM5,ITAM6).A(State!1) -> A(State) + Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) kh + LRZ1_breaking_ITAM4: Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4!1,ITAM5,ITAM6).A(State!1) -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State) kh + LRZ1_breaking_ITAM5: Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5!1,ITAM6).A(State!1) -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State) kh + LRZ1_breaking_ITAM6: Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6!1).A(State!1) -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State) kh + LRZ2_breaking_12: Zeta(receptor,ITAM1!1,ITAM2!2,ITAM3,ITAM4,ITAM5,ITAM6).A(State!1)%1.A(State!2)%2 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 kh + LRZ2_breaking_13: Zeta(receptor,ITAM1!1,ITAM2,ITAM3!2,ITAM4,ITAM5,ITAM6).A(State!1)%1.A(State!2)%2 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 kh + LRZ2_breaking_14: Zeta(receptor,ITAM1!1,ITAM2,ITAM3,ITAM4!2,ITAM5,ITAM6).A(State!1)%1.A(State!2)%2 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 kh + LRZ2_breaking_15: Zeta(receptor,ITAM1!1,ITAM2,ITAM3,ITAM4,ITAM5!2,ITAM6).A(State!1)%1.A(State!2)%2 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 kh + LRZ2_breaking_16: Zeta(receptor,ITAM1!1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6!2).A(State!1)%1.A(State!2)%2 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 kh + LRZ2_breaking_23: Zeta(receptor,ITAM1,ITAM2!1,ITAM3!2,ITAM4,ITAM5,ITAM6).A(State!1)%1.A(State!2)%2 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 kh + LRZ2_breaking_24: Zeta(receptor,ITAM1,ITAM2!1,ITAM3,ITAM4!2,ITAM5,ITAM6).A(State!1)%1.A(State!2)%2 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 kh + LRZ2_breaking_25: Zeta(receptor,ITAM1,ITAM2!1,ITAM3,ITAM4,ITAM5!2,ITAM6).A(State!1)%1.A(State!2)%2 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 kh + LRZ2_breaking_26: Zeta(receptor,ITAM1,ITAM2!1,ITAM3,ITAM4,ITAM5,ITAM6!2).A(State!1)%1.A(State!2)%2 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 kh + LRZ2_breaking_34: Zeta(receptor,ITAM1,ITAM2,ITAM3!1,ITAM4!2,ITAM5,ITAM6).A(State!1)%1.A(State!2)%2 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 kh + LRZ2_breaking_35: Zeta(receptor,ITAM1,ITAM2,ITAM3!1,ITAM4,ITAM5!2,ITAM6).A(State!1)%1.A(State!2)%2 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 kh + LRZ2_breaking_36: Zeta(receptor,ITAM1,ITAM2,ITAM3!1,ITAM4,ITAM5,ITAM6!2).A(State!1)%1.A(State!2)%2 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 kh + LRZ2_breaking_45: Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4!1,ITAM5!2,ITAM6).A(State!1)%1.A(State!2)%2 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 kh + LRZ2_breaking_46: Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4!1,ITAM5,ITAM6!2).A(State!1)%1.A(State!2)%2 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 kh + LRZ2_breaking_56: Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5!1,ITAM6!2).A(State!1)%1.A(State!2)%2 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 kh + LRZ3_breaking_123: Zeta(receptor,ITAM1!1,ITAM2!2,ITAM3!3,ITAM4,ITAM5,ITAM6).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_124: Zeta(receptor,ITAM1!1,ITAM2!2,ITAM3,ITAM4!3,ITAM5,ITAM6).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_125: Zeta(receptor,ITAM1!1,ITAM2!2,ITAM3,ITAM4,ITAM5!3,ITAM6).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_126: Zeta(receptor,ITAM1!1,ITAM2!2,ITAM3,ITAM4,ITAM5,ITAM6!3).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_134: Zeta(receptor,ITAM1!1,ITAM2,ITAM3!2,ITAM4!3,ITAM5,ITAM6).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_135: Zeta(receptor,ITAM1!1,ITAM2,ITAM3!2,ITAM4,ITAM5!3,ITAM6).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_136: Zeta(receptor,ITAM1!1,ITAM2,ITAM3!2,ITAM4,ITAM5,ITAM6!3).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_145: Zeta(receptor,ITAM1!1,ITAM2,ITAM3,ITAM4!2,ITAM5!3,ITAM6).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_146: Zeta(receptor,ITAM1!1,ITAM2,ITAM3,ITAM4!2,ITAM5,ITAM6!3).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_156: Zeta(receptor,ITAM1!1,ITAM2,ITAM3,ITAM4,ITAM5!2,ITAM6!3).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_234: Zeta(receptor,ITAM1,ITAM2!1,ITAM3!2,ITAM4!3,ITAM5,ITAM6).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_235: Zeta(receptor,ITAM1,ITAM2!1,ITAM3!2,ITAM4,ITAM5!3,ITAM6).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_236: Zeta(receptor,ITAM1,ITAM2!1,ITAM3!2,ITAM4,ITAM5,ITAM6!3).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_245: Zeta(receptor,ITAM1,ITAM2!1,ITAM3,ITAM4!2,ITAM5!3,ITAM6).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_246: Zeta(receptor,ITAM1,ITAM2!1,ITAM3,ITAM4!2,ITAM5,ITAM6!3).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_256: Zeta(receptor,ITAM1,ITAM2!1,ITAM3,ITAM4,ITAM5!2,ITAM6!3).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_345: Zeta(receptor,ITAM1,ITAM2,ITAM3!1,ITAM4!2,ITAM5!3,ITAM6).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_346: Zeta(receptor,ITAM1,ITAM2,ITAM3!1,ITAM4!2,ITAM5,ITAM6!3).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_356: Zeta(receptor,ITAM1,ITAM2,ITAM3!1,ITAM4,ITAM5!2,ITAM6!3).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ3_breaking_456: Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4!1,ITAM5!2,ITAM6!3).A(State!1)%1.A(State!2)%2.A(State!3)%3 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 kh + LRZ4_breaking_12: Zeta(receptor,ITAM1,ITAM2,ITAM3!1,ITAM4!2,ITAM5!3,ITAM6!4).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 kh + LRZ4_breaking_13: Zeta(receptor,ITAM1,ITAM2!1,ITAM3,ITAM4!2,ITAM5!3,ITAM6!4).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 kh + LRZ4_breaking_14: Zeta(receptor,ITAM1,ITAM2!1,ITAM3!2,ITAM4,ITAM5!3,ITAM6!4).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 kh + LRZ4_breaking_15: Zeta(receptor,ITAM1,ITAM2!1,ITAM3!2,ITAM4!3,ITAM5,ITAM6!4).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 kh + LRZ4_breaking_16: Zeta(receptor,ITAM1,ITAM2!1,ITAM3!2,ITAM4!3,ITAM5!4,ITAM6).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 kh + LRZ4_breaking_23: Zeta(receptor,ITAM1!1,ITAM2,ITAM3,ITAM4!2,ITAM5!3,ITAM6!4).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 kh + LRZ4_breaking_24: Zeta(receptor,ITAM1!1,ITAM2,ITAM3!2,ITAM4,ITAM5!3,ITAM6!4).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 kh + LRZ4_breaking_25: Zeta(receptor,ITAM1!1,ITAM2,ITAM3!2,ITAM4!3,ITAM5,ITAM6!4).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 kh + LRZ4_breaking_26: Zeta(receptor,ITAM1!1,ITAM2,ITAM3!2,ITAM4!3,ITAM5!4,ITAM6).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 kh + LRZ4_breaking_34: Zeta(receptor,ITAM1!1,ITAM2!2,ITAM3,ITAM4,ITAM5!3,ITAM6!4).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 kh + LRZ4_breaking_35: Zeta(receptor,ITAM1!1,ITAM2!2,ITAM3,ITAM4!3,ITAM5,ITAM6!4).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 kh + LRZ4_breaking_36: Zeta(receptor,ITAM1!1,ITAM2!2,ITAM3,ITAM4!3,ITAM5!4,ITAM6).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 kh + LRZ4_breaking_45: Zeta(receptor,ITAM1!1,ITAM2!2,ITAM3!3,ITAM4,ITAM5,ITAM6!4).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 kh + LRZ4_breaking_46: Zeta(receptor,ITAM1!1,ITAM2!2,ITAM3!3,ITAM4,ITAM5!4,ITAM6).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 kh + LRZ4_breaking_56: Zeta(receptor,ITAM1!1,ITAM2!2,ITAM3!3,ITAM4!4,ITAM5,ITAM6).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 kh + LRZ5_breaking_1: Zeta(receptor,ITAM1,ITAM2!1,ITAM3!2,ITAM4!3,ITAM5!4,ITAM6!5).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4.A(State!5)%5 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 + A(State)%5 kh + LRZ5_breaking_2: Zeta(receptor,ITAM1!1,ITAM2,ITAM3!2,ITAM4!3,ITAM5!4,ITAM6!5).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4.A(State!5)%5 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 + A(State)%5 kh + LRZ5_breaking_3: Zeta(receptor,ITAM1!1,ITAM2!2,ITAM3,ITAM4!3,ITAM5!4,ITAM6!5).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4.A(State!5)%5 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 + A(State)%5 kh + LRZ5_breaking_4: Zeta(receptor,ITAM1!1,ITAM2!2,ITAM3!3,ITAM4,ITAM5!4,ITAM6!5).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4.A(State!5)%5 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 + A(State)%5 kh + LRZ5_breaking_5: Zeta(receptor,ITAM1!1,ITAM2!2,ITAM3!3,ITAM4!4,ITAM5,ITAM6!5).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4.A(State!5)%5 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 + A(State)%5 kh + LRZ5_breaking_6: Zeta(receptor,ITAM1!1,ITAM2!2,ITAM3!3,ITAM4!4,ITAM5!5,ITAM6).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4.A(State!5)%5 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 + A(State)%5 kh + LRZ6_breaking: Zeta(receptor,ITAM1!1,ITAM2!2,ITAM3!3,ITAM4!4,ITAM5!5,ITAM6!6).A(State!1)%1.A(State!2)%2.A(State!3)%3.A(State!4)%4.A(State!5)%5.A(State!6)%6 -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) + A(State)%1 + A(State)%2 + A(State)%3 + A(State)%4 + A(State)%5 + A(State)%6 kh + zeta_convert1: Zeta(receptor,ITAM1~PP,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) -> Zeta(receptor,ITAM1~U,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6) kh + zeta_convert2: Zeta(receptor,ITAM1,ITAM2~PP,ITAM3,ITAM4,ITAM5,ITAM6) -> Zeta(receptor,ITAM1,ITAM2~U,ITAM3,ITAM4,ITAM5,ITAM6) kh + zeta_convert3: Zeta(receptor,ITAM1,ITAM2,ITAM3~PP,ITAM4,ITAM5,ITAM6) -> Zeta(receptor,ITAM1,ITAM2,ITAM3~U,ITAM4,ITAM5,ITAM6) kh + zeta_convert4: Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4~PP,ITAM5,ITAM6) -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4~U,ITAM5,ITAM6) kh + zeta_convert5: Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5~PP,ITAM6) -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5~U,ITAM6) kh + zeta_convert6: Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6~PP) -> Zeta(receptor,ITAM1,ITAM2,ITAM3,ITAM4,ITAM5,ITAM6~U) kh + uSYK_binding_ITAM1: A(State~uSYK,CBL) + Zeta(receptor!+,ITAM1~U) <-> Zeta(receptor!+,ITAM1~U!1).A(State~uSYK!1,CBL) ksbss,ksu + uSYK_binding_ITAM2: A(State~uSYK,CBL) + Zeta(receptor!+,ITAM2~U) <-> Zeta(receptor!+,ITAM2~U!1).A(State~uSYK!1,CBL) ksbss,ksu + uSYK_binding_ITAM3: A(State~uSYK,CBL) + Zeta(receptor!+,ITAM3~U) <-> Zeta(receptor!+,ITAM3~U!1).A(State~uSYK!1,CBL) ksbss,ksu + uSYK_binding_ITAM4: A(State~uSYK,CBL) + Zeta(receptor!+,ITAM4~U) <-> Zeta(receptor!+,ITAM4~U!1).A(State~uSYK!1,CBL) ksbss,ksu + uSYK_binding_ITAM5: A(State~uSYK,CBL) + Zeta(receptor!+,ITAM5~U) <-> Zeta(receptor!+,ITAM5~U!1).A(State~uSYK!1,CBL) ksbss,ksu + uSYK_binding_ITAM6: A(State~uSYK,CBL) + Zeta(receptor!+,ITAM6~U) <-> Zeta(receptor!+,ITAM6~U!1).A(State~uSYK!1,CBL) ksbss,ksu + uSYK_binding_ITAM1PP: A(State~uSYK,CBL) + Zeta(receptor!+,ITAM1~PP) <-> Zeta(receptor!+,ITAM1~PP!1).A(State~uSYK!1,CBL) ksb,ksu + uSYK_binding_ITAM2PP: A(State~uSYK,CBL) + Zeta(receptor!+,ITAM2~PP) <-> Zeta(receptor!+,ITAM2~PP!1).A(State~uSYK!1,CBL) ksb,ksu + uSYK_binding_ITAM3PP: A(State~uSYK,CBL) + Zeta(receptor!+,ITAM3~PP) <-> Zeta(receptor!+,ITAM3~PP!1).A(State~uSYK!1,CBL) ksb,ksu + uSYK_binding_ITAM4PP: A(State~uSYK,CBL) + Zeta(receptor!+,ITAM4~PP) <-> Zeta(receptor!+,ITAM4~PP!1).A(State~uSYK!1,CBL) ksb,ksu + uSYK_binding_ITAM5PP: A(State~uSYK,CBL) + Zeta(receptor!+,ITAM5~PP) <-> Zeta(receptor!+,ITAM5~PP!1).A(State~uSYK!1,CBL) ksb,ksu + uSYK_binding_ITAM6PP: A(State~uSYK,CBL) + Zeta(receptor!+,ITAM6~PP) <-> Zeta(receptor!+,ITAM6~PP!1).A(State~uSYK!1,CBL) ksb,ksu + PSYK_binding_ITAM1: A(State~pSYK,CBL) + Zeta(receptor!+,ITAM1~U) <-> Zeta(receptor!+,ITAM1~U!1).A(State~pSYK!1,CBL) ksbss,ksu + PSYK_binding_ITAM2: A(State~pSYK,CBL) + Zeta(receptor!+,ITAM2~U) <-> Zeta(receptor!+,ITAM2~U!1).A(State~pSYK!1,CBL) ksbss,ksu + PSYK_binding_ITAM3: A(State~pSYK,CBL) + Zeta(receptor!+,ITAM3~U) <-> Zeta(receptor!+,ITAM3~U!1).A(State~pSYK!1,CBL) ksbss,ksu + PSYK_binding_ITAM4: A(State~pSYK,CBL) + Zeta(receptor!+,ITAM4~U) <-> Zeta(receptor!+,ITAM4~U!1).A(State~pSYK!1,CBL) ksbss,ksu + PSYK_binding_ITAM5: A(State~pSYK,CBL) + Zeta(receptor!+,ITAM5~U) <-> Zeta(receptor!+,ITAM5~U!1).A(State~pSYK!1,CBL) ksbss,ksu + PSYK_binding_ITAM6: A(State~pSYK,CBL) + Zeta(receptor!+,ITAM6~U) <-> Zeta(receptor!+,ITAM6~U!1).A(State~pSYK!1,CBL) ksbss,ksu + PSYK_binding_ITAM1PP: A(State~pSYK,CBL) + Zeta(receptor!+,ITAM1~PP) <-> Zeta(receptor!+,ITAM1~PP!1).A(State~pSYK!1,CBL) ksb,ksu + PSYK_binding_ITAM2PP: A(State~pSYK,CBL) + Zeta(receptor!+,ITAM2~PP) <-> Zeta(receptor!+,ITAM2~PP!1).A(State~pSYK!1,CBL) ksb,ksu + PSYK_binding_ITAM3PP: A(State~pSYK,CBL) + Zeta(receptor!+,ITAM3~PP) <-> Zeta(receptor!+,ITAM3~PP!1).A(State~pSYK!1,CBL) ksb,ksu + PSYK_binding_ITAM4PP: A(State~pSYK,CBL) + Zeta(receptor!+,ITAM4~PP) <-> Zeta(receptor!+,ITAM4~PP!1).A(State~pSYK!1,CBL) ksb,ksu + PSYK_binding_ITAM5PP: A(State~pSYK,CBL) + Zeta(receptor!+,ITAM5~PP) <-> Zeta(receptor!+,ITAM5~PP!1).A(State~pSYK!1,CBL) ksb,ksu + PSYK_binding_ITAM6PP: A(State~pSYK,CBL) + Zeta(receptor!+,ITAM6~PP) <-> Zeta(receptor!+,ITAM6~PP!1).A(State~pSYK!1,CBL) ksb,ksu + SYK_phosphorylation_ITAM1: Zeta(receptor!+,ITAM1!1).A(State~uSYK!1,CBL) + LCK() -> Zeta(receptor!+,ITAM1!1).A(State~pSYK!1,CBL) + LCK() kzps + SYK_phosphorylation_ITAM2: Zeta(receptor!+,ITAM2!1).A(State~uSYK!1,CBL) + LCK() -> Zeta(receptor!+,ITAM2!1).A(State~pSYK!1,CBL) + LCK() kzps + SYK_phosphorylation_ITAM3: Zeta(receptor!+,ITAM3!1).A(State~uSYK!1,CBL) + LCK() -> Zeta(receptor!+,ITAM3!1).A(State~pSYK!1,CBL) + LCK() kzps + SYK_phosphorylation_ITAM4: Zeta(receptor!+,ITAM4!1).A(State~uSYK!1,CBL) + LCK() -> Zeta(receptor!+,ITAM4!1).A(State~pSYK!1,CBL) + LCK() kzps + SYK_phosphorylation_ITAM5: Zeta(receptor!+,ITAM5!1).A(State~uSYK!1,CBL) + LCK() -> Zeta(receptor!+,ITAM5!1).A(State~pSYK!1,CBL) + LCK() kzps + SYK_phosphorylation_ITAM6: Zeta(receptor!+,ITAM6!1).A(State~uSYK!1,CBL) + LCK() -> Zeta(receptor!+,ITAM6!1).A(State~pSYK!1,CBL) + LCK() kzps + uSYK_binds_CBL: A(State~uSYK!+,CBL) + CBL(site) <-> A(State~uSYK!+,CBL!1).CBL(site!1) klb,klu + pSYK_binds_CBL: A(State~pSYK!+,CBL) + CBL(site) <-> A(State~pSYK!+,CBL!1).CBL(site!1) klb,klu + uSYK_autophosphorylation: A(State~uSYK!+) -> A(State~pSYK!+) ksa + pSYK_transphosphorylation_uSYK: A(State~uSYK!+)%1 + A(State~pSYK!+)%2 -> A(State~pSYK!+)%1 + A(State~pSYK!+)%2 kst + pSYK_autophosphorylation_ITAM1: Zeta(receptor!+,ITAM1~U!1).A(State~pSYK!1) -> Zeta(receptor!+,ITAM1~PP!1).A(State~pSYK!1) ksi + pSYK_autophosphorylation_ITAM2: Zeta(receptor!+,ITAM2~U!1).A(State~pSYK!1) -> Zeta(receptor!+,ITAM2~PP!1).A(State~pSYK!1) ksi + pSYK_autophosphorylation_ITAM3: Zeta(receptor!+,ITAM3~U!1).A(State~pSYK!1) -> Zeta(receptor!+,ITAM3~PP!1).A(State~pSYK!1) ksi + pSYK_autophosphorylation_ITAM4: Zeta(receptor!+,ITAM4~U!1).A(State~pSYK!1) -> Zeta(receptor!+,ITAM4~PP!1).A(State~pSYK!1) ksi + pSYK_autophosphorylation_ITAM5: Zeta(receptor!+,ITAM5~U!1).A(State~pSYK!1) -> Zeta(receptor!+,ITAM5~PP!1).A(State~pSYK!1) ksi + pSYK_autophosphorylation_ITAM6: Zeta(receptor!+,ITAM6~U!1).A(State~pSYK!1) -> Zeta(receptor!+,ITAM6~PP!1).A(State~pSYK!1) ksi + uSYK_transphosphorylation_ITAM1: A(State~uSYK!+) + Zeta(receptor!+,ITAM1~U!?) -> A(State~uSYK!+) + Zeta(receptor!+,ITAM1~PP!?) ksil + uSYK_transphosphorylation_ITAM2: A(State~uSYK!+) + Zeta(receptor!+,ITAM2~U!?) -> A(State~uSYK!+) + Zeta(receptor!+,ITAM2~PP!?) ksil + uSYK_transphosphorylation_ITAM3: A(State~uSYK!+) + Zeta(receptor!+,ITAM3~U!?) -> A(State~uSYK!+) + Zeta(receptor!+,ITAM3~PP!?) ksil + uSYK_transphosphorylation_ITAM4: A(State~uSYK!+) + Zeta(receptor!+,ITAM4~U!?) -> A(State~uSYK!+) + Zeta(receptor!+,ITAM4~PP!?) ksil + uSYK_transphosphorylation_ITAM5: A(State~uSYK!+) + Zeta(receptor!+,ITAM5~U!?) -> A(State~uSYK!+) + Zeta(receptor!+,ITAM5~PP!?) ksil + uSYK_transphosphorylation_ITAM6: A(State~uSYK!+) + Zeta(receptor!+,ITAM6~U!?) -> A(State~uSYK!+) + Zeta(receptor!+,ITAM6~PP!?) ksil + pSYK_transphosphorylation_ITAM1: A(State~pSYK!+) + Zeta(receptor!+,ITAM1~U!?) -> A(State~pSYK!+) + Zeta(receptor!+,ITAM1~PP!?) ksih + pSYK_transphosphorylation_ITAM2: A(State~pSYK!+) + Zeta(receptor!+,ITAM2~U!?) -> A(State~pSYK!+) + Zeta(receptor!+,ITAM2~PP!?) ksih + pSYK_transphosphorylation_ITAM3: A(State~pSYK!+) + Zeta(receptor!+,ITAM3~U!?) -> A(State~pSYK!+) + Zeta(receptor!+,ITAM3~PP!?) ksih + pSYK_transphosphorylation_ITAM4: A(State~pSYK!+) + Zeta(receptor!+,ITAM4~U!?) -> A(State~pSYK!+) + Zeta(receptor!+,ITAM4~PP!?) ksih + pSYK_transphosphorylation_ITAM5: A(State~pSYK!+) + Zeta(receptor!+,ITAM5~U!?) -> A(State~pSYK!+) + Zeta(receptor!+,ITAM5~PP!?) ksih + pSYK_transphosphorylation_ITAM6: A(State~pSYK!+) + Zeta(receptor!+,ITAM6~U!?) -> A(State~pSYK!+) + Zeta(receptor!+,ITAM6~PP!?) ksih + free_SYK_dephosphorylation_SHP: A(State~SHP!+,CBL)%1 + A(State~pSYK)%2 -> A(State~SHP!+,CBL)%1 + A(State~uSYK)%2 ksd + bound_SYK_dephosphorylation_SHP: A(State~SHP!+,CBL)%1 + A(State~pSYK!+)%2 -> A(State~SHP!+,CBL)%1 + A(State~uSYK!+)%2 ksd + KP_adaptor_dephosph_pSYK1: Zeta(receptor,ITAM1!1).A(State~pSYK!1) -> Zeta(receptor,ITAM1!1).A(State~uSYK!1) kh + KP_adaptor_dephosph_pSYK2: Zeta(receptor,ITAM2!1).A(State~pSYK!1) -> Zeta(receptor,ITAM2!1).A(State~uSYK!1) kh + KP_adaptor_dephosph_pSYK3: Zeta(receptor,ITAM3!1).A(State~pSYK!1) -> Zeta(receptor,ITAM3!1).A(State~uSYK!1) kh + KP_adaptor_dephosph_pSYK4: Zeta(receptor,ITAM4!1).A(State~pSYK!1) -> Zeta(receptor,ITAM4!1).A(State~uSYK!1) kh + KP_adaptor_dephosph_pSYK5: Zeta(receptor,ITAM5!1).A(State~pSYK!1) -> Zeta(receptor,ITAM5!1).A(State~uSYK!1) kh + KP_adaptor_dephosph_pSYK6: Zeta(receptor,ITAM6!1).A(State~pSYK!1) -> Zeta(receptor,ITAM6!1).A(State~uSYK!1) kh + KP_pSYK_uSYK_CBL: A(State~pSYK,CBL!1).CBL(site!1) -> A(State~uSYK,CBL!1).CBL(site!1) kh + KP_uSYK_CBL_split: A(State~uSYK,CBL!1).CBL(site!1) -> A(State~uSYK,CBL) + CBL(site) kh + CBL_degrade_ITAM1: Zeta(ITAM1!1).A(State!1,CBL!2).CBL(site!2) -> dead() kdl + CBL_degrade_ITAM2: Zeta(ITAM2!1).A(State!1,CBL!2).CBL(site!2) -> dead() kdl + CBL_degrade_ITAM3: Zeta(ITAM3!1).A(State!1,CBL!2).CBL(site!2) -> dead() kdl + CBL_degrade_ITAM4: Zeta(ITAM4!1).A(State!1,CBL!2).CBL(site!2) -> dead() kdl + CBL_degrade_ITAM5: Zeta(ITAM5!1).A(State!1,CBL!2).CBL(site!2) -> dead() kdl + CBL_degrade_ITAM6: Zeta(ITAM6!1).A(State!1,CBL!2).CBL(site!2) -> dead() kdl + dead_to_CBL: dead() -> CBL(site) + Ligand(Site) _rateLaw1 + Free_pZAP_dephosph: A(State~PZAP) -> A(State~UZAP) kfd + Free_pSYK_dephosph: A(State~pSYK) -> A(State~uSYK) kfd +end reaction rules + +end model + +simulate_nf({t_end=>241,n_steps=>1000}) \ No newline at end of file diff --git a/Published/ModelZAP/README.md b/Published/ModelZAP/README.md new file mode 100644 index 00000000..0a4b78b1 --- /dev/null +++ b/Published/ModelZAP/README.md @@ -0,0 +1,21 @@ +# Model ZAP + +ZAP-70 recruitment + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: nf +- Imported from: published + +## Files + +- Model_ZAP.bngl + +## Tags + +published, immunology, nfsim, model, zap, kon, a, cbl, cd16, lck, ligand, zeta, dead diff --git a/Published/ModelZAP/metadata.yaml b/Published/ModelZAP/metadata.yaml new file mode 100644 index 00000000..96c46abb --- /dev/null +++ b/Published/ModelZAP/metadata.yaml @@ -0,0 +1,22 @@ +id: "Model_ZAP" +name: "Model ZAP" +description: "ZAP-70 recruitment" +tags: ["published", "immunology", "nfsim", "model", "zap", "kon", "a", "cbl", "cd16", "lck", "ligand", "zeta", "dead"] +category: "immunology" +compatibility: + bng2_compatible: false + simulation_methods: ["nf"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/immune-signaling/Model_ZAP.bngl" +playground: + visible: false + gallery_category: "immunology" + featured: false + difficulty: "advanced" diff --git a/Published/Mukhopadhyay2013/Mukhopadhyay_2013.bngl b/Published/Mukhopadhyay2013/Mukhopadhyay_2013.bngl new file mode 100644 index 00000000..29696357 --- /dev/null +++ b/Published/Mukhopadhyay2013/Mukhopadhyay_2013.bngl @@ -0,0 +1,107 @@ +#Enzymatic modifications of TCR zeta and ZAP-70 binding to fully phosphorylate ITAMs. +begin parameters + #Kinase-substrate on rates + ek_on 1e-4 + #Kinase-substrate off rates + ek_off 10.0 + #Kinase catalysis rates + ek_cat 10.0 + #Phosphatase-substrate on rates + fk_on 1e-4 + #Phosphatase-substrate off rates + fk_off 10.0 + #Phosphatase catalysis rates + fk_cat 10.0 + #Binding parameters for ZAP-70 binding + zap_on 1.0 + zap_off1 10 + zap_off2 1 + zap_off3 0.1 + #Total substrate (S_T), kinase (E_T), phosphatase (F_T), and ZAP-70 (Z_T) concentrations + E_T 100 + F_T 100 + S_T 100 + Z_T 5000 +end parameters + +begin molecule types + #Substrate + #Attribute b˜1 indicates that an enzyme is bound to substrate and b˜0 indicates no enzyme is bound + #Attributes Y1, Y2, and Y3 each refer to individual ITAMs. + #Each ITAM can be unphosphorylated (Y˜U), phosphorylated on one tyrosine (Y˜P), or doubly phosphorylated (Y˜2P) + S(b~0~1,Y1~U~P~2P,Y2~U~P~2P,Y3~U~P~2P) + #Kinase + E(b) + #Phosphatase + F(b) + #ZAP-70 + Z(b) +end molecule types + +begin seed species + S(b~0,Y1~U,Y2~U,Y3~U) S_T + E(b) E_T + F(b) F_T + Z(b) Z_T +end seed species + +begin reaction rules + +# ITAM 1 +E(b) + S(b~0,Y1~U,Y2~U,Y3~U) <-> E(b!1).S(b~1,Y1~U!1,Y2~U,Y3~U) ek_on, ek_off +E(b!1).S(b~1,Y1~U!1,Y2~U,Y3~U) -> E(b)+S(b~0,Y1~P,Y2~U,Y3~U) ek_cat + +F(b) + S(b~0,Y1~P,Y2~U,Y3~U) <-> F(b!1).S(b~1,Y1~P!1,Y2~U,Y3~U) fk_on, fk_off +F(b!1).S(b~1,Y1~P!1,Y2~U,Y3~U) ->F(b)+S(b~0,Y1~U,Y2~U,Y3~U) fk_cat + +E(b) + S(b~0,Y1~P,Y2~U,Y3~U) <-> E(b!1).S(b~1,Y1~P!1,Y2~U,Y3~U) ek_on, ek_off +E(b!1).S(b~1,Y1~P!1,Y2~U,Y3~U) -> E(b)+S(b~0,Y1~2P,Y2~U,Y3~U) ek_cat + +F(b) + S(b~0,Y1~2P,Y2~U,Y3~U) <-> F(b!1).S(b~1,Y1~2P!1,Y2~U,Y3~U) fk_on, fk_off +F(b!1).S(b~1,Y1~2P!1,Y2~U,Y3~U) ->F(b)+S(b~0,Y1~P,Y2~U,Y3~U) fk_cat + +# ITAM 2 +E(b) + S(b~0,Y2~U,Y1~2P,Y3~U) <-> E(b!1).S(b~1,Y2~U!1,Y1~2P,Y3~U) ek_on, ek_off +E(b!1).S(b~1,Y2~U!1,Y1~2P,Y3~U) -> E(b)+S(b~0,Y2~P,Y1~2P,Y3~U) ek_cat + +F(b) + S(b~0,Y2~P,Y1~2P,Y3~U) <-> F(b!1).S(b~1,Y2~P!1,Y1~2P,Y3~U) fk_on, fk_off +F(b!1).S(b~1,Y2~P!1,Y1~2P,Y3~U) ->F(b)+S(b~0,Y2~U,Y1~2P,Y3~U) fk_cat + +E(b) + S(b~0,Y2~P,Y1~2P,Y3~U) <-> E(b!1).S(b~1,Y2~P!1,Y1~2P,Y3~U) ek_on, ek_off +E(b!1).S(b~1,Y2~P!1,Y1~2P,Y3~U) -> E(b)+S(b~0,Y2~2P,Y1~2P,Y3~U) ek_cat + +F(b) + S(b~0,Y2~2P,Y1~2P,Y3~U) <-> F(b!1).S(b~1,Y2~2P!1,Y1~2P,Y3~U) fk_on, fk_off +F(b!1).S(b~1,Y2~2P!1,Y1~2P,Y3~U) ->F(b)+S(b~0,Y2~P,Y1~2P,Y3~U) fk_cat + +# ITAM 3 +E(b) + S(b~0,Y3~U,Y2~2P,Y1~2P) <-> E(b!1).S(b~1,Y3~U!1,Y2~2P,Y1~2P) ek_on, ek_off +E(b!1).S(b~1,Y3~U!1,Y2~2P,Y1~2P) -> E(b)+S(b~0,Y3~P,Y2~2P,Y1~2P) ek_cat + +F(b) + S(b~0,Y3~P,Y2~2P,Y1~2P) <-> F(b!1).S(b~1,Y3~P!1,Y2~2P,Y1~2P) fk_on, fk_off +F(b!1).S(b~1,Y3~P!1,Y2~2P,Y1~2P) ->F(b)+S(b~0,Y3~U,Y2~2P,Y1~2P) fk_cat + +E(b) + S(b~0,Y3~P,Y2~2P,Y1~2P) <-> E(b!1).S(b~1,Y3~P!1,Y2~2P,Y1~2P) ek_on, ek_off +E(b!1).S(b~1,Y3~P!1,Y2~2P,Y1~2P) -> E(b)+S(b~0,Y3~2P,Y2~2P,Y1~2P) ek_cat + +F(b) + S(b~0,Y3~2P,Y2~2P,Y1~2P) <-> F(b!1).S(b~1,Y3~2P!1,Y2~2P,Y1~2P) fk_on, fk_off +F(b!1).S(b~1,Y3~2P!1,Y2~2P,Y1~2P) ->F(b)+S(b~0,Y3~P,Y2~2P,Y1~2P) fk_cat + +# ZAP70 binding +Z(b) + S(Y1~2P) <-> Z(b!1).S(Y1~2P!1) zap_on, zap_off1 +Z(b) + S(Y2~2P) <-> Z(b!1).S(Y2~2P!1) zap_on, zap_off2 +Z(b) + S(Y3~2P) <-> Z(b!1).S(Y3~2P!1) zap_on, zap_off3 +end reaction rules + +begin observables + Molecules Bound_ZAP Z(b!+) + Molecules Szero S(b~?,Y1~U!?,Y2~U!?,Y3~U!?) + Molecules Sone S(b~?,Y1~P!?,Y2~U!?,Y3~U!?) + Molecules Stwo S(b~?,Y1~2P!?,Y2~U!?,Y3~U!?) + Molecules Sthree S(b~?,Y1~2P!?,Y2~P!?,Y3~U!?) + Molecules Sfour S(b~?,Y1~2P!?,Y2~2P!?,Y3~U!?) + Molecules Sfive S(b~?,Y1~2P!?,Y2~2P!?,Y3~P!?) + Molecules Ssix S(b~?,Y1~2P!?,Y2~2P!?,Y3~2P!?) +end observables + +generate_network({overwrite=>1}); +writeMfile({}); \ No newline at end of file diff --git a/Published/Mukhopadhyay2013/README.md b/Published/Mukhopadhyay2013/README.md new file mode 100644 index 00000000..93cc308a --- /dev/null +++ b/Published/Mukhopadhyay2013/README.md @@ -0,0 +1,21 @@ +# Mukhopadhyay 2013 + +FceRI signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- Mukhopadhyay_2013.bngl + +## Tags + +published, immunology, mukhopadhyay, 2013, s, e, f, z diff --git a/Published/Mukhopadhyay2013/metadata.yaml b/Published/Mukhopadhyay2013/metadata.yaml new file mode 100644 index 00000000..504df464 --- /dev/null +++ b/Published/Mukhopadhyay2013/metadata.yaml @@ -0,0 +1,22 @@ +id: "Mukhopadhyay_2013" +name: "Mukhopadhyay 2013" +description: "FceRI signaling" +tags: ["published", "immunology", "mukhopadhyay", "2013", "s", "e", "f", "z"] +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-web-simulator" + source_path: "published-models/immune-signaling/Mukhopadhyay_2013.bngl" +playground: + visible: false + gallery_category: "immunology" + featured: false + difficulty: "advanced" diff --git a/Published/Nag2009/Nag_2009.bngl b/Published/Nag2009/Nag_2009.bngl new file mode 100644 index 00000000..69d5ac98 --- /dev/null +++ b/Published/Nag2009/Nag_2009.bngl @@ -0,0 +1,181 @@ +# Nag, Monine, Faeder, Goldstein 2009 +# Cross-linking of LAT in LAT-Grb2-SOS1 system + + +begin parameters + +Fx 100 + +kpLAT 1.000000e-03 +kpsLAT 1.000000e-04 +kmLAT 1.000000e+02 +kcatU 1.000000e+03 +kcatP 1.000000e+05 + +Lig_tot 1000000 +Rec_tot 400000 +Lyn_tot 28000 +Syk_tot 400000 + + kp1 1.33e-10 + km1 0 + kp2 2.5e-4 + km2 0 + kpL 5e-5 + kmL 20 +kpLs 5e-5 +kmLs 0.12 + kpS 6e-5 + kmS 0.13 +kpSs 6e-5 +kmSs 0.13 + pLb 30 +pLbs 100 + pLg 1 +pLgs 3 + pLS 30 +pLSs 100 + pSS 100 +pSSs 200 + dm 20 + dc 20 + +# parameters of LAT-GRB-SOS interactions +Lat_tot 100000 +Grb_tot 750000 +Sos_tot 375000 +kglp 4.86568e-06 +kglm 0.31 +kxglp 1.08975e-04 +kxglm kglm +kgsp 4.37911e-07 +kgsm 0.034412 +sigma 0.5 +kxgsp sigma*kgsp +kxgsm kgsm +kxgspsr sigma*kgsp*kxglp/kglp +kxgsmsr kgsm +end parameters + +begin molecules +Lig(l,l) +Lyn(U,SH2) +Syk(tSH2,l~Y~pY,a~Y~pY,s) +Rec(a,b~Y~pY,g~Y~pY) +LAT(s~Y~pY) +Grb(SH2,SH3) +Sos(g,g) +end molecules + +begin species +Lig(l,l) Lig_tot/Fx +Lyn(U,SH2) Lyn_tot/Fx +Syk(tSH2,l~Y,a~Y,s) Syk_tot/Fx +Rec(a,b~Y,g~Y) Rec_tot/Fx +LAT(s~Y) Lat_tot/Fx +Grb(SH2,SH3) Grb_tot/Fx +Sos(g,g) Sos_tot/Fx +end species + +begin reaction rules +# ******************************************************************************************** +# ****** Basic FceRI model ******************************************************************* +# ******************************************************************************************** +Rec(a) + Lig(l,l) <-> Rec(a!1).Lig(l!1,l) Fx*kp1, km1 +Rec(a) + Lig(l,l!+) <-> Rec(a!1).Lig(l!1,l!+) Fx*kp2,km2 +Rec(b~Y) + Lyn(U,SH2) <-> Rec(b~Y!1).Lyn(U!1,SH2) Fx*kpL, kmL +Rec(b~pY) + Lyn(U,SH2) <-> Rec(b~pY!1).Lyn(U,SH2!1) Fx*kpLs, kmLs +Rec(g~pY) + Syk(tSH2) <-> Rec(g~pY!1).Syk(tSH2!1) Fx*kpS, kmS +Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~Y) -> \ + Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~pY) pLb +Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~Y) -> \ + Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~pY) pLS +Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,b~Y) -> \ + Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,b~pY) pLbs +Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~Y) -> \ + Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~pY) pLSs +Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~Y) -> \ + Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY) pLg +Lig(l!1,l!2).Syk(tSH2!3,a~Y).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~Y) -> \ + Lig(l!1,l!2).Syk(tSH2!3,a~Y).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~pY) pSS +Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~Y) -> \ + Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY) pLgs +Lig(l!1,l!2).Syk(tSH2!3,a~pY).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~Y) -> \ + Lig(l!1,l!2).Syk(tSH2!3,a~pY).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~pY) pSSs +Rec(b~pY)-> Rec(b~Y) dm +Rec(g~pY)-> Rec(g~Y) dm +Syk(tSH2!+,l~pY)-> Syk(tSH2!+,l~Y) dm +Syk(tSH2!+,a~pY)-> Syk(tSH2!+,a~Y) dm +Syk(tSH2,l~pY)-> Syk(tSH2,l~Y) dc +Syk(tSH2,a~pY)-> Syk(tSH2,a~Y) dc +# ******************************************************************************************** +# ****** Phosphorylation of LAT by Syk ******************************************************* +# ******************************************************************************************** +Rec(a,g~pY!1).Syk(tSH2!1,s) + LAT(s~Y) -> Rec(a,g~pY!1).Syk(tSH2!1,s!5).LAT(s~Y!5) Fx*kpLAT + +Lig(l,l!2).Rec(a!2,g~pY!1).Syk(tSH2!1,s) + LAT(s~Y) -> \ + Lig(l,l!2).Rec(a!2,g~pY!1).Syk(tSH2!1,s!5).LAT(s~Y!5) Fx*kpLAT + +Rec(a!3,g).Lig(l!3,l!2).Rec(a!2,g~pY!1).Syk(tSH2!1,s) + LAT(s~Y) -> \ + Rec(a!3,g).Lig(l!3,l!2).Rec(a!2,g~pY!1).Syk(tSH2!1,s!5).LAT(s~Y!5) Fx*kpsLAT + +Syk(tSH2!6,s).Rec(a!3,g~pY!6).Lig(l!3,l!2).Rec(a!2,g~pY!1).Syk(tSH2!1,s) + LAT(s~Y) -> \ + Syk(tSH2!6,s).Rec(a!3,g~pY!6).Lig(l!3,l!2).Rec(a!2,g~pY!1).Syk(tSH2!1,s!7).LAT(s~Y!7) Fx*2*kpsLAT + +LAT(s~Y!9).Syk(tSH2!6,s!9).Rec(a!3,g~pY!6).Lig(l!3,l!2).Rec(a!2,g~pY!1).Syk(tSH2!1,s) + LAT(s~Y) -> \ + LAT(s~Y!9).Syk(tSH2!6,s!9).Rec(a!3,g~pY!6).Lig(l!3,l!2).Rec(a!2,g~pY!1).Syk(tSH2!1,s!7).LAT(s~Y!7) Fx*kpsLAT + +Syk(s!5).LAT(s~Y!5) -> Syk(s) + LAT(s~Y) kmLAT + +Syk(tSH2!+,a~Y,s!5).LAT(s~Y!5) -> Syk(tSH2!+,a~Y,s) + LAT(s~pY) kcatU + +Syk(tSH2!+,a~pY,s!5).LAT(s~Y!5) -> Syk(tSH2!+,a~pY,s) + LAT(s~pY) kcatP +# ******************************************************************************************** +# ****** LAT + GRB + SOS interactions ******************************************************* +# ******************************************************************************************** +Grb(SH2,SH3) + Sos(g,g) <-> Grb(SH2,SH3!1).Sos(g!1,g) Fx*kgsp, kgsm + +Grb(SH2,SH3) + Sos(g,g!1).Grb(SH2,SH3!1) <-> Grb(SH2,SH3!2).Sos(g!2,g!1).Grb(SH2,SH3!1) Fx*kxgsp, kxgsm + +Grb(SH2,SH3) + Sos(g,g!1).Grb(SH2!+,SH3!1) <-> Grb(SH2,SH3!2).Sos(g!2,g!1).Grb(SH2!+,SH3!1) Fx*kxgsp,kxgsm + +Grb(SH2!+,SH3) + Sos(g,g) <-> Grb(SH2!+,SH3!1).Sos(g!1,g) Fx*kgsp, kgsm + +Grb(SH2!+,SH3) + Sos(g,g!1).Grb(SH2,SH3!1) <-> Grb(SH2!+,SH3!2).Sos(g!2,g!1).Grb(SH2,SH3!1) Fx*kxgsp, kxgsm + +Grb(SH2!+,SH3) + Sos(g,g!1).Grb(SH2!+,SH3!1) <-> \ + Grb(SH2!+,SH3!2).Sos(g!2,g!1).Grb(SH2!+,SH3!1) Fx*kxgspsr, kxgsmsr + +LAT(s~pY) + Grb(SH2,SH3) <-> LAT(s~pY!1).Grb(SH2!1,SH3) Fx*kglp, kglm + +LAT(s~pY) + Grb(SH2,SH3!1).Sos(g!1,g) <-> LAT(s~pY!2).Grb(SH2!2,SH3!1).Sos(g!1,g) Fx*kglp, kglm + +LAT(s~pY) + Grb(SH2,SH3!1).Sos(g!1,g!2).Grb(SH2,SH3!2) <-> \ + LAT(s~pY!3).Grb(SH2!3,SH3!1).Sos(g!1,g!2).Grb(SH2,SH3!2) Fx*kglp, kglm + +LAT(s~pY) + Grb(SH2,SH3!1).Sos(g!1,g!2).Grb(SH2!3,SH3!2).LAT(s~pY!3) <-> \ + LAT(s~pY!4).Grb(SH2!4,SH3!1).Sos(g!1,g!2).Grb(SH2!3,SH3!2).LAT(s~pY!3) Fx*kxglp, kxglm +# ******************************************************************************************** +# ******************************************************************************************** +end reaction rules + +begin observables +Molecules RSu_and_LRSu Rec(a,g~pY!1).Syk(tSH2!1,a~Y,s), Lig(l,l!2).Rec(a!2,g~pY!1).Syk(tSH2!1,a~Y,s) +Molecules RSp_and_LRSp Rec(a,g~pY!1).Syk(tSH2!1,a~pY,s), Lig(l,l!2).Rec(a!2,g~pY!1).Syk(tSH2!1,a~pY,s) +Molecules R_L_R_Su Rec(a!3,g).Lig(l!3,l!2).Rec(a!2,g~pY!1).Syk(tSH2!1,a~Y,s) +Molecules R_L_R_Sp Rec(a!3,g).Lig(l!3,l!2).Rec(a!2,g~pY!1).Syk(tSH2!1,a~pY,s) +Molecules uS_R_L_R_Su Syk(tSH2!4,a~Y,s).Rec(a!3,g~pY!4).Lig(l!3,l!2).Rec(a!2,g~pY!1).Syk(tSH2!1,a~Y,s) +Molecules pS_R_L_R_Sp Syk(tSH2!4,a~pY,s).Rec(a!3,g~pY!4).Lig(l!3,l!2).Rec(a!2,g~pY!1).Syk(tSH2!1,a~pY,s) +Molecules uS_R_L_R_Sp Syk(tSH2!4,a~Y,s).Rec(a!3,g~pY!4).Lig(l!3,l!2).Rec(a!2,g~pY!1).Syk(tSH2!1,a~pY,s) + +Species FreeUnLAT LAT(s~Y) +Species BoundUnLAT LAT(s~Y!+) +Species FreePhosLAT LAT(s~pY) +Species Grbfree Grb(SH2,SH3) +Species Sosfree Sos(g,g) +end observables + +writeXML() +#generate_network({overwrite=>1}); +#simulate_ode({t_end=>200,n_steps=>1000,atol=>1e-8,rtol=>1e-8}); +#simulate_ps({t_end=>200,n_steps=>1000}); \ No newline at end of file diff --git a/Published/Nag2009/README.md b/Published/Nag2009/README.md new file mode 100644 index 00000000..1d691f10 --- /dev/null +++ b/Published/Nag2009/README.md @@ -0,0 +1,21 @@ +# Nag 2009 + +LAT-Grb2-SOS1 signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Nag_2009.bngl + +## Tags + +published, nag, 2009, lig, lyn, syk, rec, lat, grb, sos diff --git a/Published/Nag2009/metadata.yaml b/Published/Nag2009/metadata.yaml new file mode 100644 index 00000000..f8c3f187 --- /dev/null +++ b/Published/Nag2009/metadata.yaml @@ -0,0 +1,22 @@ +id: "Nag_2009" +name: "Nag 2009" +description: "LAT-Grb2-SOS1 signaling" +tags: ["published", "nag", "2009", "lig", "lyn", "syk", "rec", "lat", "grb", "sos"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/complex-models/Nag_2009.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/Nosbisch2022/Nosbisch_2022.bngl b/Published/Nosbisch2022/Nosbisch_2022.bngl new file mode 100644 index 00000000..4ab1689b --- /dev/null +++ b/Published/Nosbisch2022/Nosbisch_2022.bngl @@ -0,0 +1,52 @@ +begin model + +begin compartments +cell 3 1 +end compartments + +begin parameters +end parameters + +begin molecule types +RTK(pY) +PLCgamma1(nSH2,Tyr783~u~p,cSH2,core~inactive~active) +end molecule types + +begin seed species +1 @cell:RTK(pY) 0.05 +2 @cell:PLCgamma1(nSH2,Tyr783~u,cSH2!1,core~inactive!1) 0.02 +end seed species + +begin observables +Molecules O0_RTK_tot @cell:RTK() +Molecules O0_PLCgamma1_tot @cell:PLCgamma1() +Molecules O0_PLCgamma1_active @cell:PLCgamma1(core~active!?) +Molecules O0_PLCgamma1_inactive @cell:PLCgamma1(core~inactive!?) +Molecules O0_PLCgamma1_pTyr783 @cell:PLCgamma1(Tyr783~p!?) +Molecules O0_PLCgamma1_dpTyr783 @cell:PLCgamma1(Tyr783~u!?) +Molecules O0_PLCgamma1_RTK_bound_inactive @cell:RTK(pY!1).PLCgamma1(nSH2!1,core~inactive!?) +Molecules O0_PLCgamma1_RTK_bound @cell:RTK(pY!1).PLCgamma1(nSH2!1) +Molecules O0_PLCgamma1_cytosol @cell:PLCgamma1(nSH2,core~inactive!?) +end observables + +begin functions +end functions + +begin reaction rules +r02: @cell:RTK(pY) + @cell:PLCgamma1(nSH2,core~active) -> @cell:RTK(pY!1).PLCgamma1(nSH2!1,core~active) 1000.0 +r01: @cell:RTK(pY) + @cell:PLCgamma1(nSH2,core~inactive!?) -> @cell:RTK(pY!1).PLCgamma1(nSH2!1,core~inactive!?) (1.0 * t) < 5000.0 +r03: @cell:RTK(pY!1).PLCgamma1(nSH2!1) -> @cell:RTK(pY) + @cell:PLCgamma1(nSH2) 1.0 +r04: @cell:RTK(pY!1).PLCgamma1(nSH2!1,Tyr783~u!?) -> @cell:RTK(pY!1).PLCgamma1(nSH2!1,Tyr783~p!?) 1.0 +r05: @cell:PLCgamma1(Tyr783~p) -> @cell:PLCgamma1(Tyr783~u) 1.0 +r06: @cell:PLCgamma1(cSH2!1,core~inactive!1) -> @cell:PLCgamma1(cSH2,core~inactive) 1.0 +r07: @cell:PLCgamma1(cSH2,core~inactive) -> @cell:PLCgamma1(cSH2!1,core~inactive!1) 100.0 +r08: @cell:PLCgamma1(Tyr783~p,cSH2) -> @cell:PLCgamma1(Tyr783~p!1,cSH2!1) 100.0 +r10: @cell:RTK(pY!1).PLCgamma1(nSH2!1,core~inactive) -> @cell:RTK(pY!1).PLCgamma1(nSH2!1,core~active) 10.0 +r11: @cell:PLCgamma1(nSH2,core~inactive) -> @cell:PLCgamma1(nSH2,core~active) ((1.0 * t) < 5000.0) * kact_p +r12: @cell:PLCgamma1(core~active) -> @cell:PLCgamma1(core~inactive) 0.1 +r09: @cell:PLCgamma1(Tyr783~p!1,cSH2!1) -> @cell:PLCgamma1(Tyr783~p,cSH2) 1.0 +end reaction rules + +end model + +generate_network({max_iter=>7,max_agg=>10,max_stoich=>{RTK=>100,PLCgamma1=>100},overwrite=>1}) \ No newline at end of file diff --git a/Published/Nosbisch2022/README.md b/Published/Nosbisch2022/README.md new file mode 100644 index 00000000..2efa2fcb --- /dev/null +++ b/Published/Nosbisch2022/README.md @@ -0,0 +1,21 @@ +# Nosbisch 2022 + +RTK-PLCgamma1 signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Nosbisch_2022.bngl + +## Tags + +published, nosbisch, 2022, rtk, plcgamma1, generate_network diff --git a/Published/Nosbisch2022/metadata.yaml b/Published/Nosbisch2022/metadata.yaml new file mode 100644 index 00000000..ac2b240e --- /dev/null +++ b/Published/Nosbisch2022/metadata.yaml @@ -0,0 +1,22 @@ +id: "Nosbisch_2022" +name: "Nosbisch 2022" +description: "RTK-PLCgamma1 signaling" +tags: ["published", "nosbisch", "2022", "rtk", "plcgamma1", "generate_network"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/complex-models/Nosbisch_2022.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/Ordyan2020/CaMKIIholo/CaMKII_holo.bngl b/Published/Ordyan2020/CaMKIIholo/CaMKII_holo.bngl new file mode 100644 index 00000000..54f54e98 --- /dev/null +++ b/Published/Ordyan2020/CaMKIIholo/CaMKII_holo.bngl @@ -0,0 +1,201 @@ +begin model +begin parameters + V = 0.125*1e-15/8 # um^3 -> liters (PSD is 1/8 of the spine) + NA = 6.022e23/1e6 + tauR = 0.002 #time constant for Ca decay + tauF = 0.01 + tics_per_second = 1000 + + #Rate Constants + k_on1C = 4/(NA*V) #1/uM 1/s + k_off1C = 40.24 #1/s + k_on2C = 10/(NA*V) #1/uM 1/s + k_off2C = 9.3 #1/s + k_on1N = 100/(NA*V) #1/uM 1/s + k_off1N = 2660 #1/s + k_on2N = 150/(NA*V) #1/uM 1/s + k_off2N = 990 #1/s + + k_onCaM0 = (3.8/(NA*V))/1000 #1/uM 1/s + k_offCaM0 = 6.56 #1/s + k_onCaM1C = (59/(NA*V))/1000 #1/uM 1/s + k_offCaM1C = 6.72 #1/s + k_onCaM2C = 0.92/(NA*V) #1/uM 1/s + k_offCaM2C = 6.35 #1/s + k_onCaM1C1N = 0.33/(NA*V) #1/uM 1/s + k_offCaM1C1N = 5.68 #1/s + k_onCaM2C1N = 5.2/(NA*V) #1/uM 1/s + k_offCaM2C1N = 5.25 #1/s + k_onCaM1N = (22/(NA*V))/1000 #1/uM 1/s + k_offCaM1N = 5.75 #1/s + k_onCaM2N = 0.1/(NA*V) #1/uM 1/s + k_offCaM2N = 1.68 #1/s + k_onCaM1C2N = 1.9/(NA*V) #1/uM 1/s + k_offCaM1C2N = 2.09 #1/s + k_onCaM4 = 30/(NA*V) #1/uM 1/s + k_offCaM4 = 1.95 #1/s + + k_onK1C = 44/(NA*V) #1/uM 1/s + k_offK1C = 29.04 #1/s + k_onK2C = 44/(NA*V) #1/uM 1/s + k_offK2C = 2.52 #1/s + k_onK1N = 75/(NA*V) #1/uM 1/s + k_offK1N = 301.5 #1/s + k_onK2N = 76/(NA*V) #1/uM 1/s + k_offK2N = 32.68 #1/s + + k_onCaMKII = 50/(NA*V) #1/uM 1/s + k_offCaMKII = 1000 #60 #1/s + + k_pCaM0 = 0 #1/s + k_pCaM1C = 0.032 #1/s + k_pCaM2C = 0.064 #1/s + k_pCaM1C1N = 0.094 #1/s + k_pCaM2C1N = 0.124 #1/s + k_pCaM1N = 0.06 #1/s + k_pCaM2N = 0.12 #1/s + k_pCaM1C2N = 0.154 #1/s + k_pCaM4 = 0.96 #1/s + #k_decayCa = 10 #1/s + + # Binding neurogranin + k_onNg = 5/(NA*V) #1/uM 1/s + k_offNg = 1 #1/s + + #CaM binding and unbinding to phospoeylated CaMKII, not present in Pepke model, rates adjusted/borrowd from the Pepke model, and Meyer et al Scinece 1992 + k_onpCaM0 = (3.8/(NA*V))/3000 #1/uM 1/s + k_onpCaM1C = (59/(NA*V))/3000 #1/uM 1/s + k_onpCaM2C = 0.92/(NA*V)/3 #1/uM 1/s + k_onpCaM1C1N = 3.4/(NA*V)/3 #1/uM 1/s + k_onpCaM2C1N = 5.2/(NA*V)/3 #1/uM 1/s + k_onpCaM1N = (22/(NA*V))/3000 #1/uM 1/s + k_onpCaM2N = 0.12/(NA*V)/3 #1/uM 1/s + k_onpCaM1C2N = 1.9/(NA*V)/3 #1/uM 1/s + k_onpCaM4 = 37/(NA*V)/3 #1/uM 1/s + k_offpCaM4 = 0.07 #1/s + + # #Dephosphorylation + k_cat = (31/1.25)/60 # + K_m = 11*(NA*V) #uM + +end parameters +begin molecule types + Ca() + CaM(C~0~1~2,N~0~1~2,ng,camkii) + Ng(cam) + CaMKII(docked~y~n,r,l,c,Y286~0~P,S306~0~P,cam) + PP1() + time_counter() +end molecule types +begin seed species + Ca() 0.1*(NA*V) #uM + CaM(C~0,N~0,ng,camkii) 10*(NA*V) #uM (10, 30, 50 or 100)*(NA*V) + #Ng(cam) 20*(NA*V) #uM + CaMKII(docked~y,r!1,l!6,c!13,Y286~0,S306~0,cam).CaMKII(docked~y,r!2,l!1,c!14,Y286~0,S306~0,cam).\ +CaMKII(docked~y,r!3,l!2,c!15,Y286~0,S306~0,cam).CaMKII(docked~y,r!4,l!3,c!16,Y286~0,S306~0,cam).\ +CaMKII(docked~y,r!5,l!4,c!17,Y286~0,S306~0,cam).CaMKII(docked~y,r!6,l!5,c!18,Y286~0,S306~0,cam).\ +CaMKII(docked~y,r!7,l!12,c!13,Y286~0,S306~0,cam).CaMKII(docked~y,r!8,l!7,c!14,Y286~0,S306~0,cam).\ +CaMKII(docked~y,r!9,l!8,c!15,Y286~0,S306~0,cam).CaMKII(docked~y,r!10,l!9,c!16,Y286~0,S306~0,cam).\ +CaMKII(docked~y,r!11,l!10,c!17,Y286~0,S306~0,cam).CaMKII(docked~y,r!12,l!11,c!18,Y286~0,S306~0,cam) 63 #200 #90-240 in PSD from Feng, Raghavachari & Lisman Brain research.2011. #53.3*(NA*V)/8 #uM (80*8/12 = 53.3 for holo in PSD) + PP1() 1.25*(NA*V) #uM +end seed species + +begin observables + Molecules Ca Ca() + Molecules CaM CaM() + Molecules CaM1N CaM(C~0,N~1,camkii) + Molecules CaM2N CaM(C~0,N~2,camkii) + Molecules CaM1C CaM(C~1,N~0,camkii) + Molecules CaM1C1N CaM(C~1,N~1,camkii) + Molecules CaM1C2N CaM(C~1,N~2,camkii) + Molecules CaM2C CaM(C~2,N~0,camkii) + Molecules Cam2C1N CaM(C~2,N~1,camkii) + Molecules Cam4Ca CaM(C~2,N~2,camkii) + Molecules KCaM1N CaMKII(Y286~0,cam!1).CaM(C~0,N~1,camkii!1) + Molecules KCaM2N CaMKII(Y286~0,cam!1).CaM(C~0,N~2,camkii!1) + Molecules KCaM1C CaMKII(Y286~0,cam!1).CaM(C~1,N~0,camkii!1) + Molecules KCaM1C1N CaMKII(Y286~0,cam!1).CaM(C~1,N~1,camkii!1) + Molecules KCaM1C2N CaMKII(Y286~0,cam!1).CaM(C~1,N~2,camkii!1) + Molecules KCaM2C CaMKII(Y286~0,cam!1).CaM(C~2,N~0,camkii!1) + Molecules KCam2C1N CaMKII(Y286~0,cam!1).CaM(C~2,N~1,camkii!1) + Molecules KCam4Ca CaMKII(Y286~0,cam!1).CaM(C~2,N~2,camkii!1) + Molecules pKCaM0 CaMKII(Y286~P,cam!1).CaM(C~0,N~0,camkii!1) + Molecules KCaM0 CaMKII(Y286~0,cam!1).CaM(C~0,N~0,camkii!1) + Molecules KCaM CaMKII(Y286~0,cam!1).CaM(camkii!1) + Molecules pKCaM1N CaMKII(Y286~P,cam!1).CaM(C~0,N~1,camkii!1) + Molecules pKCaM2N CaMKII(Y286~P,cam!1).CaM(C~0,N~2,camkii!1) + Molecules pKCaM1C CaMKII(Y286~P,cam!1).CaM(C~1,N~0,camkii!1) + Molecules pKCaM1C1N CaMKII(Y286~P,cam!1).CaM(C~1,N~1,camkii!1) + Molecules pKCaM1C2N CaMKII(Y286~P,cam!1).CaM(C~1,N~2,camkii!1) + Molecules pKCaM2C CaMKII(Y286~P,cam!1).CaM(C~2,N~0,camkii!1) + Molecules pKCam2C1N CaMKII(Y286~P,cam!1).CaM(C~2,N~1,camkii!1) + Molecules pKCam4Ca CaMKII(Y286~P,cam!1).CaM(C~2,N~2,camkii!1) + Molecules pKCaM CaMKII(Y286~P,cam!1).CaM(camkii!1) + Molecules KCaMII CaMKII(Y286~0,cam) + Molecules pKCaMII CaMKII(Y286~P,cam) + Molecules pKCaM_tot CaMKII(Y286~P) + Molecules uKCaMII_tot CaMKII(Y286~0) + Molecules KCaMKII_tot CaMKII(cam!1)CaM(camkii!1) + Molecules tics time_counter() +end observables + + + +readFile({file=>"FOLDER_NAME/extra_CaMKII_Holo.bngl"}) + +begin reaction rules + CaM(C~0,ng,camkii) + Ca <-> CaM(C~1,ng,camkii) k_on1C,k_off1C + CaM(C~1,ng,camkii) + Ca <-> CaM(C~2,ng,camkii) k_on2C,k_off2C + CaM(N~0,ng,camkii) + Ca <-> CaM(N~1,ng,camkii) k_on1N,k_off1N + CaM(N~1,ng,camkii) + Ca <-> CaM(N~2,ng,camkii) k_on2N,k_off2N + CaMKII(Y286~0,cam) + CaM(C~0,N~0,ng,camkii) <-> CaMKII(Y286~0,cam!1).CaM(C~0,N~0,ng,camkii!1) k_onCaM0,k_offCaM0 + CaMKII(Y286~0,cam) + CaM(C~1,N~0,camkii) <-> CaMKII(Y286~0,cam!1).CaM(C~1,N~0,camkii!1) k_onCaM1C,k_offCaM1C + CaMKII(Y286~0,cam) + CaM(C~2,N~0,camkii) <-> CaMKII(Y286~0,cam!1).CaM(C~2,N~0,camkii!1) k_onCaM2C,k_offCaM2C + CaMKII(Y286~0,cam) + CaM(C~0,N~1,camkii) <-> CaMKII(Y286~0,cam!1).CaM(C~0,N~1,camkii!1) k_onCaM1N,k_offCaM1N + CaMKII(Y286~0,cam) + CaM(C~1,N~1,camkii) <-> CaMKII(Y286~0,cam!1).CaM(C~1,N~1,camkii!1) k_onCaM1C1N,k_offCaM1C1N + CaMKII(Y286~0,cam) + CaM(C~2,N~1,camkii) <-> CaMKII(Y286~0,cam!1).CaM(C~2,N~1,camkii!1) k_onCaM2C1N,k_offCaM2C1N + CaMKII(Y286~0,cam) + CaM(C~0,N~2,camkii) <-> CaMKII(Y286~0,cam!1).CaM(C~0,N~2,camkii!1) k_onCaM2N,k_offCaM2N + CaMKII(Y286~0,cam) + CaM(C~1,N~2,camkii) <-> CaMKII(Y286~0,cam!1).CaM(C~1,N~2,camkii!1) k_onCaM1C2N,k_offCaM1C2N + CaMKII(Y286~0,cam) + CaM(C~2,N~2,camkii) <-> CaMKII(Y286~0,cam!1).CaM(C~2,N~2,camkii!1) k_onCaM4,k_offCaM4 + + CaMKII(Y286~P,cam) + CaM(C~0,N~0,ng,camkii) <-> CaMKII(Y286~P,cam!1).CaM(C~0,N~0,ng,camkii!1) k_onpCaM0,k_offpCaM4 + CaMKII(Y286~P,cam) + CaM(C~1,N~0,camkii) <-> CaMKII(Y286~P,cam!1).CaM(C~1,N~0,camkii!1) k_onpCaM1C,k_offpCaM4 + CaMKII(Y286~P,cam) + CaM(C~2,N~0,camkii) <-> CaMKII(Y286~P,cam!1).CaM(C~2,N~0,camkii!1) k_onpCaM2C,k_offpCaM4 + CaMKII(Y286~P,cam) + CaM(C~0,N~1,camkii) <-> CaMKII(Y286~P,cam!1).CaM(C~0,N~1,camkii!1) k_onpCaM1N,k_offpCaM4 + CaMKII(Y286~P,cam) + CaM(C~1,N~1,camkii) <-> CaMKII(Y286~P,cam!1).CaM(C~1,N~1,camkii!1) k_onpCaM1C1N,k_offpCaM4 + CaMKII(Y286~P,cam) + CaM(C~2,N~1,camkii) <-> CaMKII(Y286~P,cam!1).CaM(C~2,N~1,camkii!1) k_onpCaM2C1N,k_offpCaM4 + CaMKII(Y286~P,cam) + CaM(C~0,N~2,camkii) <-> CaMKII(Y286~P,cam!1).CaM(C~0,N~2,camkii!1) k_onpCaM2N,k_offpCaM4 + CaMKII(Y286~P,cam) + CaM(C~1,N~2,camkii) <-> CaMKII(Y286~P,cam!1).CaM(C~1,N~2,camkii!1) k_onpCaM1C2N,k_offpCaM4 + CaMKII(Y286~P,cam) + CaM(C~2,N~2,camkii) <-> CaMKII(Y286~P,cam!1).CaM(C~2,N~2,camkii!1) k_onpCaM4,k_offpCaM4 + + CaMKII(Y286~0,cam!1).CaM(C~0,ng,camkii!1) + Ca <-> CaMKII(Y286~0,cam!1).CaM(C~1,ng,camkii!1) k_onK1C, k_offK1C + CaMKII(Y286~0,cam!1).CaM(C~1,camkii!1) + Ca <-> CaMKII(Y286~0,cam!1).CaM(C~2,camkii!1) k_onK2C, k_offK2C + CaMKII(Y286~0,cam!1).CaM(N~0,ng,camkii!1) + Ca <-> CaMKII(Y286~0,cam!1).CaM(N~1,ng,camkii!1) k_onK1N, k_offK1N + CaMKII(Y286~0,cam!1).CaM(N~1,camkii!1) + Ca <-> CaMKII(Y286~0,cam!1).CaM(N~2,camkii!1) k_onK2N, k_offK2N + CaMKII(l!1,Y286~0,cam!2).CaM(C~0,N~0,camkii!2).CaMKII(r!1,cam!+) -> CaMKII(l!1,Y286~P,cam!2).CaM(C~0,N~0,camkii!2).CaMKII(r!1,cam!+) k_pCaM0 + CaMKII(l!1,Y286~0,cam!2).CaM(C~0,N~0,camkii!2).CaMKII(r!1,Y286~P) -> CaMKII(l!1,Y286~P,cam!2).CaM(C~0,N~0,camkii!2).CaMKII(r!1,Y286~P) k_pCaM0 + CaMKII(l!1,Y286~0,cam!2).CaM(C~1,N~0,camkii!2).CaMKII(r!1,cam!+) -> CaMKII(l!1,Y286~P,cam!2).CaM(C~1,N~0,camkii!2).CaMKII(r!1,cam!+) k_pCaM1C + CaMKII(l!1,Y286~0,cam!2).CaM(C~1,N~0,camkii!2).CaMKII(r!1,Y286~P) -> CaMKII(l!1,Y286~P,cam!2).CaM(C~1,N~0,camkii!2).CaMKII(r!1,Y286~P) k_pCaM1C + CaMKII(l!1,Y286~0,cam!2).CaM(C~2,N~0,camkii!2).CaMKII(r!1,cam!+) -> CaMKII(l!1,Y286~P,cam!2).CaM(C~2,N~0,camkii!2).CaMKII(r!1,cam!+) k_pCaM2C + CaMKII(l!1,Y286~0,cam!2).CaM(C~2,N~0,camkii!2).CaMKII(r!1,Y286~P) -> CaMKII(l!1,Y286~P,cam!2).CaM(C~2,N~0,camkii!2).CaMKII(r!1,Y286~P) k_pCaM2C + CaMKII(l!1,Y286~0,cam!2).CaM(C~0,N~1,camkii!2).CaMKII(r!1,cam!+) -> CaMKII(l!1,Y286~P,cam!2).CaM(C~0,N~1,camkii!2).CaMKII(r!1,cam!+) k_pCaM1N + CaMKII(l!1,Y286~0,cam!2).CaM(C~0,N~1,camkii!2).CaMKII(r!1,Y286~P) -> CaMKII(l!1,Y286~P,cam!2).CaM(C~0,N~1,camkii!2).CaMKII(r!1,Y286~P) k_pCaM1N + CaMKII(l!1,Y286~0,cam!2).CaM(C~1,N~1,camkii!2).CaMKII(r!1,cam!+) -> CaMKII(l!1,Y286~P,cam!2).CaM(C~1,N~1,camkii!2).CaMKII(r!1,cam!+) k_pCaM1C1N + CaMKII(l!1,Y286~0,cam!2).CaM(C~1,N~1,camkii!2).CaMKII(r!1,Y286~P) -> CaMKII(l!1,Y286~P,cam!2).CaM(C~1,N~1,camkii!2).CaMKII(r!1,Y286~P) k_pCaM1C1N + CaMKII(l!1,Y286~0,cam!2).CaM(C~2,N~1,camkii!2).CaMKII(r!1,cam!+) -> CaMKII(l!1,Y286~P,cam!2).CaM(C~2,N~1,camkii!2).CaMKII(r!1,cam!+) k_pCaM2C1N + CaMKII(l!1,Y286~0,cam!2).CaM(C~2,N~1,camkii!2).CaMKII(r!1,Y286~P) -> CaMKII(l!1,Y286~P,cam!2).CaM(C~2,N~1,camkii!2).CaMKII(r!1,Y286~P) k_pCaM2C1N + CaMKII(l!1,Y286~0,cam!2).CaM(C~0,N~2,camkii!2).CaMKII(r!1,cam!+) -> CaMKII(l!1,Y286~P,cam!2).CaM(C~0,N~2,camkii!2).CaMKII(r!1,cam!+) k_pCaM2N + CaMKII(l!1,Y286~0,cam!2).CaM(C~0,N~2,camkii!2).CaMKII(r!1,Y286~P) -> CaMKII(l!1,Y286~P,cam!2).CaM(C~0,N~2,camkii!2).CaMKII(r!1,Y286~P) k_pCaM2N + CaMKII(l!1,Y286~0,cam!2).CaM(C~1,N~2,camkii!2).CaMKII(r!1,cam!+) -> CaMKII(l!1,Y286~P,cam!2).CaM(C~1,N~2,camkii!2).CaMKII(r!1,cam!+) k_pCaM1C2N + CaMKII(l!1,Y286~0,cam!2).CaM(C~1,N~2,camkii!2).CaMKII(r!1,Y286~P) -> CaMKII(l!1,Y286~P,cam!2).CaM(C~1,N~2,camkii!2).CaMKII(r!1,Y286~P) k_pCaM1C2N + CaMKII(l!1,Y286~0,cam!2).CaM(C~2,N~2,camkii!2).CaMKII(r!1,cam!+) -> CaMKII(l!1,Y286~P,cam!2).CaM(C~2,N~2,camkii!2).CaMKII(r!1,cam!+) k_pCaM4 + CaMKII(l!1,Y286~0,cam!2).CaM(C~2,N~2,camkii!2).CaMKII(r!1,Y286~P) -> CaMKII(l!1,Y286~P,cam!2).CaM(C~2,N~2,camkii!2).CaMKII(r!1,Y286~P) k_pCaM4 + CaM(C~0,N~0,ng,camkii) + Ng(cam) <-> CaM(C~0,N~0,ng!1,camkii).Ng(cam!1) k_onNg, k_offNg + CaMKII(Y286~P) + PP1 -> CaMKII(Y286~0) + PP1 MM(k_cat,K_m) + 0 -> time_counter() tics_per_second + 0 -> Ca() alpha_function() + 0 <-> Ca() 100, 3000/(NA*V) +end reaction rules +end model +writeXML(); +simulate({method=>"nf",gml=>1000000,t_end=>600,n_steps=>100000,print_functions=>1}) diff --git a/Published/Ordyan2020/CaMKIIholo/README.md b/Published/Ordyan2020/CaMKIIholo/README.md new file mode 100644 index 00000000..1fe054d7 --- /dev/null +++ b/Published/Ordyan2020/CaMKIIholo/README.md @@ -0,0 +1,21 @@ +# Ordyan 2020: CaMKII holo + +CaMKII holo + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: nf +- Imported from: published + +## Files + +- CaMKII_holo.bngl + +## Tags + +published, neuroscience, camkii, holo, ca, cam, ng, pp1, time_counter diff --git a/Published/Ordyan2020/CaMKIIholo/metadata.yaml b/Published/Ordyan2020/CaMKIIholo/metadata.yaml new file mode 100644 index 00000000..138d4729 --- /dev/null +++ b/Published/Ordyan2020/CaMKIIholo/metadata.yaml @@ -0,0 +1,22 @@ +id: "CaMKII_holo" +name: "Ordyan 2020: CaMKII holo" +description: "CaMKII holo" +tags: ["published", "neuroscience", "camkii", "holo", "ca", "cam", "ng", "pp1", "time_counter"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["nf"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/Ordyan_2020/CaMKII_holo.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/Ordyan2020/extraCaMKIIHolo/README.md b/Published/Ordyan2020/extraCaMKIIHolo/README.md new file mode 100644 index 00000000..2f218d4f --- /dev/null +++ b/Published/Ordyan2020/extraCaMKIIHolo/README.md @@ -0,0 +1,21 @@ +# Ordyan 2020: extra CaMKII holo + +Extra CaMKII holo (supplement) + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- extra_CaMKII_Holo.bngl + +## Tags + +published, neuroscience, extra, camkii, holo, t1, t2, t3, t4, t5, t6, t7, t8 diff --git a/Published/Ordyan2020/extraCaMKIIHolo/extra_CaMKII_Holo.bngl b/Published/Ordyan2020/extraCaMKIIHolo/extra_CaMKII_Holo.bngl new file mode 100644 index 00000000..195838cb --- /dev/null +++ b/Published/Ordyan2020/extraCaMKIIHolo/extra_CaMKII_Holo.bngl @@ -0,0 +1,33 @@ +begin functions +t1() max(tics/tics_per_second - 300.000000, 0) +t2() max(tics/tics_per_second - 302.000000, 0) +t3() max(tics/tics_per_second - 304.000000, 0) +t4() max(tics/tics_per_second - 306.000000, 0) +t5() max(tics/tics_per_second - 308.000000, 0) +t6() max(tics/tics_per_second - 310.000000, 0) +t7() max(tics/tics_per_second - 312.000000, 0) +t8() max(tics/tics_per_second - 314.000000, 0) +t9() max(tics/tics_per_second - 316.000000, 0) +t10() max(tics/tics_per_second - 318.000000, 0) +t11() max(tics/tics_per_second - 320.000000, 0) +t12() max(tics/tics_per_second - 322.000000, 0) +t13() max(tics/tics_per_second - 324.000000, 0) +t14() max(tics/tics_per_second - 326.000000, 0) +t15() max(tics/tics_per_second - 328.000000, 0) +t16() max(tics/tics_per_second - 330.000000, 0) +t17() max(tics/tics_per_second - 332.000000, 0) +t18() max(tics/tics_per_second - 334.000000, 0) +t19() max(tics/tics_per_second - 336.000000, 0) +t20() max(tics/tics_per_second - 338.000000, 0) +t21() max(tics/tics_per_second - 340.000000, 0) +t22() max(tics/tics_per_second - 342.000000, 0) +t23() max(tics/tics_per_second - 344.000000, 0) +t24() max(tics/tics_per_second - 346.000000, 0) +t25() max(tics/tics_per_second - 348.000000, 0) +t26() max(tics/tics_per_second - 350.000000, 0) +t27() max(tics/tics_per_second - 352.000000, 0) +t28() max(tics/tics_per_second - 354.000000, 0) +t29() max(tics/tics_per_second - 356.000000, 0) +t30() max(tics/tics_per_second - 358.000000, 0) +alpha_function() 3600*(NA*V)*(t1()/tauR)*exp(-t1()/tauF)+3600*(NA*V)*(t2()/tauR)*exp(-t2()/tauF)+3600*(NA*V)*(t3()/tauR)*exp(-t3()/tauF)+3600*(NA*V)*(t4()/tauR)*exp(-t4()/tauF)+3600*(NA*V)*(t5()/tauR)*exp(-t5()/tauF)+3600*(NA*V)*(t6()/tauR)*exp(-t6()/tauF)+3600*(NA*V)*(t7()/tauR)*exp(-t7()/tauF)+3600*(NA*V)*(t8()/tauR)*exp(-t8()/tauF)+3600*(NA*V)*(t9()/tauR)*exp(-t9()/tauF)+3600*(NA*V)*(t10()/tauR)*exp(-t10()/tauF)+3600*(NA*V)*(t11()/tauR)*exp(-t11()/tauF)+3600*(NA*V)*(t12()/tauR)*exp(-t12()/tauF)+3600*(NA*V)*(t13()/tauR)*exp(-t13()/tauF)+3600*(NA*V)*(t14()/tauR)*exp(-t14()/tauF)+3600*(NA*V)*(t15()/tauR)*exp(-t15()/tauF)+3600*(NA*V)*(t16()/tauR)*exp(-t16()/tauF)+3600*(NA*V)*(t17()/tauR)*exp(-t17()/tauF)+3600*(NA*V)*(t18()/tauR)*exp(-t18()/tauF)+3600*(NA*V)*(t19()/tauR)*exp(-t19()/tauF)+3600*(NA*V)*(t20()/tauR)*exp(-t20()/tauF)+3600*(NA*V)*(t21()/tauR)*exp(-t21()/tauF)+3600*(NA*V)*(t22()/tauR)*exp(-t22()/tauF)+3600*(NA*V)*(t23()/tauR)*exp(-t23()/tauF)+3600*(NA*V)*(t24()/tauR)*exp(-t24()/tauF)+3600*(NA*V)*(t25()/tauR)*exp(-t25()/tauF)+3600*(NA*V)*(t26()/tauR)*exp(-t26()/tauF)+3600*(NA*V)*(t27()/tauR)*exp(-t27()/tauF)+3600*(NA*V)*(t28()/tauR)*exp(-t28()/tauF)+3600*(NA*V)*(t29()/tauR)*exp(-t29()/tauF)+3600*(NA*V)*(t30()/tauR)*exp(-t30()/tauF) +end functions \ No newline at end of file diff --git a/Published/Ordyan2020/extraCaMKIIHolo/metadata.yaml b/Published/Ordyan2020/extraCaMKIIHolo/metadata.yaml new file mode 100644 index 00000000..0cbd1c9d --- /dev/null +++ b/Published/Ordyan2020/extraCaMKIIHolo/metadata.yaml @@ -0,0 +1,22 @@ +id: "extra_CaMKII_Holo" +name: "Ordyan 2020: extra CaMKII holo" +description: "Extra CaMKII holo (supplement)" +tags: ["published", "neuroscience", "extra", "camkii", "holo", "t1", "t2", "t3", "t4", "t5", "t6", "t7", "t8"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/Ordyan_2020/extra_CaMKII_Holo.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/Ordyan2020/mCaMKIICaSpike/README.md b/Published/Ordyan2020/mCaMKIICaSpike/README.md new file mode 100644 index 00000000..1a72caf8 --- /dev/null +++ b/Published/Ordyan2020/mCaMKIICaSpike/README.md @@ -0,0 +1,21 @@ +# Ordyan 2020: mCaMKII Ca Spike + +mCaMKII Ca Spike model + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- mCaMKII_Ca_Spike.bngl + +## Tags + +published, neuroscience, mcamkii, ca, spike, cam, ng, camkii, pp1, time_counter diff --git a/Published/Ordyan2020/mCaMKIICaSpike/mCaMKII_Ca_Spike.bngl b/Published/Ordyan2020/mCaMKIICaSpike/mCaMKII_Ca_Spike.bngl new file mode 100644 index 00000000..43a60771 --- /dev/null +++ b/Published/Ordyan2020/mCaMKIICaSpike/mCaMKII_Ca_Spike.bngl @@ -0,0 +1,215 @@ +begin model +begin parameters + V = 0.125*1e-15 # um^3 -> liters + NA = 6.022e23/1e6 + tauR = 0.002 #time constant for Ca decay + tauF = 0.01 + tics_per_second = 1000 + + #Rate Constants + k_on1C = 4/(NA*V) #1/uM 1/s + k_off1C = 40.24 #1/s + k_on2C = 10/(NA*V) #1/uM 1/s + k_off2C = 9.3 #1/s + k_on1N = 100/(NA*V) #1/uM 1/s + k_off1N = 2660 #1/s + k_on2N = 150/(NA*V) #1/uM 1/s + k_off2N = 990 #1/s + + k_onCaM0 = (3.8/(NA*V))/1000 #1/uM 1/s + k_offCaM0 = 6.56 #1/s + k_onCaM1C = (59/(NA*V))/1000 #1/uM 1/s + k_offCaM1C = 6.72 #1/s + k_onCaM2C = 0.92/(NA*V) #1/uM 1/s + k_offCaM2C = 6.35 #1/s + k_onCaM1C1N = 0.33/(NA*V) #1/uM 1/s + k_offCaM1C1N = 5.68 #1/s + k_onCaM2C1N = 5.2/(NA*V) #1/uM 1/s + k_offCaM2C1N = 5.25 #1/s + k_onCaM1N = (22/(NA*V))/1000 #1/mM 1/s + k_offCaM1N = 5.75 #1/s + k_onCaM2N = 0.1/(NA*V) #1/uM 1/s + k_offCaM2N = 1.68 #1/s + k_onCaM1C2N = 1.9/(NA*V) #1/uM 1/s + k_offCaM1C2N = 2.09 #1/s + k_onCaM4 = 30/(NA*V) #1/uM 1/s + k_offCaM4 = 1.95 #1/s + + k_onK1C = 44/(NA*V) #1/uM 1/s + k_offK1C = 29.04 #1/s + k_onK2C = 44/(NA*V) #1/uM 1/s + k_offK2C = 2.52 #1/s + k_onK1N = 75/(NA*V) #1/uM 1/s + k_offK1N = 301.5 #1/s + k_onK2N = 76/(NA*V) #1/uM 1/s + k_offK2N = 32.68 #1/s + + k_onCaMKII = 50/(NA*V) #1/uM 1/s + k_offCaMKII = 1000 #60 #1/s + + k_pCaM0 = 0 #1/s + k_pCaM1C = 0.032 #1/s + k_pCaM2C = 0.064 #1/s + k_pCaM1C1N = 0.094 #1/s + k_pCaM2C1N = 0.124 #1/s + k_pCaM1N = 0.06 #1/s + k_pCaM2N = 0.12 #1/s + k_pCaM1C2N = 0.154 #1/s + k_pCaM4 = 0.96 #1/s + #k_decayCa = 10 #1/s + + # Binding neurogranin + k_onNg = 5/(NA*V) #1/uM 1/s + k_offNg = 1 #1/s + + #CaM binding and unbinding to phospoeylated CaMKII, not present in Pepke model, rates adjusted/borrowd from the Pepke model, and Meyer et al Scinece 1992 + k_onpCaM0 = (3.8/(NA*V))/3000 #1/uM 1/s + k_onpCaM1C = (59/(NA*V))/3000 #1/uM 1/s + k_onpCaM2C = 0.92/(NA*V)/3 #1/uM 1/s + k_onpCaM1C1N = 3.4/(NA*V)/3 #1/uM 1/s + k_onpCaM2C1N = 5.2/(NA*V)/3 #1/uM 1/s + k_onpCaM1N = (22/(NA*V))/3000 #1/mM 1/s + k_onpCaM2N = 0.12/(NA*V)/3 #1/uM 1/s + k_onpCaM1C2N = 1.9/(NA*V)/3 #1/uM 1/s + k_onpCaM4 = 37/(NA*V)/3 #1/uM 1/s + k_offpCaM4 = 0.07 #1/s + + # Dephosphorylation + k_cat = (31/1.25)/60 + K_m = 11*(NA*V) + +end parameters + +begin molecule types + Ca() + CaM(C~0~1~2,N~0~1~2,ng,camkii) + Ng(cam) + CaMKII(d,r,l,Y286~0~P,S306~0~P,cam) + PP1() + time_counter() + test +end molecule types +begin seed species + Ca() 0.2*(NA*V) #uM (0.5-250) + CaM(C~0,N~0,ng,camkii) 10*(NA*V) %(10, 30 50 or 100)*(NA*V) +# Ng(cam) 20*(NA*V) #uM + CaMKII(d,r,l,Y286~0,S306~0,cam) 80*(NA*V) #uM (40-200) + PP1() 1.25*(NA*V) +end seed species + + + +begin observables + Molecules Ca Ca() + Molecules CaM CaM() + Molecules CaM1N CaM(C~0,N~1,camkii) + Molecules CaM2N CaM(C~0,N~2,camkii) + Molecules CaM1C CaM(C~1,N~0,camkii) + Molecules CaM1C1N CaM(C~1,N~1,camkii) + Molecules CaM1C2N CaM(C~1,N~2,camkii) + Molecules CaM2C CaM(C~2,N~0,camkii) + Molecules Cam2C1N CaM(C~2,N~1,camkii) + Molecules Cam4Ca CaM(C~2,N~2,camkii) + Molecules KCaM1N CaMKII(Y286~0,cam!1).CaM(C~0,N~1,camkii!1) + Molecules KCaM2N CaMKII(Y286~0,cam!1).CaM(C~0,N~2,camkii!1) + Molecules KCaM1C CaMKII(Y286~0,cam!1).CaM(C~1,N~0,camkii!1) + Molecules KCaM1C1N CaMKII(Y286~0,cam!1).CaM(C~1,N~1,camkii!1) + Molecules KCaM1C2N CaMKII(Y286~0,cam!1).CaM(C~1,N~2,camkii!1) + Molecules KCaM2C CaMKII(Y286~0,cam!1).CaM(C~2,N~0,camkii!1) + Molecules KCaM2C1N CaMKII(Y286~0,cam!1).CaM(C~2,N~1,camkii!1) + Molecules KCaM4Ca CaMKII(Y286~0,cam!1).CaM(C~2,N~2,camkii!1) + Molecules KCaM0 CaMKII(Y286~0,cam!1).CaM(C~0,N~0,camkii!1) + Molecules KCaM CaMKII(Y286~0,cam!1).CaM(camkii!1) + Molecules pKCaM0 CaMKII(Y286~P,cam!1).CaM(C~0,N~0,camkii!1) + Molecules pKCaM1N CaMKII(Y286~P,cam!1).CaM(C~0,N~1,camkii!1) + Molecules pKCaM2N CaMKII(Y286~P,cam!1).CaM(C~0,N~2,camkii!1) + Molecules pKCaM1C CaMKII(Y286~P,cam!1).CaM(C~1,N~0,camkii!1) + Molecules pKCaM1C1N CaMKII(Y286~P,cam!1).CaM(C~1,N~1,camkii!1) + Molecules pKCaM1C2N CaMKII(Y286~P,cam!1).CaM(C~1,N~2,camkii!1) + Molecules pKCaM2C CaMKII(Y286~P,cam!1).CaM(C~2,N~0,camkii!1) + Molecules pKCam2C1N CaMKII(Y286~P,cam!1).CaM(C~2,N~1,camkii!1) + Molecules pKCam4Ca CaMKII(Y286~P,cam!1).CaM(C~2,N~2,camkii!1) + Molecules pKCaM CaMKII(Y286~P,cam!1).CaM(camkii!1) + Molecules KCaMII CaMKII(Y286~0,cam) + Molecules pKCaMII CaMKII(Y286~P,cam) + Molecules KCaMII_tot CaMKII(Y286~0) + Molecules pKCaMII_tot CaMKII(Y286~P) + Molecules tics time_counter() + +end observables + +begin functions +t() max(tics/tics_per_second-350,0) +#alpha_function() 448*(NA*V)*(t()/tauR)*exp(-(t()/tauF)) ##### Measures 10uM Ca with 30uM CaM and 20uM Ng +alpha_function() 965*(NA*V)*(t()/tauR)*exp(-(t()/tauF)) ##### Measures 10uM Ca with 30uM CaM and no Ng +#alpha_function() 1106*(NA*V)*(t()/tauR)*exp(-(t()/tauF)) ##### Measures 10uM Ca with 50uM CaM and 20uM Ng +#alpha_function() 2306*(NA*V)*(t()/tauR)*exp(-(t()/tauF)) ##### Measures 10uM Ca with 50uM CaM and no Ng +#alpha_function() 5600*(NA*V)*(t()/tauR)*exp(-(t()/tauF)) ##### Measures 10uM Ca with 100uM CaM and no Ng +#alpha_function() 4600*(NA*V)*(t()/tauR)*exp(-(t()/tauF)) ##### Measures 10uM Ca with 100uM CaM and 20uM Ng +end functions + +begin reaction rules + CaM(C~0,ng,camkii) + Ca <-> CaM(C~1,ng,camkii) k_on1C,k_off1C + CaM(C~1,ng,camkii) + Ca <-> CaM(C~2,ng,camkii) k_on2C,k_off2C + CaM(N~0,ng,camkii) + Ca <-> CaM(N~1,ng,camkii) k_on1N,k_off1N + CaM(N~1,ng,camkii) + Ca <-> CaM(N~2,ng,camkii) k_on2N,k_off2N + CaMKII(l,r,Y286~0,cam) + CaM(C~0,N~0,ng,camkii) <-> CaMKII(l,r,Y286~0,cam!1).CaM(C~0,N~0,ng,camkii!1) k_onCaM0,k_offCaM0 + CaMKII(l,r,Y286~0,cam) + CaM(C~1,N~0,camkii) <-> CaMKII(l,r,Y286~0,cam!1).CaM(C~1,N~0,camkii!1) k_onCaM1C,k_offCaM1C + CaMKII(l,r,Y286~0,cam) + CaM(C~2,N~0,camkii) <-> CaMKII(l,r,Y286~0,cam!1).CaM(C~2,N~0,camkii!1) k_onCaM2C,k_offCaM2C + CaMKII(l,r,Y286~0,cam) + CaM(C~0,N~1,camkii) <-> CaMKII(l,r,Y286~0,cam!1).CaM(C~0,N~1,camkii!1) k_onCaM1N,k_offCaM1N + CaMKII(l,r,Y286~0,cam) + CaM(C~1,N~1,camkii) <-> CaMKII(l,r,Y286~0,cam!1).CaM(C~1,N~1,camkii!1) k_onCaM1C1N,k_offCaM1C1N + CaMKII(l,r,Y286~0,cam) + CaM(C~2,N~1,camkii) <-> CaMKII(l,r,Y286~0,cam!1).CaM(C~2,N~1,camkii!1) k_onCaM2C1N,k_offCaM2C1N + CaMKII(l,r,Y286~0,cam) + CaM(C~0,N~2,camkii) <-> CaMKII(l,r,Y286~0,cam!1).CaM(C~0,N~2,camkii!1) k_onCaM2N,k_offCaM2N + CaMKII(l,r,Y286~0,cam) + CaM(C~1,N~2,camkii) <-> CaMKII(l,r,Y286~0,cam!1).CaM(C~1,N~2,camkii!1) k_onCaM1C2N,k_offCaM1C2N + CaMKII(l,r,Y286~0,cam) + CaM(C~2,N~2,camkii) <-> CaMKII(l,r,Y286~0,cam!1).CaM(C~2,N~2,camkii!1) k_onCaM4,k_offCaM4 + + CaMKII(l,r,Y286~0,cam!1).CaM(C~0,ng,camkii!1) + Ca <-> CaMKII(l,r,Y286~0,cam!1).CaM(C~1,ng,camkii!1) k_onK1C, k_offK1C + CaMKII(l,r,Y286~0,cam!1).CaM(C~1,camkii!1) + Ca <-> CaMKII(l,r,Y286~0,cam!1).CaM(C~2,camkii!1) k_onK2C, k_offK2C + CaMKII(l,r,Y286~0,cam!1).CaM(N~0,ng,camkii!1) + Ca <-> CaMKII(l,r,Y286~0,cam!1).CaM(N~1,ng,camkii!1) k_onK1N, k_offK1N + CaMKII(l,r,Y286~0,cam!1).CaM(N~1,camkii!1) + Ca <-> CaMKII(l,r,Y286~0,cam!1).CaM(N~2,camkii!1) k_onK2N, k_offK2N +# CaMKII(l,r,Y286~0,cam!+) + CaMKII(l,r,cam!+) <-> CaMKII(l!1,r,Y286~0,cam!+).CaMKII(l,r!1,cam!+) k_onCaMKII, k_offCaMKII + CaMKII(l,r,cam!+) + CaMKII(l,r,cam!+,Y286~0) <-> CaMKII(l!1,r,cam!+).CaMKII(l,r!1,cam!+,Y286~0) k_onCaMKII, k_offCaMKII + CaMKII(l,r,cam!+) + CaMKII(l,r,Y286~P) <-> CaMKII(l!1,r,cam!+).CaMKII(l,r!1,Y286~P) k_onCaMKII, k_offCaMKII + CaMKII(l!1,r,Y286~0,cam!2).CaM(C~0,N~0,camkii!2).CaMKII(l,r!1,cam!+,Y286~0) -> CaMKII(l,r,Y286~P,cam!1).CaM(C~0,N~0,camkii!1) + CaMKII(l,r,cam!+,Y286~0) k_pCaM0 + CaMKII(l!1,r,Y286~0,cam!2).CaM(C~0,N~0,camkii!2).CaMKII(l,r!1,Y286~P) -> CaMKII(l,r,Y286~P,cam!1).CaM(C~0,N~0,camkii!1) + CaMKII(l,r,Y286~P) k_pCaM0 + CaMKII(l!1,r,Y286~0,cam!2).CaM(C~1,N~0,camkii!2).CaMKII(l,r!1,cam!+,Y286~0) -> CaMKII(l,r,Y286~P,cam!1).CaM(C~1,N~0,camkii!1) + CaMKII(l,r,cam!+,Y286~0) k_pCaM1C + CaMKII(l!1,r,Y286~0,cam!2).CaM(C~1,N~0,camkii!2).CaMKII(l,r!1,Y286~P) -> CaMKII(l,r,Y286~P,cam!1).CaM(C~1,N~0,camkii!1) + CaMKII(l,r,Y286~P) k_pCaM1C + CaMKII(l!1,r,Y286~0,cam!2).CaM(C~2,N~0,camkii!2).CaMKII(l,r!1,cam!+,Y286~0) -> CaMKII(l,r,Y286~P,cam!1).CaM(C~2,N~0,camkii!1) + CaMKII(l,r,cam!+,Y286~0) k_pCaM2C + CaMKII(l!1,r,Y286~0,cam!2).CaM(C~2,N~0,camkii!2).CaMKII(l,r!1,Y286~P) -> CaMKII(l,r,Y286~P,cam!1).CaM(C~2,N~0,camkii!1) + CaMKII(l,r,Y286~P) k_pCaM2C + CaMKII(l!1,r,Y286~0,cam!2).CaM(C~0,N~1,camkii!2).CaMKII(l,r!1,cam!+,Y286~0) -> CaMKII(l,r,Y286~P,cam!1).CaM(C~0,N~1,camkii!1) + CaMKII(l,r,cam!+,Y286~0) k_pCaM1N + CaMKII(l!1,r,Y286~0,cam!2).CaM(C~0,N~1,camkii!2).CaMKII(l,r!1,Y286~P) -> CaMKII(l,r,Y286~P,cam!1).CaM(C~0,N~1,camkii!1) + CaMKII(l,r,Y286~P) k_pCaM1N + CaMKII(l!1,r,Y286~0,cam!2).CaM(C~1,N~1,camkii!2).CaMKII(l,r!1,cam!+,Y286~0) -> CaMKII(l,r,Y286~P,cam!1).CaM(C~1,N~1,camkii!1) + CaMKII(l,r,cam!+,Y286~0) k_pCaM1C1N + CaMKII(l!1,r,Y286~0,cam!2).CaM(C~1,N~1,camkii!2).CaMKII(l,r!1,Y286~P) -> CaMKII(l,r,Y286~P,cam!1).CaM(C~1,N~1,camkii!1) + CaMKII(l,r,Y286~P) k_pCaM1C1N + CaMKII(l!1,r,Y286~0,cam!2).CaM(C~2,N~1,camkii!2).CaMKII(l,r!1,cam!+,Y286~0) -> CaMKII(l,r,Y286~P,cam!1).CaM(C~2,N~1,camkii!1) + CaMKII(l,r,cam!+,Y286~0) k_pCaM2C1N + CaMKII(l!1,r,Y286~0,cam!2).CaM(C~2,N~1,camkii!2).CaMKII(l,r!1,Y286~P) -> CaMKII(l,r,Y286~P,cam!1).CaM(C~2,N~1,camkii!1) + CaMKII(l,r,Y286~P) k_pCaM2C1N + CaMKII(l!1,r,Y286~0,cam!2).CaM(C~0,N~2,camkii!2).CaMKII(l,r!1,cam!+,Y286~0) -> CaMKII(l,r,Y286~P,cam!1).CaM(C~0,N~2,camkii!1) + CaMKII(l,r,cam!+,Y286~0) k_pCaM2N + CaMKII(l!1,r,Y286~0,cam!2).CaM(C~0,N~2,camkii!2).CaMKII(l,r!1,Y286~P) -> CaMKII(l,r,Y286~P,cam!1).CaM(C~0,N~2,camkii!1) + CaMKII(l,r,Y286~P) k_pCaM2N + CaMKII(l!1,r,Y286~0,cam!2).CaM(C~1,N~2,camkii!2).CaMKII(l,r!1,cam!+,Y286~0) -> CaMKII(l,r,Y286~P,cam!1).CaM(C~1,N~2,camkii!1) + CaMKII(l,r,cam!+,Y286~0) k_pCaM1C2N + CaMKII(l!1,r,Y286~0,cam!2).CaM(C~1,N~2,camkii!2).CaMKII(l,r!1,Y286~P) -> CaMKII(l,r,Y286~P,cam!1).CaM(C~1,N~2,camkii!1) + CaMKII(l,r,Y286~P) k_pCaM1C2N + CaMKII(l!1,r,Y286~0,cam!2).CaM(C~2,N~2,camkii!2).CaMKII(l,r!1,cam!+,Y286~0) -> CaMKII(l,r,Y286~P,cam!1).CaM(C~2,N~2,camkii!1) + CaMKII(l,r,cam!+,Y286~0) k_pCaM4 + CaMKII(l!1,r,Y286~0,cam!2).CaM(C~2,N~2,camkii!2).CaMKII(l,r!1,Y286~P) -> CaMKII(l,r,Y286~P,cam!1).CaM(C~2,N~2,camkii!1) + CaMKII(l,r,Y286~P) k_pCaM4 + CaM(C~0,N~0,ng,camkii) + Ng(cam) <-> CaM(C~0,N~0,ng!1,camkii).Ng(cam!1) k_onNg, k_offNg + CaMKII(l,r,Y286~P) + PP1 -> CaMKII(l,r,Y286~0) + PP1 MM(k_cat,K_m) + + #######!!!!!!!!!!####### + #CaM binding and unbinding to phospoeylated CaMKII, not present in Pepke model, rates adjusted/borrowd from the Pepke model, and Meyer et al Scinece 1992 + CaMKII(l,r,Y286~P,cam) + CaM(C~0,N~0,ng,camkii) <-> CaMKII(l,r,Y286~P,cam!1).CaM(C~0,N~0,ng,camkii!1) k_onpCaM0,k_offpCaM4 + CaMKII(l,r,Y286~P,cam) + CaM(C~1,N~0,camkii) <-> CaMKII(l,r,Y286~P,cam!1).CaM(C~1,N~0,camkii!1) k_onpCaM1C,k_offpCaM4 + CaMKII(l,r,Y286~P,cam) + CaM(C~2,N~0,camkii) <-> CaMKII(l,r,Y286~P,cam!1).CaM(C~2,N~0,camkii!1) k_onpCaM2C,k_offpCaM4 + CaMKII(l,r,Y286~P,cam) + CaM(C~0,N~1,camkii) <-> CaMKII(l,r,Y286~P,cam!1).CaM(C~0,N~1,camkii!1) k_onpCaM1N,k_offpCaM4 + CaMKII(l,r,Y286~P,cam) + CaM(C~1,N~1,camkii) <-> CaMKII(l,r,Y286~P,cam!1).CaM(C~1,N~1,camkii!1) k_onpCaM1C1N,k_offpCaM4 + CaMKII(l,r,Y286~P,cam) + CaM(C~2,N~1,camkii) <-> CaMKII(l,r,Y286~P,cam!1).CaM(C~2,N~1,camkii!1) k_onpCaM2C1N,k_offpCaM4 + CaMKII(l,r,Y286~P,cam) + CaM(C~0,N~2,camkii) <-> CaMKII(l,r,Y286~P,cam!1).CaM(C~0,N~2,camkii!1) k_onpCaM2N,k_offpCaM4 + CaMKII(l,r,Y286~P,cam) + CaM(C~1,N~2,camkii) <-> CaMKII(l,r,Y286~P,cam!1).CaM(C~1,N~2,camkii!1) k_onpCaM1C2N,k_offpCaM4 + CaMKII(l,r,Y286~P,cam) + CaM(C~2,N~2,camkii) <-> CaMKII(l,r,Y286~P,cam!1).CaM(C~2,N~2,camkii!1) k_onpCaM4,k_offpCaM4 + + 0 -> time_counter() tics_per_second + 0 -> Ca() alpha_function() + 0 <-> Ca 300, 3000/(NA*V) + 0 -> test t() +end reaction rules +end model +generate_network({overwrite=>1}) +simulate({method=>"ode",t_end =>600,n_steps => 100000}) + + diff --git a/Published/Ordyan2020/mCaMKIICaSpike/metadata.yaml b/Published/Ordyan2020/mCaMKIICaSpike/metadata.yaml new file mode 100644 index 00000000..3b80909f --- /dev/null +++ b/Published/Ordyan2020/mCaMKIICaSpike/metadata.yaml @@ -0,0 +1,22 @@ +id: "mCaMKII_Ca_Spike" +name: "Ordyan 2020: mCaMKII Ca Spike" +description: "mCaMKII Ca Spike model" +tags: ["published", "neuroscience", "mcamkii", "ca", "spike", "cam", "ng", "camkii", "pp1", "time_counter"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/Ordyan_2020/mCaMKII_Ca_Spike.bngl" +playground: + visible: true + gallery_category: "signaling" + featured: false + difficulty: "intermediate" diff --git a/Published/Pekalski2013/Pekalski_2013.bngl b/Published/Pekalski2013/Pekalski_2013.bngl new file mode 100644 index 00000000..96029db3 --- /dev/null +++ b/Published/Pekalski2013/Pekalski_2013.bngl @@ -0,0 +1,281 @@ +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +# # +# NF-kB regulatory system with autocrine TNFa stimulation # +# # +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +begin parameters + + # ----- Cell parameters --------------------------------------------- + + k_v 5 # ratio of C:N volumes + R 7e+3 # median number of receptors + K_N 1e+5 # number of IKKK molecules + K_NN 2e+5 # number of IKK molecules + NFkB_tot 1e+5 # number of NF-kB molecules + + + # ----- Reaction parameters ----------------------------------------- + + # TNFR1 activation and signal transduction cascade + # + c_deg 2e-4 + k_b 1.2e-5 + c_sec 1e-5 + c_b 1e+4 + k_f 1.2e-3 + k_a 1e-5 + k_A20 1e+5 + k_i 1e-2 + k_1 6e-10 + k_2 1e+4 + k_3 2e-3 + k_4 1e-3 + + # IkB, A20 and TNF gene expression + # + q_1 4e-7 + q_2 1e-6 + q_1t 4e-8 + q_2t 1e-6 + q_2tt 2e-3 + lambda 0.025 # for SK-N-AS cells: 0.025, for MEFs: 0.004 + c_1 1e-1 + c_3 7.5e-4 + c_4 5e-1 + c_3t 7.5e-4 + c_4t 5e-2 + + # Protein interactions + # + a_1 5e-7 + a_2 1e-7 + a_3 5e-7 + c_5 5e-4 + t_p 1e-2 + c_5a 1e-4 + c_5t 2e-4 + c_6a 2e-5 + + # Transport + # + i_1 1e-2 + e_2a 5e-2 + i_1a 2e-3 + e_1a 5e-3 + + # Complex + # + k_NFkBIkB a_1 * k_v + k_TNFdeg c_sec + c_5t + +end parameters + + +# ============================================================================= + + +begin molecule types + + TNFR(st~a~i) # active/inactive TNFR1 receptors + IKK(st~n~a~i~ii) # neutral/active/inactive/inactive intermediate form of IKK kinase + IKKK(st~n~a) # neutral/active form of IKKK + IkBa(loc~n~c,pho~0~p,bin) # nuclear/cytoplasmic, unphosphorylated/phosphorylated IkB + IkBa_mRNA() # IkBa transcript + A20() # cytoplasmic A20 + A20_mRNA() # A20 transcript + NFkB(loc~n~c,bin) # nuclear/cytoplasmic NFkB + TNF(loc~e~i) # extracellular/intracellular TNFa + TNF_mRNA() # TNFa transcript + GIkBa(st~0~1) # discrete random variable, st of IkBa gene + GA20(st~0~1) # discrete random variable, st of A20 gene + GTNF(st~0~1) # discrete random variable, st of TNFa gene + Trash() +# NFkB(loc~c,bin!0).IkBa(loc~c,pho~0,bin!0) # cytoplasmic (NF-kB|IkB) complexes +# NFkB(loc~n,bin!0).IkBa(loc~n,pho~0,bin!0) # nuclear (NF-kB|IkB) complexes +# NFkB(loc~c,bin!0).IkBa(loc~c,pho~p,bin!0) # phosphorylated cytoplasmic IkB complexed to NF-kB + +end molecule types + + +# ============================================================================= + + +begin seed species + + TNFR(st~a) 0 + TNFR(st~i) R + IKK(st~n) K_NN + IKK(st~a) 0 + IKK(st~i) 0 + IKK(st~ii) 0 + IKKK(st~n) K_N + IKKK(st~a) 0 + IkBa(loc~n,pho~p,bin) 0 + IkBa(loc~n,pho~0,bin) 0.06*NFkB_tot + IkBa(loc~c,pho~0,bin) 0.1*NFkB_tot + IkBa_mRNA() 10 + A20() 3*1e4 + A20_mRNA() 10 + NFkB(loc~n,bin) 0 + NFkB(loc~c,bin) 1e5-NFkB_tot + TNF(loc~e) 0 + TNF(loc~i) 0 + TNF_mRNA() 0 + GIkBa(st~0) 2 #2 Number of IkBa gene copies + GIkBa(st~1) 0 + GA20(st~0) 2 #2 Number of A20 gene copies + GA20(st~1) 0 + GTNF(st~0) 2 #2 Number of TNFa gene copies + GTNF(st~1) 0 + NFkB(loc~c,bin!0).IkBa(loc~c,pho~0,bin!0) NFkB_tot + NFkB(loc~n,bin!0).IkBa(loc~n,pho~0,bin!0) 0 + NFkB(loc~c,bin!0).IkBa(loc~c,pho~p,bin!0) 0 + + Trash() 0 + +end seed species + + +# ============================================================================= + + +begin observables + + Species TNFR_a TNFR(st~a) + Species TNFR_i TNFR(st~i) + Species A20 A20() + Species IKKK_a IKKK(st~a) + Species IKK_a IKK(st~a) + Species NFkB_nuc NFkB(loc~n,bin) + Species NFkB_cyt NFkB(loc~c,bin) + Species NFkB_IkBa_p_cyt NFkB(loc~c,bin!0).IkBa(loc~c,pho~p,bin!0) + Species NFkB_IkBa_u_cyt NFkB(loc~c,bin!0).IkBa(loc~c,pho~0,bin!0) + Species NFkB_IkBa_u_nuc NFkB(loc~n,bin!0).IkBa(loc~n,pho~0,bin!0) + Species TNF_ext TNF(loc~e) + Species TNF_int TNF(loc~i) + Species IKK_n IKK(st~n) + Species IKK_i IKK(st~i) + Species IkBa_p_cyt IkBa(loc~c,pho~p,bin) + Species IkBa_u_cyt IkBa(loc~c,pho~0,bin) + Species IkBa_u_nuc IkBa(loc~n,pho~0,bin) + Species tA20 A20_mRNA() + Species tIkB IkBa_mRNA() + Species tTNF TNF_mRNA() + Species gA20_a GA20(st~1) + Species gA20_i GA20(st~0) + Species gTNF_a GTNF(st~1) + Species gTNF_i GTNF(st~0) + Species gIkBa_a GIkBa(st~1) + Species gIkBa_i GIkBa(st~0) + + + # observables + + Molecules IKK_tot_ IKK() + Molecules NFkB_tot_ NFkB() + Molecules IKKK_tot_ IKKK() + +end observables + + +# ============================================================================= + + +begin functions + + k_Ractivation c_sec/(TNFR_i+c_b) + k_IKKKactivation TNFR_a*k_a*k_A20/(k_A20+A20) + k_IKKactivation k_1*IKKK_a*IKKK_a + k_IKKintermetiation k_3/k_2*(k_2+A20) + +end functions + + +# ============================================================================= + + +begin reaction rules + + # TNFR1 activation and signal transduction cascade + # + TNF(loc~e) -> Trash() c_deg + TNFR(st~i) + TNF(loc~e) -> TNFR(st~a) + TNF(loc~e) k_b + TNFR(st~i) + TNF(loc~i) -> TNFR(st~a) + TNF(loc~i) k_Ractivation + TNFR(st~a) -> TNFR(st~i) k_f + IKKK(st~n) -> IKKK(st~a) k_IKKKactivation + IKKK(st~a) -> IKKK(st~n) k_i + IKK(st~n) -> IKK(st~a) k_IKKactivation + IKK(st~a) -> IKK(st~i) k_IKKintermetiation + IKK(st~i) -> IKK(st~ii) k_4 + IKK(st~ii) -> IKK(st~n) k_4 + + # IkB, A20 and TNF gene expression + # + NFkB(loc~n,bin) + GA20(st~0) -> NFkB(loc~n,bin) + GA20(st~1) q_1 + NFkB(loc~n,bin) + GIkBa(st~0) -> NFkB(loc~n,bin) + GIkBa(st~1) q_1 + IkBa(loc~n,pho~0,bin) + GA20(st~1) -> IkBa(loc~n,pho~0,bin)+ GA20(st~0) q_2 + IkBa(loc~n,pho~0,bin) + GIkBa(st~1) -> IkBa(loc~n,pho~0,bin)+ GIkBa(st~0) q_2 + NFkB(loc~n,bin) + GTNF(st~0) -> NFkB(loc~n,bin) + GTNF(st~1) q_1t + IkBa(loc~n,pho~0,bin) + GTNF(st~1) -> IkBa(loc~n,pho~0,bin)+ GTNF(st~0) q_2t + + GTNF(st~1) -> GTNF(st~0) q_2tt + GTNF(st~1) -> GTNF(st~1) + TNF_mRNA() lambda + GA20(st~1) -> GA20(st~1) + A20_mRNA() c_1 + GIkBa(st~1) -> GIkBa(st~1) + IkBa_mRNA() c_1 + + A20_mRNA() -> Trash() c_3 + IkBa_mRNA() -> Trash() c_3 + A20_mRNA() -> A20_mRNA() + A20() c_4 + IkBa_mRNA() -> IkBa_mRNA() + IkBa(loc~c,pho~0,bin) c_4 + TNF_mRNA() -> Trash() c_3t + TNF_mRNA() -> TNF_mRNA() + TNF(loc~i) c_4t + + # Protein interactions + # + NFkB(loc~c,bin) + IkBa(loc~c,pho~0,bin) -> NFkB(loc~c,bin!0).IkBa(loc~c,pho~0,bin!0) a_1 + NFkB(loc~n,bin) + IkBa(loc~n,pho~0,bin) -> NFkB(loc~n,bin!0).IkBa(loc~n,pho~0,bin!0) k_NFkBIkB + IkBa(loc~c,pho~0,bin)+ IKK(st~a) -> IkBa(loc~c,pho~p,bin)+ IKK(st~a) a_2 + NFkB(loc~c,bin!0).IkBa(loc~c,pho~0,bin!0)+IKK(st~a)-> NFkB(loc~c,bin!0).IkBa(loc~c,pho~p,bin!0)+IKK(st~a) a_3 + A20() -> Trash() c_5 + IkBa(loc~c,pho~p,bin) -> Trash() t_p + NFkB(loc~c,bin!0).IkBa(loc~c,pho~p,bin!0) -> NFkB(loc~c,bin) t_p + IkBa(loc~c,pho~0,bin) -> Trash() c_5a + TNF(loc~i) -> Trash() k_TNFdeg + NFkB(loc~c,bin!0).IkBa(loc~c,pho~0,bin!0) -> NFkB(loc~c,bin) c_6a + + # Transport + # + NFkB(loc~c,bin) -> NFkB(loc~n,bin) i_1 + IkBa(loc~c,pho~0,bin) -> IkBa(loc~n,pho~0,bin) i_1a + IkBa(loc~n,pho~0,bin) -> IkBa(loc~c,pho~0,bin) e_1a + NFkB(loc~n,bin!0).IkBa(loc~n,pho~0,bin!0) -> NFkB(loc~c,bin!0).IkBa(loc~c,pho~0,bin!0) e_2a + +end reaction rules + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +generate_network({overwrite=>1}); + +#writeSBML({}); +#writeMfile({}); + + +#- - - - - - - - Deterministic Simulation - - - - - - - - +# +simulate_ode({suffix=>"ode1",t_end=>300*3600,n_steps=>1800}); +# +setConcentration("TNF(loc~e)",1); +# +simulate_ode({suffix=>"ode2",t_end=>10*3600,n_steps=>600}); + + +# - - - - - - - - Stochastic Simulation - - - - - - - - - - +# +# resetConcentrations(); +# simulate_ssa({suffix=>"ssa1",t_end=>300*3600,n_steps=>1800}); +# +# setConcentration("TNF(loc~e)",1); +# simulate_ssa({suffix=>"ssa2",t_end=>10*3600,n_steps=>600}); \ No newline at end of file diff --git a/Published/Pekalski2013/README.md b/Published/Pekalski2013/README.md new file mode 100644 index 00000000..23d408ce --- /dev/null +++ b/Published/Pekalski2013/README.md @@ -0,0 +1,21 @@ +# Pekalski 2013 + +Spontaneous signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Pekalski_2013.bngl + +## Tags + +published, pekalski, 2013, tnfr, ikk, ikkk, ikba, ikba_mrna, a20, a20_mrna, nfkb diff --git a/Published/Pekalski2013/metadata.yaml b/Published/Pekalski2013/metadata.yaml new file mode 100644 index 00000000..a4f6c9ac --- /dev/null +++ b/Published/Pekalski2013/metadata.yaml @@ -0,0 +1,22 @@ +id: "Pekalski_2013" +name: "Pekalski 2013" +description: "Spontaneous signaling" +tags: ["published", "pekalski", "2013", "tnfr", "ikk", "ikkk", "ikba", "ikba_mrna", "a20", "a20_mrna", "nfkb"] +category: "regulation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/cell-regulation/Pekalski_2013.bngl" +playground: + visible: true + gallery_category: "regulation" + featured: false + difficulty: "intermediate" diff --git a/Published/RulebasedRantransport/README.md b/Published/RulebasedRantransport/README.md new file mode 100644 index 00000000..03ddfd52 --- /dev/null +++ b/Published/RulebasedRantransport/README.md @@ -0,0 +1,21 @@ +# Rule based Ran transport + +Nuclear Ran transport + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Rule_based_Ran_transport.bngl + +## Tags + +published, rule, based, ran, transport, c, rcc1, generate_network diff --git a/Published/RulebasedRantransport/Rule_based_Ran_transport.bngl b/Published/RulebasedRantransport/Rule_based_Ran_transport.bngl new file mode 100644 index 00000000..37099a6f --- /dev/null +++ b/Published/RulebasedRantransport/Rule_based_Ran_transport.bngl @@ -0,0 +1,54 @@ +begin model + +begin compartments +nuc 3 1 +cyt 3 1 +EC 3 1 +pm 2 1 +nm 2 1 +end compartments + +begin parameters +end parameters + +begin molecule types +Ran(cargo) +C(site,Y1~u~p,Y2~u~p,Y3~u~p) +RCC1(site) +end molecule types + +begin anchors +RCC1(nuc) +end anchors + +begin seed species +1 @nuc:Ran(cargo!1).C(site!1,Y1~u,Y2~u,Y3~u) 4.5E-4 +2 @nuc:RCC1(site) 4.5E-4 +end seed species + +begin observables +Molecules Ran_cyt @cyt:Ran() +Molecules Cargo_cyt @cyt:C() +Molecules RCC1_nuc @nuc:RCC1() +Molecules Cargo_phosp_cyt_total @nuc:C(Y1~p!?) @nuc:C(Y2~p!?) @nuc:C(Y3~p!?) +Molecules Cargo_nuc @nuc:C() +Molecules Cargo_phosp_cyt @cyt:C(Y1~p!?,Y2~p!?,Y3~p!?) +Molecules Ran_bound_cyt @cyt:Ran(cargo!+) +end observables + +begin functions +end functions + +begin reaction rules +Transport: @nuc:Ran(cargo!+) <-> @cyt:Ran(cargo!+) 2.0 * 602.0, 0.0 +Ran_C_bind_cyt: @cyt:Ran(cargo!1).C(site!1) <-> @cyt:Ran(cargo) + @cyt:C(site) 1.0, 100.0 +C_p1: @cyt:C(Y3~u!?) <-> @cyt:C(Y3~p!?) 10.0, 1.0 +C_p2: @cyt:C(Y2~u!?) <-> @cyt:C(Y2~p!?) 10.0, 1.0 +C_p3: @cyt:C(Y1~u!?) <-> @cyt:C(Y1~p!?) 10.0, 1.0 +Ran_RCC1_bind: @nuc:Ran(cargo) + @nuc:RCC1(site) <-> @nuc:Ran(cargo!1).RCC1(site!1) 1.0, 100.0 +Ran_C_bind_nuc: @nuc:Ran(cargo!1).C(site!1) <-> @nuc:Ran(cargo) + @nuc:C(site) 1.0, 100.0 +end reaction rules + +end model + +generate_network({max_iter=>10,max_agg=>10,max_stoich=>{Ran=>100,C=>100,RCC1=>100},overwrite=>1}) \ No newline at end of file diff --git a/Published/RulebasedRantransport/metadata.yaml b/Published/RulebasedRantransport/metadata.yaml new file mode 100644 index 00000000..153da82c --- /dev/null +++ b/Published/RulebasedRantransport/metadata.yaml @@ -0,0 +1,22 @@ +id: "Rule_based_Ran_transport" +name: "Rule based Ran transport" +description: "Nuclear Ran transport" +tags: ["published", "rule", "based", "ran", "transport", "c", "rcc1", "generate_network"] +category: "regulation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/cell-regulation/Rule_based_Ran_transport.bngl" +playground: + visible: false + gallery_category: "regulation" + featured: false + difficulty: "advanced" diff --git a/Published/RulebasedRantransportdraft/README.md b/Published/RulebasedRantransportdraft/README.md new file mode 100644 index 00000000..6d790c13 --- /dev/null +++ b/Published/RulebasedRantransportdraft/README.md @@ -0,0 +1,21 @@ +# Rule based Ran transport draft + +Ran transport (draft) + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Rule_based_Ran_transport_draft.bngl + +## Tags + +published, rule, based, ran, transport, draft, c, rcc1, generate_network diff --git a/Published/RulebasedRantransportdraft/Rule_based_Ran_transport_draft.bngl b/Published/RulebasedRantransportdraft/Rule_based_Ran_transport_draft.bngl new file mode 100644 index 00000000..1fcc495c --- /dev/null +++ b/Published/RulebasedRantransportdraft/Rule_based_Ran_transport_draft.bngl @@ -0,0 +1,54 @@ +begin model + +begin compartments +nuc 3 1 +cyt 3 1 +EC 3 1 +pm 2 1 +nm 2 1 +end compartments + +begin parameters +end parameters + +begin molecule types +Ran(cargo) +C(site,Y1~u~p,Y2~u~p,Y3~u~p) +RCC1(site) +end molecule types + +begin anchors +RCC1(nuc) +end anchors + +begin seed species +1 @nuc:Ran(cargo!1).C(site!1,Y1~u,Y2~u,Y3~u) 4.5E-4 +2 @nuc:RCC1(site) 4.5E-4 +end seed species + +begin observables +Molecules Ran_cyt @cyt:Ran() +Molecules Cargo_cyt @cyt:C() +Molecules RCC1_nuc @nuc:RCC1() +Molecules Cargo_phosp_cyt_total @nuc:C(site!?,Y1~p!?) @nuc:C(site!-,Y2~p!?) @nuc:C(Y3~p!?) +Molecules Cargo_nuc @nuc:C() +Molecules Cargo_phosp_cyt @cyt:C(site!+,Y1~p!?,Y2~p!?,Y3~p!?) +Molecules Ran_bound_cyt @cyt:Ran(cargo!+) +end observables + +begin functions +end functions + +begin reaction rules +Transport: @nuc:Ran(cargo!+) <-> @cyt:Ran(cargo!+) 2.0 * 602.0, 0.0 +Ran_C_bind_cyt: @cyt:Ran(cargo!1).C(site!1) <-> @cyt:Ran(cargo) + @cyt:C(site) 1.0, 100.0 +C_p1: @cyt:C(Y3~u!?) <-> @cyt:C(Y3~p!?) 10.0, 1.0 +C_p2: @cyt:C(Y2~u!?) <-> @cyt:C(Y2~p!?) 10.0, 1.0 +C_p3: @cyt:C(Y1~u!?) <-> @cyt:C(Y1~p!?) 10.0, 1.0 +Ran_RCC1_bind: @nuc:Ran(cargo) + @nuc:RCC1(site) <-> @nuc:Ran(cargo!1).RCC1(site!1) 1.0, 100.0 +Ran_C_bind_nuc: @nuc:Ran(cargo!1).C(site!1) <-> @nuc:Ran(cargo) + @nuc:C(site) 1.0, 100.0 +end reaction rules + +end model + +generate_network({max_iter=>10,max_agg=>10,max_stoich=>{Ran=>100,C=>100,RCC1=>100},overwrite=>1}) \ No newline at end of file diff --git a/Published/RulebasedRantransportdraft/metadata.yaml b/Published/RulebasedRantransportdraft/metadata.yaml new file mode 100644 index 00000000..2a5d9cb3 --- /dev/null +++ b/Published/RulebasedRantransportdraft/metadata.yaml @@ -0,0 +1,22 @@ +id: "Rule_based_Ran_transport_draft" +name: "Rule based Ran transport draft" +description: "Ran transport (draft)" +tags: ["published", "rule", "based", "ran", "transport", "draft", "c", "rcc1", "generate_network"] +category: "regulation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/cell-regulation/Rule_based_Ran_transport_draft.bngl" +playground: + visible: false + gallery_category: "regulation" + featured: false + difficulty: "advanced" diff --git a/Published/Rulebasedegfrcompart/README.md b/Published/Rulebasedegfrcompart/README.md new file mode 100644 index 00000000..6d20eca6 --- /dev/null +++ b/Published/Rulebasedegfrcompart/README.md @@ -0,0 +1,21 @@ +# Rule based egfr compart + +Compartmental EGFR model + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Rule_based_egfr_compart.bngl + +## Tags + +published, rule, based, egfr, compart, egf, grb2, shc, generate_network diff --git a/Published/Rulebasedegfrcompart/Rule_based_egfr_compart.bngl b/Published/Rulebasedegfrcompart/Rule_based_egfr_compart.bngl new file mode 100644 index 00000000..f7800b3d --- /dev/null +++ b/Published/Rulebasedegfrcompart/Rule_based_egfr_compart.bngl @@ -0,0 +1,59 @@ +begin model + +begin compartments +Cyt 3 1 +EC 3 1 +M 2 1 +end compartments + +begin parameters +end parameters + +begin molecule types +EGFR(ecd,tmd,y1068~u~p,y1173~u~p) +EGF(rb) +Grb2(sh2,sos) +Shc(sh3,Y773~p~u) +end molecule types + +begin anchors +EGFR(M) +EGF(M,EC) +end anchors + +begin seed species +1 @EC:EGF(rb) 680.0 +2 @M:EGFR(ecd,tmd,y1068~u,y1173~u) 602.0 +3 @Cyt:Shc(sh3,Y773~u) 150.0 +end seed species + +begin observables +Molecules EGFR_tot @M:EGFR() +Molecules EGF_EC @EC:EGF() +Molecules Shc_cyt @Cyt:Shc() +Molecules Dimers @M:EGFR(tmd!+) +Molecules Y1068_phosp @M:EGFR(y1068~p!?) +Molecules Y1173_phosp @M:EGFR(y1173~p!?) +Molecules Total_phosp @M:EGFR(y1068~p!?) @M:EGFR(y1173~p!?) +Molecules ShcP_Cyt @Cyt:Shc(Y773~p!?) +end observables + +begin functions +end functions + +begin reaction rules +r00_lig_bind: @EC:EGF(rb) + @M:EGFR(ecd,tmd) <-> @M:EGF(rb!1).EGFR(ecd!1,tmd) 0.003, 0.06 +r01_dimer: @M:EGFR(ecd!+,tmd)%1 + @M:EGFR(ecd!+,tmd)%2 <-> @M:EGFR(ecd!+,tmd!1)%1.EGFR(ecd!+,tmd!1)%2 0.001, 0.01 +r04_dephosp: @M:EGFR(y1173~p) -> @M:EGFR(y1173~u) 4.505 +r03_phosp: @M:EGFR(tmd!+,y1068~u) -> @M:EGFR(tmd!+,y1068~p) 0.01 +r02_phosp: @M:EGFR(tmd!+,y1173~u) -> @M:EGFR(tmd!+,y1173~p) 0.01 +r05_deposp: @M:EGFR(y1068~p) -> @M:EGFR(y1068~u) 4.505 +r08_shcU_bind: @M:EGFR(y1173~p) + @Cyt:Shc(sh3,Y773~u) <-> @M:EGFR(y1173~p!1).Shc(sh3!1,Y773~u) 0.045, 0.6 +r09_shc_phosp: @M:EGFR(y1173~p!1).Shc(sh3!1,Y773~u) <-> @M:EGFR(y1173~p!1).Shc(sh3!1,Y773~p) 3.0, 0.03 +r14_shc_dephosp: @Cyt:Shc(sh3,Y773~p) -> @Cyt:Shc(sh3,Y773~u) 0.005 +r08_shcP_bind: @M:EGFR(y1173~p) + @Cyt:Shc(sh3,Y773~p) <-> @M:EGFR(y1173~p!1).Shc(sh3!1,Y773~p) 4.5E-4, 0.3 +end reaction rules + +end model + +generate_network({max_iter=>10,max_agg=>10,max_stoich=>{EGFR=>100,EGF=>100,Grb2=>100,Shc=>100},overwrite=>1}) \ No newline at end of file diff --git a/Published/Rulebasedegfrcompart/metadata.yaml b/Published/Rulebasedegfrcompart/metadata.yaml new file mode 100644 index 00000000..35a3fbe2 --- /dev/null +++ b/Published/Rulebasedegfrcompart/metadata.yaml @@ -0,0 +1,22 @@ +id: "Rule_based_egfr_compart" +name: "Rule based egfr compart" +description: "Compartmental EGFR model" +tags: ["published", "rule", "based", "egfr", "compart", "egf", "grb2", "shc", "generate_network"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/growth-factor-signaling/Rule_based_egfr_compart.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/Rulebasedegfrtutorial/README.md b/Published/Rulebasedegfrtutorial/README.md new file mode 100644 index 00000000..5206719d --- /dev/null +++ b/Published/Rulebasedegfrtutorial/README.md @@ -0,0 +1,21 @@ +# Faeder 2009 + +EGFR signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- Rule_based_egfr_tutorial.bngl + +## Tags + +published, rule, based, egfr, tutorial, egf, grb2, shc, generate_network diff --git a/Published/Rulebasedegfrtutorial/Rule_based_egfr_tutorial.bngl b/Published/Rulebasedegfrtutorial/Rule_based_egfr_tutorial.bngl new file mode 100644 index 00000000..e392184b --- /dev/null +++ b/Published/Rulebasedegfrtutorial/Rule_based_egfr_tutorial.bngl @@ -0,0 +1,55 @@ +begin model + +begin compartments +c0 3 1 +end compartments + +begin parameters +end parameters + +begin molecule types +EGF(Site) +EGFR(ecd,tmd,Y1~u~p,Y2~u~p) +Grb2(sh2) +Shc(sh3,Y~u~p) +end molecule types + +begin seed species +1 @c0:EGFR(ecd,tmd,Y1~u,Y2~u) 100.0 +2 @c0:EGF(Site) 680.0 +3 @c0:Grb2(sh2) 58.0 +4 @c0:Shc(sh3,Y~p) 0.0 +5 @c0:Shc(sh3,Y~u) 150.0 +end seed species + +begin observables +Molecules O0_EGF_tot @c0:EGF() +Molecules O0_EGFR_tot @c0:EGFR() +Molecules O0_Grb2_tot @c0:Grb2() +Molecules O0_Shc_tot @c0:Shc() +Molecules Dimers @c0:EGFR(tmd!+) +Species Dimers_s @c0:EGFR(tmd!+) +Molecules Y1 @c0:EGFR(Y1~p!?) +Molecules Y2 @c0:EGFR(Y2~p!?) +Molecules Y_total @c0:EGFR(Y1~p!?) @c0:EGFR(Y2~p!?) +end observables + +begin functions +end functions + +begin reaction rules +ligand_bind: @c0:EGFR(ecd,tmd) + @c0:EGF(Site) <-> @c0:EGFR(ecd!1,tmd).EGF(Site!1) 0.003, 0.06 +dimeriz: @c0:EGFR(ecd!+,tmd)%1 + @c0:EGFR(ecd!+,tmd)%2 <-> @c0:EGFR(ecd!+,tmd!1)%1.EGFR(ecd!+,tmd!1)%2 0.001, 0.1 +Y2_phosph: @c0:EGFR(tmd!+,Y2~u) -> @c0:EGFR(tmd!+,Y2~p) 0.5 +Y1_phosph: @c0:EGFR(tmd!+,Y1~u) -> @c0:EGFR(tmd!+,Y1~p) 0.5 +Y2_dephosph: @c0:EGFR(Y2~p) -> @c0:EGFR(Y2~u) 4.5 +Y1_dephosph: @c0:EGFR(Y1~p) -> @c0:EGFR(Y1~u) 4.5 +R_Grb2_interaction: @c0:EGFR(Y1~p) + @c0:Grb2(sh2) <-> @c0:EGFR(Y1~p!1).Grb2(sh2!1) 0.001, 0.05 +R_ShcU_interaction: @c0:EGFR(Y2~p) + @c0:Shc(sh3,Y~u) <-> @c0:EGFR(Y2~p!1).Shc(sh3!1,Y~u) 0.045, 0.6 +Shc_phosph: @c0:EGFR(Y2~p!1).Shc(sh3!1,Y~u) -> @c0:EGFR(Y2~p!1).Shc(sh3!1,Y~p) 3.0 +R_ShcP_interaction: @c0:EGFR(Y2~p) + @c0:Shc(sh3,Y~p) <-> @c0:EGFR(Y2~p!1).Shc(sh3!1,Y~p) 4.5E-4, 0.3 +end reaction rules + +end model + +generate_network({max_iter=>12,max_agg=>12,max_stoich=>{EGF=>100,EGFR=>100,Grb2=>100,Shc=>100},overwrite=>1}) \ No newline at end of file diff --git a/Published/Rulebasedegfrtutorial/metadata.yaml b/Published/Rulebasedegfrtutorial/metadata.yaml new file mode 100644 index 00000000..730e135d --- /dev/null +++ b/Published/Rulebasedegfrtutorial/metadata.yaml @@ -0,0 +1,22 @@ +id: "Rule_based_egfr_tutorial" +name: "Faeder 2009" +description: "EGFR signaling" +tags: ["published", "rule", "based", "egfr", "tutorial", "egf", "grb2", "shc", "generate_network"] +category: "signaling" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/growth-factor-signaling/Rule_based_egfr_tutorial.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/VaxAndVariants/Dallas/Dallas.bngl b/Published/VaxAndVariants/Dallas/Dallas.bngl new file mode 100644 index 00000000..3238b2ef --- /dev/null +++ b/Published/VaxAndVariants/Dallas/Dallas.bngl @@ -0,0 +1,450 @@ +begin model +#--- +# About: +# - This model is intended to be consistent with the compartmental model +# of Mallela et al. (2023), which describes COVID-19 transmission dynamics. +# - The model is specified in terms of building blocks labeled +# S, SV, E, A, I, V, H, R, and D. +# - The building blocks represent distinct populations. +# - Some of the populations have population features, which have +# multiple possible values. +#--- +#--- +# References: +# - Mallela et al. (2023) medRxiv +# https://www.medrxiv.org/content/10.1101/2021.10.19.21265223v3 +#--- +begin parameters +####################################### +# fixed population-specific parameters # +####################################### +# total population +# region-specific +S0 7573136 +############################################# +# adjustable population-specific parameters # +############################################# +# start time of the local epidemic +ts0 ts0__FREE +# start time of 1st social distancing period +ts1 ts1__FREE +# start time of 1st social distancing *after* the initial +# social-distancing period ts1 +ts2 ts2__FREE +ts3 ts3__FREE +ts4 ts4__FREE +ts5 ts5__FREE +#theta- start time of of alpha and delta strains, respectively +theta0 theta0__FREE +theta1 theta1__FREE +#y0,y1- mutation multipier of alpha and delta strains, respectively +y0 y0__FREE +y1 y1__FREE +# eigenvalue (a sum of rate constants) that determines the time scale +# for establishment of a quasi-stationary state of the +# 1-5th social-distancing period +lambda0 lambda0__FREE +lambda1 lambda1__FREE +lambda2 lambda2__FREE +lambda3 lambda3__FREE +lambda4 lambda4__FREE +# quasi-stationary setpoint fraction of population practicing +# social distancing of the 1-5th social-distancing period +p0 p0__FREE +p1 p1__FREE +p2 p2__FREE +p3 p3__FREE +p4 p4__FREE +# eigenvalue +# rate constant for disease transmission +beta beta__FREE +# fraction of new symptomatic infections detected +fD fD__FREE +#fD # dimensionless +r r__FREE +############################## +# fixed universal parameters # +############################## +# initial number of infectious persons +I0 1 # dimensionless +# reporting period +# (delta_t=1 => daily case reports) +delta_t 1 # d +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease +fH 0.054 # dimensionless +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# effectiveness of vaccination agaist ancestral strain +f0 0.9 +# effectiveness of vaccination agaist alpha variant +f1 0.81 +# effectiveness of vaccination agaist delta variant +f2 0.69 +# rate constant for progression through stages of the vaccine immunity +Kv 0.3 +end parameters +begin molecule types +# time tracker +# We need to track time to account for changes in social distancing +# and emergence of new SARS-CoV-2 variants. +counter() +# auxilliary function to track the case counts +fDCS() +#--- +# S: susceptible population +# comments: +# - The entire population (less I0) is initially susceptible. +# population features: +# SD: non-pharmaceutical intervention (SD) adopted +# comments: +# - Persons in the S, E, A, I, and R compartments may +# change their behavior to prevent disease transmission. +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +# - M: mixing +# - V: vaccination +# comments: +# - Persons in the SD~M state are mixing/socializing freely. +# They do not take precautions to prevent disease transmission. +# - Persons in the SD~P state take precautions to prevent +# disease transmission. +# - Persons in the SD~Q state are separated from susceptible persons. +# They are incapable of transmitting disease. +# - Persons in the SD~V state are vaccinated. V~0~1~2~3 tracks the +# number of vaccine doses that a person has received. +#--- +S(SD~M~P) +#--- +# SV: vaccinated and susceptible population +# strains: susceptible to different virus strains +# possible feature values: +# -1: susceptible to ancestral strain +# -2: susceptible to alpha strain +# -3: susceptible to delta strain +# -4: not susceptible +SV(strains~1~2~3~4) +#--- +# E: exposed population in the incubation period of disease progression +# population features: +# stage: incubation period stage +# comments: +# - The incubation period is divided into 5 stages. +# - Exposed persons do not have symptoms +# throughout the incubation period. +# - Exposed persons are infectious except in the first stage +# of the incubation period. +# possible feature values: +# - 1: 1st stage of the incubation period +# - 2: 2nd stage of the incubation period +# - 3: 3rd stage of the incubation period +# - 4: 4th stage of the incubation period +# - 5: 5th stage of the incubation period +# comments: +# - Exposed persons in the first stage of the incubation period +# are ineligible for quarantine (because virus cannot be detected). +# SD: non-pharmaceutical intervention (SD) adopted +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +#--- +E(stage~1~2~3~4~5,SD~M~P~Q,V~0~1) +#--- +# A: asymptomatic population +# comments: +# - Asymptomatic persons have passed through the incubation period. +# - Asympotmatic persons are infectious. +# - Asymptomatic persions will never develop symptoms. +# population feature values: +# SD: non-pharmaceutical intervention (SD) adopted +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +#--- +A(SD~M~P~Q,V~0~1) +#--- +# I: population with mild symptomatic disease +# comments: +# - Symptomatic persons are more likely to self-isolate than +# pre-symptomatic or asymptomatic persons because of symptom awareness. +# population features: +# SD: non-pharmaceutical intervention (SD) adopted +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +#--- +I(SD~M~P~Q,V~0~1) +# V: vaccinated population +# comments: +# - Vaccinated person in the SD~M do not take precautions to prevent +# disease transmission. This population is still at risk of infection. +#--- +V(stage~1~2~3~4~5~6) +#--- +# H: population with severe disease +# comments: +# - Persons with severe disease are in hospital or isolated at home. +# Consequently, they are unable to transmit disease. +#--- +H(V~0~1) +#--- +# R: recovered population +# population features: +# SD: non-pharmaceutical intervention (SD) adopted +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +#--- +R(V~0~1) +#--- +# D: deceased population +D() +end molecule types +begin seed species +counter() 0 +S(SD~M) S0-I0 +I(SD~M,V~0) I0 +fDCS() 0 +# +end seed species +begin observables +Molecules S_M S(SD~M) +Molecules S_P S(SD~P) +Molecules E1_M E(stage~1,SD~M,V~0) +Molecules E1_P E(stage~1,SD~P,V~0) +Molecules E2_M E(stage~2,SD~M,V~0) +Molecules E2_P E(stage~2,SD~P,V~0) +Molecules E2_Q E(stage~2,SD~Q,V~0) +Molecules E3_M E(stage~3,SD~M,V~0) +Molecules E3_P E(stage~3,SD~P,V~0) +Molecules E3_Q E(stage~3,SD~Q,V~0) +Molecules E4_M E(stage~4,SD~M,V~0) +Molecules E4_P E(stage~4,SD~P,V~0) +Molecules E4_Q E(stage~4,SD~Q,V~0) +Molecules E5_M E(stage~5,SD~M,V~0) +Molecules E5_P E(stage~5,SD~P,V~0) +Molecules E5_Q E(stage~5,SD~Q,V~0) +Molecules A_M A(SD~M,V~0) +Molecules A_P A(SD~P,V~0) +Molecules A_Q A(SD~Q,V~0) +Molecules I_M I(SD~M,V~0) +Molecules I_P I(SD~P,V~0) +Molecules I_Q I(SD~Q,V~0) +Molecules I_H H(V~0) +Molecules R_MP R(V~0) +Molecules D_ D() +Molecules V_1 V(stage~1) +Molecules V_2 V(stage~2) +Molecules V_3 V(stage~3) +Molecules V_4 V(stage~4) +Molecules V_5 V(stage~5) +Molecules V_6 V(stage~6) +Molecules SV_1 SV(strains~1) +Molecules SV_2 SV(strains~2) +Molecules SV_3 SV(strains~3) +Molecules SV_4 SV(strains~4) +Molecules E_V E(V~1) +Molecules A_V A(SD~M,V~1) +Molecules I_V I(SD~M,V~1) +Molecules H_V H(V~1) +Molecules R_V R(V~1) +Molecules fDCs_Cum fDCS() +Molecules Einf_P_1 E(stage~1,SD~P) E(stage~2,SD~P) E(stage~3,SD~P) E(stage~4,SD~P) E(stage~5,SD~P) +Molecules Einf_M_1 E(stage~1,SD~M,V~0) E(stage~2,SD~M,V~0) E(stage~3,SD~M,V~0) E(stage~4,SD~M,V~0) E(stage~5,SD~M,V~0) +Molecules A_MP A(SD~M,V~0) A(SD~P,V~0) +Molecules Einf_M_ E(stage~2,SD~M,V~0) E(stage~3,SD~M,V~0) E(stage~4,SD~M,V~0) E(stage~5,SD~M,V~0) +Molecules Einf_P_ E(stage~2,SD~P) E(stage~3,SD~P) E(stage~4,SD~P) E(stage~5,SD~P) +Molecules nE_V E(V~1) +Molecules nE5_MPQ E(stage~5,SD~M,V~0) E(stage~5,SD~P,V~0) E(stage~5,SD~Q,V~0) +Molecules t counter() +end observables +begin functions +# weekly vaccination rate of fully vaccinated population +# data is obtained from COVID Act Now +# region-specific +v_rate()=if(t<=583,0,if(t<=584,0.00805307414,if(t<=585,3.59512238e-05,if(t<=586,0,if(t<=587,1.79756119e-05,if(t<=588,0,if(t<=589,1.79756119e-05,if(t<=590,1.79756119e-05,if(t<=591,0.00762261272,if(t<=592,3.68434652e-05,if(t<=593,0.0070790825,if(t<=594,3.18290023e-05,if(t<=595,1.88678533e-05,if(t<=596,3.18290023e-05,if(t<=597,1.88678533e-05,if(t<=598,0.009389631900000001,if(t<=599,5.59415983e-05,if(t<=600,0.0162599969,if(t<=601,0.469902921,if(t<=602,0.000925500559,if(t<=603,0.000662709406,if(t<=604,5.6293549e-05,if(t<=605,0.000712264167,if(t<=606,0.000661749783,if(t<=607,0.000470467419,if(t<=608,0.0005539412760000001,if(t<=609,0.000776118913,if(t<=610,0.000106733247,if(t<=611,0.000756636891,if(t<=612,0.000210899022,if(t<=613,0.000868938818,if(t<=614,0.00048709952,if(t<=615,5.59415983e-05,if(t<=616,0.000795917949,if(t<=617,7.86216622e-05,if(t<=618,0.000898281216,if(t<=619,6.05228178e-05,if(t<=620,0.000766003856,if(t<=621,7.01469394e-05,if(t<=622,0.000850130916,if(t<=623,0.0006290328460000001,if(t<=624,0.000705093713,if(t<=625,2.2260732e-05,if(t<=626,0.0003230324,if(t<=627,0.000666831627,if(t<=628,7.76620396e-05,if(t<=629,0.000944950643,if(t<=630,6.00638198e-05,if(t<=631,0.000807947915,if(t<=632,0.000173441389,if(t<=633,7.29575876e-05,if(t<=634,0.000812962378,if(t<=635,1.38533904e-05,if(t<=636,7.39172102e-05,if(t<=637,5.50493569e-05,if(t<=638,0.000130506859,if(t<=639,0.00128678364,if(t<=640,0.000629703467,if(t<=641,0.00060096718,if(t<=642,0.00092608279,if(t<=643,0.0012845791,if(t<=644,0.000967278756,if(t<=645,0.00106373924,if(t<=646,0.000690118944,if(t<=647,0.000900039721,if(t<=648,0.000916487107,if(t<=649,0.00131024755,0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +# Total population that are eligible for vaccination +PhiV()=if(t>=ts0,R_MP+Einf_P_1+Einf_M_1+S_M+S_P+A_MP,0) +# region-specific +v_times_PhiV()=if(t<=582,0,S0*v_rate()/PhiV()) +#v_times_PhiV_python()=if(t<=346,0,S0*v_rate()/PhiV()) +# Set the values of the rate constants kQ, jQ, and cI to 0 if t=ts0,kQ,0) +jQfunc()=if(t>=ts0,jQ,0) +cIfunc()=if(t>=ts0,cI,0) +# effective population of infectious persons with SD~M state (mixing) +# The effective population size is set to 0 if t=ts0,rhoE*Einf_M_+rhoA*A_M+rhoE*nE_V+I_M+rhoA*A_V+I_V,0) +# effective population of infectious persons with SD~P state (protected) +phiP()=if(t>=ts0,rhoE*Einf_P_+rhoA*A_P+I_P,0) +# Step function for mutation multiplier +Ytheta1_()=if(t<=theta0,1,if(t<=theta0+theta1,y0,y1)) +# Heaviside function for different mutation-dominated period +U()=if(t>=ts0,1,0) +U_theta1()=if(t=sum1 && t=sum2 && t=sum3 && t=sum4 && t=sum5,lambda4,\ + 0))))) +# social-distancing setpoint fractions +# P() is a step function. +# Currently, P() provides setpoint fractions for 5 social-distancing periods. +P()=if(t>=sum1 && t=sum2 && t=sum3 && t=sum4 && t=sum5,p4,\ + 0))))) +end functions +begin reaction rules +# cumulative infected population +0->fDCS() fD*(1-fA)*(kL*nE5_MPQ+kL/5*nE_V) +# increment time +0->counter() 1 +######################################## +# EID model in near original BNGL form # +######################################## +# disease transmission +S(SD~M)->E(stage~1,SD~M,V~0) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +S(SD~P)->E(stage~1,SD~P,V~0) mb*(Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(SD~M)<->S(SD~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# there are five stages between E(SD~M) and E(SD~P) +E(stage~1,SD~M,V~0)<->E(stage~1,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E(stage~2,SD~M,V~0)<->E(stage~2,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E(stage~3,SD~M,V~0)<->E(stage~3,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E(stage~4,SD~M,V~0)<->E(stage~4,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E(stage~5,SD~M,V~0)<->E(stage~5,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# social distancing +A(SD~M,V~0)<->A(SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(SD~M,V~0)<->I(SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# testing-driven quarantine +E(stage~2,SD~M,V~0)->E(stage~2,SD~Q,V~0) kQ +E(stage~3,SD~M,V~0)->E(stage~3,SD~Q,V~0) kQ +E(stage~4,SD~M,V~0)->E(stage~4,SD~Q,V~0) kQ +E(stage~5,SD~M,V~0)->E(stage~5,SD~Q,V~0) kQ +E(stage~2,SD~P,V~0)->E(stage~2,SD~Q,V~0) kQ +E(stage~3,SD~P,V~0)->E(stage~3,SD~Q,V~0) kQ +E(stage~4,SD~P,V~0)->E(stage~4,SD~Q,V~0) kQ +E(stage~5,SD~P,V~0)->E(stage~5,SD~Q,V~0) kQ +# progression through stages of the incubation period +E(stage~1,SD~M,V~0)->E(stage~2,SD~M,V~0) kL +E(stage~2,SD~M,V~0)->E(stage~3,SD~M,V~0) kL +E(stage~3,SD~M,V~0)->E(stage~4,SD~M,V~0) kL +E(stage~4,SD~M,V~0)->E(stage~5,SD~M,V~0) kL +E(stage~1,SD~P,V~0)->E(stage~2,SD~P,V~0) kL +E(stage~2,SD~P,V~0)->E(stage~3,SD~P,V~0) kL +E(stage~3,SD~P,V~0)->E(stage~4,SD~P,V~0) kL +E(stage~4,SD~P,V~0)->E(stage~5,SD~P,V~0) kL +E(stage~2,SD~Q,V~0)->E(stage~3,SD~Q,V~0) kL +E(stage~3,SD~Q,V~0)->E(stage~4,SD~Q,V~0) kL +E(stage~4,SD~Q,V~0)->E(stage~5,SD~Q,V~0) kL +# entry into the immune clearance phase without generation of symptoms +E(stage~5,SD~M,V~0)->A(SD~M,V~0) kL*fA +E(stage~5,SD~P,V~0)->A(SD~P,V~0) kL*fA +E(stage~5,SD~Q,V~0)->A(SD~Q,V~0) kL*fA +# entry into the immune clearance phase *with* generation of mild symptoms +E(stage~5,SD~M,V~0)->I(SD~M,V~0) kL*(1-fA) +E(stage~5,SD~P,V~0)->I(SD~P,V~0) kL*(1-fA) +E(stage~5,SD~Q,V~0)->I(SD~Q,V~0) kL*(1-fA) +# self-isolation because of symptom awareness +I(SD~M,V~0)->I(SD~Q,V~0) jQfunc()+kQfunc() +I(SD~P,V~0)->I(SD~Q,V~0) jQfunc()+kQfunc() +A(SD~M,V~0)->A(SD~Q,V~0) kQfunc() +A(SD~P,V~0)->A(SD~Q,V~0) kQfunc() +# immune clearance, recovery from asymptomatic infection +A(SD~M,V~0)->R(V~0) cA +A(SD~P,V~0)->R(V~0) cA +A(SD~Q,V~0)->R(V~0) cA +# immune clearance, recovery from mild symptomatic infection +I(SD~M,V~0)->R(V~0) cIfunc()*(1-fH) +I(SD~P,V~0)->R(V~0) cIfunc()*(1-fH) +I(SD~Q,V~0)->R(V~0) cIfunc()*(1-fH) +# progression from mild to severe disease & hospitalization/isolation-at-home +I(V~0)->H(V~0) cIfunc()*fH +# recovery from severe disease +H(V~0)->R(V~0) cH*fR +# progression from severe disease to death +H(V~0)->D() cH*(1-fR) +# vaccination +# Rules are added to capture the effects of vaccination. +# vaccinate +S(SD~M)->V(stage~1) v_times_PhiV() +S(SD~P)->V(stage~1) v_times_PhiV() +V(stage~1)->V(stage~2) Kv +V(stage~2)->V(stage~3) Kv +V(stage~3)->V(stage~4) Kv +V(stage~4)->V(stage~5) Kv +V(stage~5)->V(stage~6) Kv +#Assume infected and vaccinated population are SD~M. +V(stage~1)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~2)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~3)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~4)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~5)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~6)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +# 1-effectiveness percentage of vaccinated people are still susceptible +V(stage~6)->SV(strains~1) Kv*(1-f0) +V(stage~6)->SV(strains~2) Kv*(f0-f1) +V(stage~6)->SV(strains~3) Kv*(f1-f2) +V(stage~6)->SV(strains~4) Kv*f2 +#For vaccinated people, assume there is only one incubation period, that this stage~1. +SV(strains~1)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +SV(strains~2)->E(stage~1,SD~M,V~1) (Ytheta1_()*U_theta1()*beta/S0)*(phiM()+mb*phiP()) +SV(strains~3)->E(stage~1,SD~M,V~1) (Ytheta1_()*U_theta2()*beta/S0)*(phiM()+mb*phiP()) +# entry into the immune clearance phase without generation of symptoms +E(stage~1,SD~M,V~1)->A(SD~M,V~1) (kL/5)*fA +E(stage~1,SD~M,V~1)->I(SD~M,V~1) (kL/5)*(1-fA) +# immune clearance, recovery +A(SD~M,V~1)->R(V~1) cA +I(SD~M,V~1)->R(V~1) cIfunc()*(1-fH/25) +I(SD~M,V~1)->H(V~1) cIfunc()*(fH/25) +H(V~1)->R(V~1) cH*fR +H(V~1)->D() cH*(1-fR) +# recovered and unvaccinated people are eligible for vaccination +R(V~0)->R(V~1) v_times_PhiV() +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +writeMfile(); +simulate({suffix=>"Dallas",method=>"ode",t_end=>649,n_steps=>649,print_functions=>1,atol=>1e-7,rtol=>1e-7}) +end actions diff --git a/Published/VaxAndVariants/Dallas/README.md b/Published/VaxAndVariants/Dallas/README.md new file mode 100644 index 00000000..d06ce85c --- /dev/null +++ b/Published/VaxAndVariants/Dallas/README.md @@ -0,0 +1,21 @@ +# Dallas + +- This model is intended to be consistent with the compartmental model + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- Dallas.bngl + +## Tags + +dallas, counter, fdcs, s, sv, e, a, i, v diff --git a/Published/VaxAndVariants/Dallas/metadata.yaml b/Published/VaxAndVariants/Dallas/metadata.yaml new file mode 100644 index 00000000..072485cd --- /dev/null +++ b/Published/VaxAndVariants/Dallas/metadata.yaml @@ -0,0 +1,22 @@ +id: "Dallas" +name: "Dallas" +description: "- This model is intended to be consistent with the compartmental model" +tags: ["dallas", "counter", "fdcs", "s", "sv", "e", "a", "i", "v"] +category: "epidemiology" +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-web-simulator" + source_path: "published-models/PyBNG/Vax_and_Variants/Dallas/Dallas.bngl" +playground: + visible: false + gallery_category: "epidemiology" + featured: false + difficulty: "advanced" diff --git a/Published/VaxAndVariants/Houston/Houston.bngl b/Published/VaxAndVariants/Houston/Houston.bngl new file mode 100644 index 00000000..aec2ed43 --- /dev/null +++ b/Published/VaxAndVariants/Houston/Houston.bngl @@ -0,0 +1,444 @@ +begin model +#--- +# About: +# - This model is intended to be consistent with the compartmental model +# of Mallela et al. (2023), which describes COVID-19 transmission dynamics. +# - The model is specified in terms of building blocks labeled +# S, SV, E, A, I, V, H, R, and D. +# - The building blocks represent distinct populations. +# - Some of the populations have population features, which have +# multiple possible values. +#--- +#--- +# References: +# - Mallela et al. (2023) medRxiv +# https://www.medrxiv.org/content/10.1101/2021.10.19.21265223v3 +#--- +begin parameters +####################################### +# fixed population-specific parameters # +####################################### +# total population +# region-specific +S0 7066141 +############################################# +# adjustable population-specific parameters # +############################################# +# start time of the local epidemic +ts0 ts0__FREE +# start time of 1st social distancing period +ts1 ts1__FREE +# start time of 1st social distancing *after* the initial +# social-distancing period ts1 +ts2 ts2__FREE +ts3 ts3__FREE +ts4 ts4__FREE +#theta- start time of of alpha and delta strains, respectively +theta0 theta0__FREE +theta1 theta1__FREE +#y0,y1- mutation multipier of alpha and delta strains, respectively +y0 y0__FREE +y1 y1__FREE +# eigenvalue (a sum of rate constants) that determines the time scale +# for establishment of a quasi-stationary state of the +# 1-4th social-distancing period +lambda0 lambda0__FREE +lambda1 lambda1__FREE +lambda2 lambda2__FREE +lambda3 lambda3__FREE +# quasi-stationary setpoint fraction of population practicing +# social distancing of the 1-4th social-distancing period +p0 p0__FREE +p1 p1__FREE +p2 p2__FREE +p3 p3__FREE +# eigenvalue +# rate constant for disease transmission +beta beta__FREE +# fraction of new symptomatic infections detected +fD fD__FREE +#fD # dimensionless +r r__FREE +############################## +# fixed universal parameters # +############################## +# initial number of infectious persons +I0 1 # dimensionless +# reporting period +# (delta_t=1 => daily case reports) +delta_t 1 # d +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease +fH 0.054 # dimensionless +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# effectiveness of vaccination agaist ancestral strain +f0 0.9 +# effectiveness of vaccination agaist alpha variant +f1 0.81 +# effectiveness of vaccination agaist delta variant +f2 0.69 +# rate constant for progression through stages of the vaccine immunity +Kv 0.3 +end parameters +begin molecule types +# time tracker +# We need to track time to account for changes in social distancing +# and emergence of new SARS-CoV-2 variants. +counter() +# auxilliary function to track the case counts +fDCS() +#--- +# S: susceptible population +# comments: +# - The entire population (less I0) is initially susceptible. +# population features: +# SD: non-pharmaceutical intervention (SD) adopted +# comments: +# - Persons in the S, E, A, I, and R compartments may +# change their behavior to prevent disease transmission. +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +# - M: mixing +# - V: vaccination +# comments: +# - Persons in the SD~M state are mixing/socializing freely. +# They do not take precautions to prevent disease transmission. +# - Persons in the SD~P state take precautions to prevent +# disease transmission. +# - Persons in the SD~Q state are separated from susceptible persons. +# They are incapable of transmitting disease. +# - Persons in the SD~V state are vaccinated. V~0~1~2~3 tracks the +# number of vaccine doses that a person has received. +#--- +S(SD~M~P) +#--- +# SV: vaccinated and susceptible population +# strains: susceptible to different virus strains +# possible feature values: +# -1: susceptible to ancestral strain +# -2: susceptible to alpha strain +# -3: susceptible to delta strain +# -4: not susceptible +SV(strains~1~2~3~4) +#--- +# E: exposed population in the incubation period of disease progression +# population features: +# stage: incubation period stage +# comments: +# - The incubation period is divided into 5 stages. +# - Exposed persons do not have symptoms +# throughout the incubation period. +# - Exposed persons are infectious except in the first stage +# of the incubation period. +# possible feature values: +# - 1: 1st stage of the incubation period +# - 2: 2nd stage of the incubation period +# - 3: 3rd stage of the incubation period +# - 4: 4th stage of the incubation period +# - 5: 5th stage of the incubation period +# comments: +# - Exposed persons in the first stage of the incubation period +# are ineligible for quarantine (because virus cannot be detected). +# SD: non-pharmaceutical intervention (SD) adopted +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +#--- +E(stage~1~2~3~4~5,SD~M~P~Q,V~0~1) +#--- +# A: asymptomatic population +# comments: +# - Asymptomatic persons have passed through the incubation period. +# - Asympotmatic persons are infectious. +# - Asymptomatic persions will never develop symptoms. +# population feature values: +# SD: non-pharmaceutical intervention (SD) adopted +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +#--- +A(SD~M~P~Q,V~0~1) +#--- +# I: population with mild symptomatic disease +# comments: +# - Symptomatic persons are more likely to self-isolate than +# pre-symptomatic or asymptomatic persons because of symptom awareness. +# population features: +# SD: non-pharmaceutical intervention (SD) adopted +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +#--- +I(SD~M~P~Q,V~0~1) +# V: vaccinated population +# comments: +# - Vaccinated person in the SD~M do not take precautions to prevent +# disease transmission. This population is still at risk of infection. +#--- +V(stage~1~2~3~4~5~6) +#--- +# H: population with severe disease +# comments: +# - Persons with severe disease are in hospital or isolated at home. +# Consequently, they are unable to transmit disease. +#--- +H(V~0~1) +#--- +# R: recovered population +# population features: +# SD: non-pharmaceutical intervention (SD) adopted +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +#--- +R(V~0~1) +#--- +# D: deceased population +D() +end molecule types +begin seed species +counter() 0 +S(SD~M) S0-I0 +I(SD~M,V~0) I0 +fDCS() 0 +# +end seed species +begin observables +Molecules S_M S(SD~M) +Molecules S_P S(SD~P) +Molecules E1_M E(stage~1,SD~M,V~0) +Molecules E1_P E(stage~1,SD~P,V~0) +Molecules E2_M E(stage~2,SD~M,V~0) +Molecules E2_P E(stage~2,SD~P,V~0) +Molecules E2_Q E(stage~2,SD~Q,V~0) +Molecules E3_M E(stage~3,SD~M,V~0) +Molecules E3_P E(stage~3,SD~P,V~0) +Molecules E3_Q E(stage~3,SD~Q,V~0) +Molecules E4_M E(stage~4,SD~M,V~0) +Molecules E4_P E(stage~4,SD~P,V~0) +Molecules E4_Q E(stage~4,SD~Q,V~0) +Molecules E5_M E(stage~5,SD~M,V~0) +Molecules E5_P E(stage~5,SD~P,V~0) +Molecules E5_Q E(stage~5,SD~Q,V~0) +Molecules A_M A(SD~M,V~0) +Molecules A_P A(SD~P,V~0) +Molecules A_Q A(SD~Q,V~0) +Molecules I_M I(SD~M,V~0) +Molecules I_P I(SD~P,V~0) +Molecules I_Q I(SD~Q,V~0) +Molecules I_H H(V~0) +Molecules R_MP R(V~0) +Molecules D_ D() +Molecules V_1 V(stage~1) +Molecules V_2 V(stage~2) +Molecules V_3 V(stage~3) +Molecules V_4 V(stage~4) +Molecules V_5 V(stage~5) +Molecules V_6 V(stage~6) +Molecules SV_1 SV(strains~1) +Molecules SV_2 SV(strains~2) +Molecules SV_3 SV(strains~3) +Molecules SV_4 SV(strains~4) +Molecules E_V E(V~1) +Molecules A_V A(SD~M,V~1) +Molecules I_V I(SD~M,V~1) +Molecules H_V H(V~1) +Molecules R_V R(V~1) +Molecules fDCs_Cum fDCS() +Molecules Einf_P_1 E(stage~1,SD~P) E(stage~2,SD~P) E(stage~3,SD~P) E(stage~4,SD~P) E(stage~5,SD~P) +Molecules Einf_M_1 E(stage~1,SD~M,V~0) E(stage~2,SD~M,V~0) E(stage~3,SD~M,V~0) E(stage~4,SD~M,V~0) E(stage~5,SD~M,V~0) +Molecules A_MP A(SD~M,V~0) A(SD~P,V~0) +Molecules Einf_M_ E(stage~2,SD~M,V~0) E(stage~3,SD~M,V~0) E(stage~4,SD~M,V~0) E(stage~5,SD~M,V~0) +Molecules Einf_P_ E(stage~2,SD~P) E(stage~3,SD~P) E(stage~4,SD~P) E(stage~5,SD~P) +Molecules nE_V E(V~1) +Molecules nE5_MPQ E(stage~5,SD~M,V~0) E(stage~5,SD~P,V~0) E(stage~5,SD~Q,V~0) +Molecules t counter() +end observables +begin functions +# weekly vaccination rate of fully vaccinated population +# data is obtained from COVID Act Now +# region-specific +v_rate()=if(t<=583,0,if(t<=584,0.00285410171,if(t<=585,0.00181851251,if(t<=586,0,if(t<=587,0,if(t<=588,7.81945674e-06,if(t<=589,0.0260988707,if(t<=590,1.20699099e-05,if(t<=591,4.84130246e-05,if(t<=592,1.20699099e-05,if(t<=593,0,if(t<=594,5.62324813e-05,if(t<=595,4.25045319e-06,if(t<=596,0,if(t<=597,4.84130246e-05,if(t<=598,0.0454863859,if(t<=599,0.0272833862,if(t<=600,0.371058367,if(t<=601,0.0751567757,if(t<=602,0.00080481444,if(t<=603,0.000152975476,if(t<=604,0.000933000791,if(t<=605,0.000719988529,if(t<=606,0.000214861876,if(t<=607,0.000725878136,if(t<=608,0.000127349329,if(t<=609,0.00079968162,if(t<=610,0.000163276237,if(t<=611,0.000832159976,if(t<=612,5.29768116e-05,if(t<=613,0.000747170969,if(t<=614,0.000151439195,if(t<=615,5.4615965e-05,if(t<=616,0.000841054682,if(t<=617,0.000146875408,if(t<=618,0.000673214658,if(t<=619,0.000249252504,if(t<=620,0.000151439195,if(t<=621,0.00138700025,if(t<=622,0.000803716784,if(t<=623,0.000223778989,if(t<=624,0.000730441923,if(t<=625,9.84623832e-05,if(t<=626,0.00079394484,if(t<=627,0.000235779128,if(t<=628,0.000861046922,if(t<=629,0.000109209293,if(t<=630,0.000144842685,if(t<=631,0.000838107412,if(t<=632,4.84130246e-05,if(t<=633,0.000685284568,if(t<=634,0.000219508718,if(t<=635,4.25045319e-06,if(t<=636,0.000260976705,if(t<=637,0.000248162371,if(t<=638,0.00149362281,if(t<=639,0.000435533363,if(t<=640,0.00088246254,if(t<=641,0.00104872636,if(t<=642,0.000916264221,if(t<=643,0.00109030719,if(t<=644,0.00103540322,if(t<=645,0.000920514675,if(t<=646,0.00105438028,if(t<=647,0.0009734914859999999,if(t<=648,0.000939517065,if(t<=649,0.000902941083,0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +# Total population that are eligible for vaccination +PhiV()=if(t>=ts0,R_MP+Einf_P_1+Einf_M_1+S_M+S_P+A_MP,0) +# region-specific +v_times_PhiV()=if(t<=582,0,S0*v_rate()/PhiV()) +#v_times_PhiV_python()=if(t<=346,0,S0*v_rate()/PhiV()) +# Set the values of the rate constants kQ, jQ, and cI to 0 if t=ts0,kQ,0) +jQfunc()=if(t>=ts0,jQ,0) +cIfunc()=if(t>=ts0,cI,0) +# effective population of infectious persons with SD~M state (mixing) +# The effective population size is set to 0 if t=ts0,rhoE*Einf_M_+rhoA*A_M+rhoE*nE_V+I_M+rhoA*A_V+I_V,0) +# effective population of infectious persons with SD~P state (protected) +phiP()=if(t>=ts0,rhoE*Einf_P_+rhoA*A_P+I_P,0) +# Step function for mutation multiplier +Ytheta1_()=if(t<=theta0,1,if(t<=theta0+theta1,y0,y1)) +# Heaviside function for different mutation-dominated period +U()=if(t>=ts0,1,0) +U_theta1()=if(t=sum1 && t=sum2 && t=sum3 && t=sum4,lambda3,\ + 0)))) +# social-distancing setpoint fractions +# P() is a step function. +# Currently, P() provides setpoint fractions for 4 social-distancing periods. +P()=if(t>=sum1 && t=sum2 && t=sum3 && t=sum4,p3,\ + 0)))) +end functions +begin reaction rules +# cumulative infected population +0->fDCS() fD*(1-fA)*(kL*nE5_MPQ+kL/5*nE_V) +# increment time +0->counter() 1 +######################################## +# EID model in near original BNGL form # +######################################## +# disease transmission +S(SD~M)->E(stage~1,SD~M,V~0) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +S(SD~P)->E(stage~1,SD~P,V~0) mb*(Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(SD~M)<->S(SD~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# there are five stages between E(SD~M) and E(SD~P) +E(stage~1,SD~M,V~0)<->E(stage~1,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E(stage~2,SD~M,V~0)<->E(stage~2,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E(stage~3,SD~M,V~0)<->E(stage~3,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E(stage~4,SD~M,V~0)<->E(stage~4,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E(stage~5,SD~M,V~0)<->E(stage~5,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# social distancing +A(SD~M,V~0)<->A(SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(SD~M,V~0)<->I(SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# testing-driven quarantine +E(stage~2,SD~M,V~0)->E(stage~2,SD~Q,V~0) kQ +E(stage~3,SD~M,V~0)->E(stage~3,SD~Q,V~0) kQ +E(stage~4,SD~M,V~0)->E(stage~4,SD~Q,V~0) kQ +E(stage~5,SD~M,V~0)->E(stage~5,SD~Q,V~0) kQ +E(stage~2,SD~P,V~0)->E(stage~2,SD~Q,V~0) kQ +E(stage~3,SD~P,V~0)->E(stage~3,SD~Q,V~0) kQ +E(stage~4,SD~P,V~0)->E(stage~4,SD~Q,V~0) kQ +E(stage~5,SD~P,V~0)->E(stage~5,SD~Q,V~0) kQ +# progression through stages of the incubation period +E(stage~1,SD~M,V~0)->E(stage~2,SD~M,V~0) kL +E(stage~2,SD~M,V~0)->E(stage~3,SD~M,V~0) kL +E(stage~3,SD~M,V~0)->E(stage~4,SD~M,V~0) kL +E(stage~4,SD~M,V~0)->E(stage~5,SD~M,V~0) kL +E(stage~1,SD~P,V~0)->E(stage~2,SD~P,V~0) kL +E(stage~2,SD~P,V~0)->E(stage~3,SD~P,V~0) kL +E(stage~3,SD~P,V~0)->E(stage~4,SD~P,V~0) kL +E(stage~4,SD~P,V~0)->E(stage~5,SD~P,V~0) kL +E(stage~2,SD~Q,V~0)->E(stage~3,SD~Q,V~0) kL +E(stage~3,SD~Q,V~0)->E(stage~4,SD~Q,V~0) kL +E(stage~4,SD~Q,V~0)->E(stage~5,SD~Q,V~0) kL +# entry into the immune clearance phase without generation of symptoms +E(stage~5,SD~M,V~0)->A(SD~M,V~0) kL*fA +E(stage~5,SD~P,V~0)->A(SD~P,V~0) kL*fA +E(stage~5,SD~Q,V~0)->A(SD~Q,V~0) kL*fA +# entry into the immune clearance phase *with* generation of mild symptoms +E(stage~5,SD~M,V~0)->I(SD~M,V~0) kL*(1-fA) +E(stage~5,SD~P,V~0)->I(SD~P,V~0) kL*(1-fA) +E(stage~5,SD~Q,V~0)->I(SD~Q,V~0) kL*(1-fA) +# self-isolation because of symptom awareness +I(SD~M,V~0)->I(SD~Q,V~0) jQfunc()+kQfunc() +I(SD~P,V~0)->I(SD~Q,V~0) jQfunc()+kQfunc() +A(SD~M,V~0)->A(SD~Q,V~0) kQfunc() +A(SD~P,V~0)->A(SD~Q,V~0) kQfunc() +# immune clearance, recovery from asymptomatic infection +A(SD~M,V~0)->R(V~0) cA +A(SD~P,V~0)->R(V~0) cA +A(SD~Q,V~0)->R(V~0) cA +# immune clearance, recovery from mild symptomatic infection +I(SD~M,V~0)->R(V~0) cIfunc()*(1-fH) +I(SD~P,V~0)->R(V~0) cIfunc()*(1-fH) +I(SD~Q,V~0)->R(V~0) cIfunc()*(1-fH) +# progression from mild to severe disease & hospitalization/isolation-at-home +I(V~0)->H(V~0) cIfunc()*fH +# recovery from severe disease +H(V~0)->R(V~0) cH*fR +# progression from severe disease to death +H(V~0)->D() cH*(1-fR) +# vaccination +# Rules are added to capture the effects of vaccination. +# vaccinate +S(SD~M)->V(stage~1) v_times_PhiV() +S(SD~P)->V(stage~1) v_times_PhiV() +V(stage~1)->V(stage~2) Kv +V(stage~2)->V(stage~3) Kv +V(stage~3)->V(stage~4) Kv +V(stage~4)->V(stage~5) Kv +V(stage~5)->V(stage~6) Kv +#Assume infected and vaccinated population are SD~M. +V(stage~1)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~2)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~3)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~4)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~5)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~6)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +# 1-effectiveness percentage of vaccinated people are still susceptible +V(stage~6)->SV(strains~1) Kv*(1-f0) +V(stage~6)->SV(strains~2) Kv*(f0-f1) +V(stage~6)->SV(strains~3) Kv*(f1-f2) +V(stage~6)->SV(strains~4) Kv*f2 +#For vaccinated people, assume there is only one incubation period, that this stage~1. +SV(strains~1)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +SV(strains~2)->E(stage~1,SD~M,V~1) (Ytheta1_()*U_theta1()*beta/S0)*(phiM()+mb*phiP()) +SV(strains~3)->E(stage~1,SD~M,V~1) (Ytheta1_()*U_theta2()*beta/S0)*(phiM()+mb*phiP()) +# entry into the immune clearance phase without generation of symptoms +E(stage~1,SD~M,V~1)->A(SD~M,V~1) (kL/5)*fA +E(stage~1,SD~M,V~1)->I(SD~M,V~1) (kL/5)*(1-fA) +# immune clearance, recovery +A(SD~M,V~1)->R(V~1) cA +I(SD~M,V~1)->R(V~1) cIfunc()*(1-fH/25) +I(SD~M,V~1)->H(V~1) cIfunc()*(fH/25) +H(V~1)->R(V~1) cH*fR +H(V~1)->D() cH*(1-fR) +# recovered and unvaccinated people are eligible for vaccination +R(V~0)->R(V~1) v_times_PhiV() +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +writeMfile(); +simulate({suffix=>"Houston",method=>"ode",t_end=>649,n_steps=>649,print_functions=>1,atol=>1e-7,rtol=>1e-7}) +end actions diff --git a/Published/VaxAndVariants/Houston/README.md b/Published/VaxAndVariants/Houston/README.md new file mode 100644 index 00000000..b7406f33 --- /dev/null +++ b/Published/VaxAndVariants/Houston/README.md @@ -0,0 +1,21 @@ +# Houston + +- This model is intended to be consistent with the compartmental model + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- Houston.bngl + +## Tags + +houston, counter, fdcs, s, sv, e, a, i, v diff --git a/Published/VaxAndVariants/Houston/metadata.yaml b/Published/VaxAndVariants/Houston/metadata.yaml new file mode 100644 index 00000000..b2acaba6 --- /dev/null +++ b/Published/VaxAndVariants/Houston/metadata.yaml @@ -0,0 +1,22 @@ +id: "Houston" +name: "Houston" +description: "- This model is intended to be consistent with the compartmental model" +tags: ["houston", "counter", "fdcs", "s", "sv", "e", "a", "i", "v"] +category: "epidemiology" +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-web-simulator" + source_path: "published-models/PyBNG/Vax_and_Variants/Houston/Houston.bngl" +playground: + visible: false + gallery_category: "epidemiology" + featured: false + difficulty: "advanced" diff --git a/Published/VaxAndVariants/NYC/NYC.bngl b/Published/VaxAndVariants/NYC/NYC.bngl new file mode 100644 index 00000000..91398362 --- /dev/null +++ b/Published/VaxAndVariants/NYC/NYC.bngl @@ -0,0 +1,443 @@ +begin model +#--- +# About: +# - This model is intended to be consistent with the compartmental model +# of Mallela et al. (2023), which describes COVID-19 transmission dynamics. +# - The model is specified in terms of building blocks labeled +# S, SV, E, A, I, V, H, R, and D. +# - The building blocks represent distinct populations. +# - Some of the populations have population features, which have +# multiple possible values. +#--- +#--- +# References: +# - Mallela et al. (2023) medRxiv +# https://www.medrxiv.org/content/10.1101/2021.10.19.21265223v3 +#--- +begin parameters +####################################### +# fixed population-specific parameters # +####################################### +# total population +# region-specific +S0 19216182 +############################################# +# adjustable population-specific parameters # +# start time of the local epidemic +ts0 ts0__FREE +# start time of 1st social distancing period +ts1 ts1__FREE +# start time of 1st social distancing *after* the initial +# social-distancing period ts1 +ts2 ts2__FREE +ts3 ts3__FREE +ts4 ts4__FREE +#theta- start time of of alpha and delta strains, respectively +theta0 theta0__FREE +theta1 theta1__FREE +#y0,y1- mutation multipier of alpha and delta strains, respectively +y0 y0__FREE +y1 y1__FREE +# eigenvalue (a sum of rate constants) that determines the time scale +# for establishment of a quasi-stationary state of the +# 1-4th social-distancing period +lambda0 lambda0__FREE +lambda1 lambda1__FREE +lambda2 lambda2__FREE +lambda3 lambda3__FREE +# quasi-stationary setpoint fraction of population practicing +# social distancing of the 1-4th social-distancing period +p0 p0__FREE +p1 p1__FREE +p2 p2__FREE +p3 p3__FREE +# eigenvalue +# rate constant for disease transmission +beta beta__FREE +# fraction of new symptomatic infections detected +fD fD__FREE +#fD # dimensionless +r r__FREE +############################## +# fixed universal parameters # +############################## +# initial number of infectious persons +I0 1 # dimensionless +# reporting period +# (delta_t=1 => daily case reports) +delta_t 1 # d +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease +fH 0.054 # dimensionless +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# effectiveness of vaccination agaist ancestral strain +f0 0.9 +# effectiveness of vaccination agaist alpha variant +f1 0.81 +# effectiveness of vaccination agaist delta variant +f2 0.69 +# rate constant for progression through stages of the vaccine immunity +Kv 0.3 +end parameters +begin molecule types +# time tracker +# We need to track time to account for changes in social distancing +# and emergence of new SARS-CoV-2 variants. +counter() +# auxilliary function to track the case counts +fDCS() +#--- +# S: susceptible population +# comments: +# - The entire population (less I0) is initially susceptible. +# population features: +# SD: non-pharmaceutical intervention (SD) adopted +# comments: +# - Persons in the S, E, A, I, and R compartments may +# change their behavior to prevent disease transmission. +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +# - M: mixing +# - V: vaccination +# comments: +# - Persons in the SD~M state are mixing/socializing freely. +# They do not take precautions to prevent disease transmission. +# - Persons in the SD~P state take precautions to prevent +# disease transmission. +# - Persons in the SD~Q state are separated from susceptible persons. +# They are incapable of transmitting disease. +# - Persons in the SD~V state are vaccinated. V~0~1~2~3 tracks the +# number of vaccine doses that a person has received. +#--- +S(SD~M~P) +#--- +# SV: vaccinated and susceptible population +# strains: susceptible to different virus strains +# possible feature values: +# -1: susceptible to ancestral strain +# -2: susceptible to alpha strain +# -3: susceptible to delta strain +# -4: not susceptible +SV(strains~1~2~3~4) +#--- +# E: exposed population in the incubation period of disease progression +# population features: +# stage: incubation period stage +# comments: +# - The incubation period is divided into 5 stages. +# - Exposed persons do not have symptoms +# throughout the incubation period. +# - Exposed persons are infectious except in the first stage +# of the incubation period. +# possible feature values: +# - 1: 1st stage of the incubation period +# - 2: 2nd stage of the incubation period +# - 3: 3rd stage of the incubation period +# - 4: 4th stage of the incubation period +# - 5: 5th stage of the incubation period +# comments: +# - Exposed persons in the first stage of the incubation period +# are ineligible for quarantine (because virus cannot be detected). +# SD: non-pharmaceutical intervention (SD) adopted +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +#--- +E(stage~1~2~3~4~5,SD~M~P~Q,V~0~1) +#--- +# A: asymptomatic population +# comments: +# - Asymptomatic persons have passed through the incubation period. +# - Asympotmatic persons are infectious. +# - Asymptomatic persions will never develop symptoms. +# population feature values: +# SD: non-pharmaceutical intervention (SD) adopted +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +#--- +A(SD~M~P~Q,V~0~1) +#--- +# I: population with mild symptomatic disease +# comments: +# - Symptomatic persons are more likely to self-isolate than +# pre-symptomatic or asymptomatic persons because of symptom awareness. +# population features: +# SD: non-pharmaceutical intervention (SD) adopted +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +#--- +I(SD~M~P~Q,V~0~1) +# V: vaccinated population +# comments: +# - Vaccinated person in the SD~M do not take precautions to prevent +# disease transmission. This population is still at risk of infection. +#--- +V(stage~1~2~3~4~5~6) +#--- +# H: population with severe disease +# comments: +# - Persons with severe disease are in hospital or isolated at home. +# Consequently, they are unable to transmit disease. +#--- +H(V~0~1) +#--- +# R: recovered population +# population features: +# SD: non-pharmaceutical intervention (SD) adopted +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +#--- +R(V~0~1) +#--- +# D: deceased population +D() +end molecule types +begin seed species +counter() 0 +S(SD~M) S0-I0 +I(SD~M,V~0) I0 +fDCS() 0 +# +end seed species +begin observables +Molecules S_M S(SD~M) +Molecules S_P S(SD~P) +Molecules E1_M E(stage~1,SD~M,V~0) +Molecules E1_P E(stage~1,SD~P,V~0) +Molecules E2_M E(stage~2,SD~M,V~0) +Molecules E2_P E(stage~2,SD~P,V~0) +Molecules E2_Q E(stage~2,SD~Q,V~0) +Molecules E3_M E(stage~3,SD~M,V~0) +Molecules E3_P E(stage~3,SD~P,V~0) +Molecules E3_Q E(stage~3,SD~Q,V~0) +Molecules E4_M E(stage~4,SD~M,V~0) +Molecules E4_P E(stage~4,SD~P,V~0) +Molecules E4_Q E(stage~4,SD~Q,V~0) +Molecules E5_M E(stage~5,SD~M,V~0) +Molecules E5_P E(stage~5,SD~P,V~0) +Molecules E5_Q E(stage~5,SD~Q,V~0) +Molecules A_M A(SD~M,V~0) +Molecules A_P A(SD~P,V~0) +Molecules A_Q A(SD~Q,V~0) +Molecules I_M I(SD~M,V~0) +Molecules I_P I(SD~P,V~0) +Molecules I_Q I(SD~Q,V~0) +Molecules I_H H(V~0) +Molecules R_MP R(V~0) +Molecules D_ D() +Molecules V_1 V(stage~1) +Molecules V_2 V(stage~2) +Molecules V_3 V(stage~3) +Molecules V_4 V(stage~4) +Molecules V_5 V(stage~5) +Molecules V_6 V(stage~6) +Molecules SV_1 SV(strains~1) +Molecules SV_2 SV(strains~2) +Molecules SV_3 SV(strains~3) +Molecules SV_4 SV(strains~4) +Molecules E_V E(V~1) +Molecules A_V A(SD~M,V~1) +Molecules I_V I(SD~M,V~1) +Molecules H_V H(V~1) +Molecules R_V R(V~1) +Molecules fDCs_Cum fDCS() +Molecules Einf_P_1 E(stage~1,SD~P) E(stage~2,SD~P) E(stage~3,SD~P) E(stage~4,SD~P) E(stage~5,SD~P) +Molecules Einf_M_1 E(stage~1,SD~M,V~0) E(stage~2,SD~M,V~0) E(stage~3,SD~M,V~0) E(stage~4,SD~M,V~0) E(stage~5,SD~M,V~0) +Molecules A_MP A(SD~M,V~0) A(SD~P,V~0) +Molecules Einf_M_ E(stage~2,SD~M,V~0) E(stage~3,SD~M,V~0) E(stage~4,SD~M,V~0) E(stage~5,SD~M,V~0) +Molecules Einf_P_ E(stage~2,SD~P) E(stage~3,SD~P) E(stage~4,SD~P) E(stage~5,SD~P) +Molecules nE_V E(V~1) +Molecules nE5_MPQ E(stage~5,SD~M,V~0) E(stage~5,SD~P,V~0) E(stage~5,SD~Q,V~0) +Molecules t counter() +end observables +begin functions +# daily vaccination rate of fully vaccinated population +# data is obtained from COVID Act Now +# region-specific +v_rate()=if(t<=297,0,if(t<=298,1.12314383e-05,if(t<=299,9.94451901e-06,if(t<=300,4.74735912e-05,if(t<=301,2.11759573e-05,if(t<=302,0,if(t<=303,8.68001985e-05,if(t<=304,3.62421529e-05,if(t<=305,8.93918412e-05,if(t<=306,0.000146015146,if(t<=307,0.00010497702,if(t<=308,7.94473222e-05,if(t<=309,6.05025646e-05,if(t<=310,0.000364352105,if(t<=311,0.000201739564,if(t<=312,0.000357759509,if(t<=313,0.000269842203,if(t<=314,0.000257166618,if(t<=315,0.000470011593,if(t<=316,0.000451941228,if(t<=317,0.000253944211,if(t<=318,0.0006239742879999999,if(t<=319,0.00066809744,if(t<=320,0.000499101616,if(t<=321,0.000321104073,if(t<=322,0.000519506807,if(t<=323,0.000424076528,if(t<=324,0.000449397629,if(t<=325,0.000884025501,if(t<=326,0.000654416186,if(t<=327,0.00064374717,if(t<=328,0.000789273122,if(t<=329,0.000803543557,if(t<=330,0.000638530434,if(t<=331,0.00100160898,if(t<=332,0.000993807258,if(t<=333,0.00124114925,if(t<=334,0.00123426412,if(t<=335,0.00141321826,if(t<=336,0.00118332628,if(t<=337,0.00109470055,if(t<=338,0.00125019427,if(t<=339,0.00135455371,if(t<=340,0.0019431852,if(t<=341,0.00205543168,if(t<=342,0.00197207562,if(t<=343,0.0022614449,if(t<=344,0.00211490243,if(t<=345,0.00210695833,if(t<=346,0.00249495193,if(t<=347,0.00234941068,if(t<=348,0.00226462926,if(t<=349,0.00192793935,if(t<=350,0.002307822,if(t<=351,0.00177314607,if(t<=352,0.00204756246,if(t<=353,0.00223537455,if(t<=354,0.00265125171,if(t<=355,0.00215845046,if(t<=356,0.00219770402,if(t<=357,0.00178428238,if(t<=358,0.00184590186,if(t<=359,0.0018605743,if(t<=360,0.00184659497,if(t<=361,0.00229017668,if(t<=362,0.00253196493,if(t<=363,0.00239098899,if(t<=364,0.00211185421,if(t<=365,0.00219407719,if(t<=366,0.00212246707,if(t<=367,0.00269861999,if(t<=368,0.00266277044,if(t<=369,0.0022864101,if(t<=370,0.00238106143,if(t<=371,0.00288706782,if(t<=372,0.00241887213,if(t<=373,0.00264944029,if(t<=374,0.00283053906,if(t<=375,0.00324595184,if(t<=376,0.00288717874,if(t<=377,0.00276439946,if(t<=378,0.00244384282,if(t<=379,0.00233597338,if(t<=380,0.00279352064,if(t<=381,0.00286037951,if(t<=382,0.00328170603,if(t<=383,0.002822949,if(t<=384,0.00278954494,if(t<=385,0.00312619711,if(t<=386,0.00324124337,if(t<=387,0.00365400495,if(t<=388,0.00402022148,if(t<=389,0.00451327855,if(t<=390,0.00463343495,if(t<=391,0.00361972256,if(t<=392,0.00421404306,if(t<=393,0.00450737728,if(t<=394,0.00385689985,if(t<=395,0.00706347035,if(t<=396,0.00548992622,if(t<=397,0.00561269851,if(t<=398,0.00565157042,if(t<=399,0.00465943143,if(t<=400,0.00360607661,if(t<=401,0.00424833829,if(t<=402,0.00506165543,if(t<=403,0.00554584679,if(t<=404,0.00567074572,if(t<=405,0.00521791533,if(t<=406,0.00511027778,if(t<=407,0.00463445002,if(t<=408,0.0048334687,if(t<=409,0.00495195688,if(t<=410,0.00549367799,if(t<=411,0.00563900702,if(t<=412,0.00467717288,if(t<=413,0.00464379518,if(t<=414,0.00459904476,if(t<=415,0.00454237307,if(t<=416,0.00500574242,if(t<=417,0.00531713904,if(t<=418,0.00561133477,if(t<=419,0.00533865191,if(t<=420,0.00495078846,if(t<=421,0.00463678844,if(t<=422,0.00473844747,if(t<=423,0.0054393895,if(t<=424,0.00545525246,if(t<=425,0.00541193326,if(t<=426,0.00509452208,if(t<=427,0.00660187229,if(t<=428,0.00417453135,if(t<=429,0.00467057068,if(t<=430,0.00516133914,if(t<=431,0.00579060434,if(t<=432,0.00527368183,if(t<=433,0.0046510559,if(t<=434,0.00430932033,if(t<=435,0.00469632041,if(t<=436,0.00451319727,if(t<=437,0.00525834823,if(t<=438,0.00514407899,if(t<=439,0.00424489032,if(t<=440,0.00338261955,if(t<=441,0.0038480963,if(t<=442,0.00292950561,if(t<=443,0.00356221514,if(t<=444,0.00426978001,if(t<=445,0.00498272013,if(t<=446,0.00406037155,if(t<=447,0.00385850101,if(t<=448,0.00311324383,if(t<=449,0.00287080426,if(t<=450,0.00249969302,if(t<=451,0.00303688666,if(t<=452,0.00373753143,if(t<=453,0.00334610566,if(t<=454,0.00271933283,if(t<=455,0.00249564984,if(t<=456,0.00211065932,if(t<=457,0.0026296495,if(t<=458,0.002927413,if(t<=459,0.00348787669,if(t<=460,0.00360563614,if(t<=461,0.00305593177,if(t<=462,0.0029747901,if(t<=463,0.00313546965,if(t<=464,0.00427331421,if(t<=465,0.00367859101,if(t<=466,0.0038757078,if(t<=467,0.00345077,if(t<=468,0.00294496232,if(t<=469,0.00280944761,if(t<=470,0.00320988109,if(t<=471,0.00327554366,if(t<=472,0.00291552997,if(t<=473,0.00379463693,if(t<=474,0.00296006542,if(t<=475,0.00296144959,if(t<=476,0.00226444315,if(t<=477,0.00222587449,if(t<=478,0.00208900522,if(t<=479,0.00235789914,if(t<=480,0.0023527227,if(t<=481,0.00225757636,if(t<=482,0.00156006694,if(t<=483,0.00200007592,if(t<=484,0.00177305229,if(t<=485,0.00132721137,if(t<=486,0.0016157386,if(t<=487,0.00160173321,if(t<=488,0.00161771581,if(t<=489,0.00120030271,if(t<=490,0.00106073605,if(t<=491,0.00109226802,if(t<=492,0.0009426437350000001,if(t<=493,0.00129775163,if(t<=494,0.00148914411,if(t<=495,0.00126664783,if(t<=496,0.00111729785,if(t<=497,0.000928262283,if(t<=498,0.00100128739,if(t<=499,0.000862123754,if(t<=500,0.00143578505,if(t<=501,0.00159369446,if(t<=502,0.001236268,if(t<=503,0.0010974177,if(t<=504,0.00116777929,if(t<=505,0.00129901145,if(t<=506,0.00143993669,if(t<=507,0.00137057727,if(t<=508,0.00129378217,if(t<=509,0.00105560763,if(t<=510,0.00076959134,if(t<=511,0.00100224246,if(t<=512,0.00126489835,if(t<=513,0.000839568459,if(t<=514,0.00104061086,if(t<=515,0.0012489978,if(t<=516,0.000909710251,if(t<=517,0.00106807397,if(t<=518,0.00092042926,if(t<=519,0.000568671374,if(t<=520,0.00107534612,if(t<=521,0.000977098888,if(t<=522,0.0011913604,if(t<=523,0.0020660573,if(t<=524,0.000776079056,if(t<=525,0.0009384054229999999,if(t<=526,0.0007691787249999999,if(t<=527,0.0008221690370000001,if(t<=528,0.000977691101,if(t<=529,0.00120703073,if(t<=530,0.00115212883,if(t<=531,0.0009606733930000001,if(t<=532,0.00093316483,if(t<=533,0.0007720669550000001,if(t<=534,0.00120225262,if(t<=535,0.0011870245,if(t<=536,0.00108866938,if(t<=537,0.0009816442539999999,if(t<=538,0.0013641676,if(t<=539,0.000946980045,if(t<=540,0.0009865161470000001,if(t<=541,0.00106015651,if(t<=542,0.0011457813,if(t<=543,0.00126624345,if(t<=544,0.00136449029,if(t<=545,0.00102888928,if(t<=546,0.000864759508,if(t<=547,0.0011350614,if(t<=548,0.00094079968,if(t<=549,0.00106408062,if(t<=550,0.00155375609,if(t<=551,0.000838952779,if(t<=552,0.00106263742,if(t<=553,0.00118428894,if(t<=554,0.000855891218,if(t<=555,0.000815682206,if(t<=556,0.00102089848,if(t<=557,0.00110255282,if(t<=558,0.00113035448,if(t<=559,0.00102012975,if(t<=560,0.00110705653,if(t<=561,0.000705581016,if(t<=562,0.000993763855,if(t<=563,0.00118845612,if(t<=564,0.00117255526,if(t<=565,0.000896920008,if(t<=566,0.00116252977,if(t<=567,0.0009774145669999999,if(t<=568,0.000774332103,if(t<=569,0.00102867561,if(t<=570,0.000824192259,if(t<=571,0.000945787156,if(t<=572,0.000867970103,if(t<=573,0.000975609124,if(t<=574,0.0009400845809999999,if(t<=575,0.000798736412,if(t<=576,0.000715158278,if(t<=577,0.000796893693,if(t<=578,0.000646695582,if(t<=579,0.000983652225,if(t<=580,0.000844168204,if(t<=581,0.000706883968,if(t<=582,0.00075490277,if(t<=583,0.000968707132,if(t<=584,0.000823652744,if(t<=585,0.000913533955,if(t<=586,0.000758321971,if(t<=587,0.000722756758,if(t<=588,0.000708912186,if(t<=589,0.000814718917,if(t<=590,0.000692181581,if(t<=591,0.000874866316,if(t<=592,0.000687077945,if(t<=593,0.00101249691,if(t<=594,0.000789045455,if(t<=595,0.000773614795,if(t<=596,0.000526705332,if(t<=597,0.000706965066,if(t<=598,0.000903633251,if(t<=599,0.000590024411,if(t<=600,0.000936203932,if(t<=601,0.000607883075,if(t<=602,0.000564723531,if(t<=603,0.000724888451,if(t<=604,0.00068726425,if(t<=605,0.000555183276,if(t<=606,0.000856091978,if(t<=607,0.000576251369,if(t<=608,0.0009014603059999999,if(t<=609,0.000536780404,if(t<=610,0.0006876480990000001,if(t<=611,0.000371006631,if(t<=612,0.000692669203,if(t<=613,0.00083516197,if(t<=614,0.00038463401,if(t<=615,0.000800101713,if(t<=616,0.000375803641,if(t<=617,0.0006264554589999999,if(t<=618,0.000526031526,if(t<=619,0.000499368607,if(t<=620,0.000428305584,if(t<=621,0.000909464485,if(t<=622,0.000351236661,if(t<=623,0.000566571376,if(t<=624,0.000429427975,if(t<=625,0.000499533864,if(t<=626,0.000526757148,if(t<=627,0.000225809721,if(t<=628,0.0005403013610000001,if(t<=629,0.000240458659,if(t<=630,0.000516079477,if(t<=631,0.000660882077,if(t<=632,0.000566899036,if(t<=633,0.00115467547,if(t<=634,0.000633427116,if(t<=635,0.000518385602,if(t<=636,0.000749428245,if(t<=637,0.000913122119,if(t<=638,0.000786391348,if(t<=639,0.0012730781,if(t<=640,0.00129256234,if(t<=641,0.00115637457,if(t<=642,0.00102572807,if(t<=643,0.00105539285,if(t<=644,0.00119078863,if(t<=645,0.000732476407,if(t<=646,0.0011368034,if(t<=647,0.00143053847,if(t<=648,0.000947157648,if(t<=649,0.00133587678,0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +# Total population that are eligible for vaccination +PhiV()=if(t>=ts0,R_MP+Einf_P_1+Einf_M_1+S_M+S_P+A_MP,0) +# region-specific +v_times_PhiV()=if(t<=582,0,S0*v_rate()/PhiV()) +#v_times_PhiV_python()=if(t<=346,0,S0*v_rate()/PhiV()) +# Set the values of the rate constants kQ, jQ, and cI to 0 if t=ts0,kQ,0) +jQfunc()=if(t>=ts0,jQ,0) +cIfunc()=if(t>=ts0,cI,0) +# effective population of infectious persons with SD~M state (mixing) +# The effective population size is set to 0 if t=ts0,rhoE*Einf_M_+rhoA*A_M+rhoE*nE_V+I_M+rhoA*A_V+I_V,0) +# effective population of infectious persons with SD~P state (protected) +phiP()=if(t>=ts0,rhoE*Einf_P_+rhoA*A_P+I_P,0) +# Step function for mutation multiplier +Ytheta1_()=if(t<=theta0,1,if(t<=theta0+theta1,y0,y1)) +# Heaviside function for different mutation-dominated period +U()=if(t>=ts0,1,0) +U_theta1()=if(t=sum1 && t=sum2 && t=sum3 && t=sum4,lambda3,\ + 0)))) +# social-distancing setpoint fractions +# P() is a step function. +# Currently, P() provides setpoint fractions for 4 social-distancing periods. +P()=if(t>=sum1 && t=sum2 && t=sum3 && t=sum4,p3,\ + 0)))) +end functions +begin reaction rules +# cumulative infected population +0->fDCS() fD*(1-fA)*(kL*nE5_MPQ+kL/5*nE_V) +# increment time +0->counter() 1 +######################################## +# EID model in near original BNGL form # +######################################## +# disease transmission +S(SD~M)->E(stage~1,SD~M,V~0) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +S(SD~P)->E(stage~1,SD~P,V~0) mb*(Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(SD~M)<->S(SD~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# there are five stages between E(SD~M) and E(SD~P) +E(stage~1,SD~M,V~0)<->E(stage~1,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E(stage~2,SD~M,V~0)<->E(stage~2,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E(stage~3,SD~M,V~0)<->E(stage~3,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E(stage~4,SD~M,V~0)<->E(stage~4,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E(stage~5,SD~M,V~0)<->E(stage~5,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# social distancing +A(SD~M,V~0)<->A(SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(SD~M,V~0)<->I(SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# testing-driven quarantine +E(stage~2,SD~M,V~0)->E(stage~2,SD~Q,V~0) kQ +E(stage~3,SD~M,V~0)->E(stage~3,SD~Q,V~0) kQ +E(stage~4,SD~M,V~0)->E(stage~4,SD~Q,V~0) kQ +E(stage~5,SD~M,V~0)->E(stage~5,SD~Q,V~0) kQ +E(stage~2,SD~P,V~0)->E(stage~2,SD~Q,V~0) kQ +E(stage~3,SD~P,V~0)->E(stage~3,SD~Q,V~0) kQ +E(stage~4,SD~P,V~0)->E(stage~4,SD~Q,V~0) kQ +E(stage~5,SD~P,V~0)->E(stage~5,SD~Q,V~0) kQ +# progression through stages of the incubation period +E(stage~1,SD~M,V~0)->E(stage~2,SD~M,V~0) kL +E(stage~2,SD~M,V~0)->E(stage~3,SD~M,V~0) kL +E(stage~3,SD~M,V~0)->E(stage~4,SD~M,V~0) kL +E(stage~4,SD~M,V~0)->E(stage~5,SD~M,V~0) kL +E(stage~1,SD~P,V~0)->E(stage~2,SD~P,V~0) kL +E(stage~2,SD~P,V~0)->E(stage~3,SD~P,V~0) kL +E(stage~3,SD~P,V~0)->E(stage~4,SD~P,V~0) kL +E(stage~4,SD~P,V~0)->E(stage~5,SD~P,V~0) kL +E(stage~2,SD~Q,V~0)->E(stage~3,SD~Q,V~0) kL +E(stage~3,SD~Q,V~0)->E(stage~4,SD~Q,V~0) kL +E(stage~4,SD~Q,V~0)->E(stage~5,SD~Q,V~0) kL +# entry into the immune clearance phase without generation of symptoms +E(stage~5,SD~M,V~0)->A(SD~M,V~0) kL*fA +E(stage~5,SD~P,V~0)->A(SD~P,V~0) kL*fA +E(stage~5,SD~Q,V~0)->A(SD~Q,V~0) kL*fA +# entry into the immune clearance phase *with* generation of mild symptoms +E(stage~5,SD~M,V~0)->I(SD~M,V~0) kL*(1-fA) +E(stage~5,SD~P,V~0)->I(SD~P,V~0) kL*(1-fA) +E(stage~5,SD~Q,V~0)->I(SD~Q,V~0) kL*(1-fA) +# self-isolation because of symptom awareness +I(SD~M,V~0)->I(SD~Q,V~0) jQfunc()+kQfunc() +I(SD~P,V~0)->I(SD~Q,V~0) jQfunc()+kQfunc() +A(SD~M,V~0)->A(SD~Q,V~0) kQfunc() +A(SD~P,V~0)->A(SD~Q,V~0) kQfunc() +# immune clearance, recovery from asymptomatic infection +A(SD~M,V~0)->R(V~0) cA +A(SD~P,V~0)->R(V~0) cA +A(SD~Q,V~0)->R(V~0) cA +# immune clearance, recovery from mild symptomatic infection +I(SD~M,V~0)->R(V~0) cIfunc()*(1-fH) +I(SD~P,V~0)->R(V~0) cIfunc()*(1-fH) +I(SD~Q,V~0)->R(V~0) cIfunc()*(1-fH) +# progression from mild to severe disease & hospitalization/isolation-at-home +I(V~0)->H(V~0) cIfunc()*fH +# recovery from severe disease +H(V~0)->R(V~0) cH*fR +# progression from severe disease to death +H(V~0)->D() cH*(1-fR) +# vaccination +# Rules are added to capture the effects of vaccination. +# vaccinate +S(SD~M)->V(stage~1) v_times_PhiV() +S(SD~P)->V(stage~1) v_times_PhiV() +V(stage~1)->V(stage~2) Kv +V(stage~2)->V(stage~3) Kv +V(stage~3)->V(stage~4) Kv +V(stage~4)->V(stage~5) Kv +V(stage~5)->V(stage~6) Kv +#Assume infected and vaccinated population are SD~M. +V(stage~1)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~2)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~3)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~4)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~5)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~6)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +# 1-effectiveness percentage of vaccinated people are still susceptible +V(stage~6)->SV(strains~1) Kv*(1-f0) +V(stage~6)->SV(strains~2) Kv*(f0-f1) +V(stage~6)->SV(strains~3) Kv*(f1-f2) +V(stage~6)->SV(strains~4) Kv*f2 +#For vaccinated people, assume there is only one incubation period, that this stage~1. +SV(strains~1)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +SV(strains~2)->E(stage~1,SD~M,V~1) (Ytheta1_()*U_theta1()*beta/S0)*(phiM()+mb*phiP()) +SV(strains~3)->E(stage~1,SD~M,V~1) (Ytheta1_()*U_theta2()*beta/S0)*(phiM()+mb*phiP()) +# entry into the immune clearance phase without generation of symptoms +E(stage~1,SD~M,V~1)->A(SD~M,V~1) (kL/5)*fA +E(stage~1,SD~M,V~1)->I(SD~M,V~1) (kL/5)*(1-fA) +# immune clearance, recovery +A(SD~M,V~1)->R(V~1) cA +I(SD~M,V~1)->R(V~1) cIfunc()*(1-fH/25) +I(SD~M,V~1)->H(V~1) cIfunc()*(fH/25) +H(V~1)->R(V~1) cH*fR +H(V~1)->D() cH*(1-fR) +# recovered and unvaccinated people are eligible for vaccination +R(V~0)->R(V~1) v_times_PhiV() +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +writeMfile(); +simulate({suffix=>"NYC",method=>"ode",t_end=>649,n_steps=>649,print_functions=>1,atol=>1e-7,rtol=>1e-7}) +end actions diff --git a/Published/VaxAndVariants/NYC/README.md b/Published/VaxAndVariants/NYC/README.md new file mode 100644 index 00000000..2b7eb583 --- /dev/null +++ b/Published/VaxAndVariants/NYC/README.md @@ -0,0 +1,21 @@ +# NYC + +- This model is intended to be consistent with the compartmental model + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- NYC.bngl + +## Tags + +nyc, counter, fdcs, s, sv, e, a, i, v diff --git a/Published/VaxAndVariants/NYC/metadata.yaml b/Published/VaxAndVariants/NYC/metadata.yaml new file mode 100644 index 00000000..00643421 --- /dev/null +++ b/Published/VaxAndVariants/NYC/metadata.yaml @@ -0,0 +1,22 @@ +id: "NYC" +name: "NYC" +description: "- This model is intended to be consistent with the compartmental model" +tags: ["nyc", "counter", "fdcs", "s", "sv", "e", "a", "i", "v"] +category: "epidemiology" +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-web-simulator" + source_path: "published-models/PyBNG/Vax_and_Variants/NYC/NYC.bngl" +playground: + visible: false + gallery_category: "epidemiology" + featured: false + difficulty: "advanced" diff --git a/Published/VaxAndVariants/Phoenix/Phoenix.bngl b/Published/VaxAndVariants/Phoenix/Phoenix.bngl new file mode 100644 index 00000000..8e2a6671 --- /dev/null +++ b/Published/VaxAndVariants/Phoenix/Phoenix.bngl @@ -0,0 +1,450 @@ +begin model +#--- +# About: +# - This model is intended to be consistent with the compartmental model +# of Mallela et al. (2023), which describes COVID-19 transmission dynamics. +# - The model is specified in terms of building blocks labeled +# S, SV, E, A, I, V, H, R, and D. +# - The building blocks represent distinct populations. +# - Some of the populations have population features, which have +# multiple possible values. +#--- +#--- +# References: +# - Mallela et al. (2023) medRxiv +# https://www.medrxiv.org/content/10.1101/2021.10.19.21265223v3 +#--- +begin parameters +####################################### +# fixed population-specific parameters # +####################################### +# total population +# region-specific +S0 4873019 +############################################# +# adjustable population-specific parameters # +############################################# +# start time of the local epidemic +ts0 ts0__FREE +# start time of 1st social distancing period +ts1 ts1__FREE +# start time of 1st social distancing *after* the initial +# social-distancing period ts1 +ts2 ts2__FREE +ts3 ts3__FREE +ts4 ts4__FREE +ts5 ts5__FREE +#theta- start time of of alpha and delta strains, respectively +theta0 theta0__FREE +theta1 theta1__FREE +#y0,y1- mutation multipier of alpha and delta strains, respectively +y0 y0__FREE +y1 y1__FREE +# eigenvalue (a sum of rate constants) that determines the time scale +# for establishment of a quasi-stationary state of the +# 1-5th social-distancing period +lambda0 lambda0__FREE +lambda1 lambda1__FREE +lambda2 lambda2__FREE +lambda3 lambda3__FREE +lambda4 lambda4__FREE +# quasi-stationary setpoint fraction of population practicing +# social distancing of the 1-5th social-distancing period +p0 p0__FREE +p1 p1__FREE +p2 p2__FREE +p3 p3__FREE +p4 p4__FREE +# eigenvalue +# rate constant for disease transmission +beta beta__FREE +# fraction of new symptomatic infections detected +fD fD__FREE +#fD # dimensionless +r r__FREE +############################## +# fixed universal parameters # +############################## +# initial number of infectious persons +I0 1 # dimensionless +# reporting period +# (delta_t=1 => daily case reports) +delta_t 1 # d +# parameter characterizing protective effect of social distancing +mb 0.1 # dimensionless +# relative infectiousness of E vs. I +rhoE 1.1 # dimensionless +# relative infectiousness of A vs. I +rhoA 0.9 # dimensionless +# rate constant for progression through stages of the incubation period +kL 0.94 # /d +# rate constant for I->H or R transition +cI 0.12 # /d +# fraction of exposed individuals who never develop symptoms +fA 0.44 # dimensionless +# fraction of symptomatic cases that progress to severe disease +fH 0.054 # dimensionless +# rate constant for quarantine +kQ 0.0038 # /d +# rate constant for self-isolation +jQ 0.4 # /d +# rate constant for A->R transition +cA 0.26 # /d +# rate constant for H->D or R transition +cH 0.17 # /d +# fraction of hospitalized patients who recover +fR 0.79 # dimensionless +# effectiveness of vaccination agaist ancestral strain +f0 0.9 +# effectiveness of vaccination agaist alpha variant +f1 0.81 +# effectiveness of vaccination agaist delta variant +f2 0.69 +# rate constant for progression through stages of the vaccine immunity +Kv 0.3 +end parameters +begin molecule types +# time tracker +# We need to track time to account for changes in social distancing +# and emergence of new SARS-CoV-2 variants. +counter() +# auxilliary function to track the case counts +fDCS() +#--- +# S: susceptible population +# comments: +# - The entire population (less I0) is initially susceptible. +# population features: +# SD: non-pharmaceutical intervention (SD) adopted +# comments: +# - Persons in the S, E, A, I, and R compartments may +# change their behavior to prevent disease transmission. +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +# - M: mixing +# - V: vaccination +# comments: +# - Persons in the SD~M state are mixing/socializing freely. +# They do not take precautions to prevent disease transmission. +# - Persons in the SD~P state take precautions to prevent +# disease transmission. +# - Persons in the SD~Q state are separated from susceptible persons. +# They are incapable of transmitting disease. +# - Persons in the SD~V state are vaccinated. V~0~1~2~3 tracks the +# number of vaccine doses that a person has received. +#--- +S(SD~M~P) +#--- +# SV: vaccinated and susceptible population +# strains: susceptible to different virus strains +# possible feature values: +# -1: susceptible to ancestral strain +# -2: susceptible to alpha strain +# -3: susceptible to delta strain +# -4: not susceptible +SV(strains~1~2~3~4) +#--- +# E: exposed population in the incubation period of disease progression +# population features: +# stage: incubation period stage +# comments: +# - The incubation period is divided into 5 stages. +# - Exposed persons do not have symptoms +# throughout the incubation period. +# - Exposed persons are infectious except in the first stage +# of the incubation period. +# possible feature values: +# - 1: 1st stage of the incubation period +# - 2: 2nd stage of the incubation period +# - 3: 3rd stage of the incubation period +# - 4: 4th stage of the incubation period +# - 5: 5th stage of the incubation period +# comments: +# - Exposed persons in the first stage of the incubation period +# are ineligible for quarantine (because virus cannot be detected). +# SD: non-pharmaceutical intervention (SD) adopted +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +#--- +E(stage~1~2~3~4~5,SD~M~P~Q,V~0~1) +#--- +# A: asymptomatic population +# comments: +# - Asymptomatic persons have passed through the incubation period. +# - Asympotmatic persons are infectious. +# - Asymptomatic persions will never develop symptoms. +# population feature values: +# SD: non-pharmaceutical intervention (SD) adopted +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +#--- +A(SD~M~P~Q,V~0~1) +#--- +# I: population with mild symptomatic disease +# comments: +# - Symptomatic persons are more likely to self-isolate than +# pre-symptomatic or asymptomatic persons because of symptom awareness. +# population features: +# SD: non-pharmaceutical intervention (SD) adopted +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +#--- +I(SD~M~P~Q,V~0~1) +# V: vaccinated population +# comments: +# - Vaccinated person in the SD~M do not take precautions to prevent +# disease transmission. This population is still at risk of infection. +#--- +V(stage~1~2~3~4~5~6) +#--- +# H: population with severe disease +# comments: +# - Persons with severe disease are in hospital or isolated at home. +# Consequently, they are unable to transmit disease. +#--- +H(V~0~1) +#--- +# R: recovered population +# population features: +# SD: non-pharmaceutical intervention (SD) adopted +# possible feature values: +# - 0: none +# - P: social distancing +# - Q: quarantine or self-isolation +#--- +R(V~0~1) +#--- +# D: deceased population +D() +end molecule types +begin seed species +counter() 0 +S(SD~M) S0-I0 +I(SD~M,V~0) I0 +fDCS() 0 +# +end seed species +begin observables +Molecules S_M S(SD~M) +Molecules S_P S(SD~P) +Molecules E1_M E(stage~1,SD~M,V~0) +Molecules E1_P E(stage~1,SD~P,V~0) +Molecules E2_M E(stage~2,SD~M,V~0) +Molecules E2_P E(stage~2,SD~P,V~0) +Molecules E2_Q E(stage~2,SD~Q,V~0) +Molecules E3_M E(stage~3,SD~M,V~0) +Molecules E3_P E(stage~3,SD~P,V~0) +Molecules E3_Q E(stage~3,SD~Q,V~0) +Molecules E4_M E(stage~4,SD~M,V~0) +Molecules E4_P E(stage~4,SD~P,V~0) +Molecules E4_Q E(stage~4,SD~Q,V~0) +Molecules E5_M E(stage~5,SD~M,V~0) +Molecules E5_P E(stage~5,SD~P,V~0) +Molecules E5_Q E(stage~5,SD~Q,V~0) +Molecules A_M A(SD~M,V~0) +Molecules A_P A(SD~P,V~0) +Molecules A_Q A(SD~Q,V~0) +Molecules I_M I(SD~M,V~0) +Molecules I_P I(SD~P,V~0) +Molecules I_Q I(SD~Q,V~0) +Molecules I_H H(V~0) +Molecules R_MP R(V~0) +Molecules D_ D() +Molecules V_1 V(stage~1) +Molecules V_2 V(stage~2) +Molecules V_3 V(stage~3) +Molecules V_4 V(stage~4) +Molecules V_5 V(stage~5) +Molecules V_6 V(stage~6) +Molecules SV_1 SV(strains~1) +Molecules SV_2 SV(strains~2) +Molecules SV_3 SV(strains~3) +Molecules SV_4 SV(strains~4) +Molecules E_V E(V~1) +Molecules A_V A(SD~M,V~1) +Molecules I_V I(SD~M,V~1) +Molecules H_V H(V~1) +Molecules R_V R(V~1) +Molecules fDCs_Cum fDCS() +Molecules Einf_P_1 E(stage~1,SD~P) E(stage~2,SD~P) E(stage~3,SD~P) E(stage~4,SD~P) E(stage~5,SD~P) +Molecules Einf_M_1 E(stage~1,SD~M,V~0) E(stage~2,SD~M,V~0) E(stage~3,SD~M,V~0) E(stage~4,SD~M,V~0) E(stage~5,SD~M,V~0) +Molecules A_MP A(SD~M,V~0) A(SD~P,V~0) +Molecules Einf_M_ E(stage~2,SD~M,V~0) E(stage~3,SD~M,V~0) E(stage~4,SD~M,V~0) E(stage~5,SD~M,V~0) +Molecules Einf_P_ E(stage~2,SD~P) E(stage~3,SD~P) E(stage~4,SD~P) E(stage~5,SD~P) +Molecules nE_V E(V~1) +Molecules nE5_MPQ E(stage~5,SD~M,V~0) E(stage~5,SD~P,V~0) E(stage~5,SD~Q,V~0) +Molecules t counter() +end observables +begin functions +# daily vaccination rate of fully vaccinated population +# data is obtained from COVID Act Now +# region-specific +v_rate()=if(t<=309,0,if(t<=310,0.00011758,if(t<=311,0.00036362,if(t<=312,0.00065919,if(t<=313,0.00015943,if(t<=314,0.00015943,if(t<=315,0.00065919,if(t<=316,0.00015943,if(t<=317,0.00065919,if(t<=318,0,if(t<=319,0.00080006,if(t<=320,0,if(t<=321,0.00015943,if(t<=322,0,if(t<=323,0,if(t<=324,0.0012008,if(t<=325,0.00065919,if(t<=326,0.00031887,if(t<=327,0.00081862,if(t<=328,0,if(t<=329,0.00064063,if(t<=330,0.00077676,if(t<=331,0.00147781,if(t<=332,0.00113749,if(t<=333,0.00134167,if(t<=334,0.0009362,if(t<=335,0.00049686,if(t<=336,0.0004812,if(t<=337,0.00099661,if(t<=338,0.00118224,if(t<=339,0.00115604,if(t<=340,0.00147781,if(t<=341,0.00081862,if(t<=342,0.00101991,if(t<=343,0.00149975,if(t<=344,0.00164063,if(t<=345,0.00131547,if(t<=346,0.00199661,if(t<=347,0.00236023,if(t<=348,0.00031887,if(t<=349,0.00218224,if(t<=350,0.00083718,if(t<=351,0.00186048,if(t<=352,0.00147781,if(t<=353,0.0019328,if(t<=354,0.00229642,if(t<=355,0.00206127,if(t<=356,0.00165968,if(t<=357,0.00170104,if(t<=358,0.00211844,if(t<=359,0.00211418,if(t<=360,0.00247441,if(t<=361,0.00324265,if(t<=362,0.00333403,if(t<=363,0.00211758,if(t<=364,0.0029561,if(t<=365,0.00233403,if(t<=366,0.00325457,if(t<=367,0.00395222,if(t<=368,0.00299661,if(t<=369,0.0041307,if(t<=370,0.00177726,if(t<=371,0.00433779,if(t<=372,0.00350314,if(t<=373,0.00423397,if(t<=374,0.00361529,if(t<=375,0.0036791,if(t<=376,0.00385369,if(t<=377,0.00100049,if(t<=378,0.00477762,if(t<=379,0.00305992,if(t<=380,0.0009566000000000001,if(t<=381,0.00579193,if(t<=382,0.00197756,if(t<=383,0.00363434,if(t<=384,0.00286048,if(t<=385,0.00335684,if(t<=386,0.00367774,if(t<=387,0.0033878,if(t<=388,0.00381523,if(t<=389,0.00381523,if(t<=390,0.00375481,if(t<=391,0.00309902,if(t<=392,0.00459113,if(t<=393,0.00449975,if(t<=394,0.00455063,if(t<=395,0.00134217,if(t<=396,0.009047349999999999,if(t<=397,0.00311708,if(t<=398,0.00393515,if(t<=399,0.00601941,if(t<=400,0.00529846,if(t<=401,0.0051569,if(t<=402,0.0015016,if(t<=403,0.01084692,if(t<=404,0.00412372,if(t<=405,0.00521216,if(t<=406,0.00614124,if(t<=407,0.00498095,if(t<=408,0.00579753,if(t<=409,0.00111603,if(t<=410,0.00954283,if(t<=411,0.00390048,if(t<=412,0.00416777,if(t<=413,0.00542743,if(t<=414,0.00538304,if(t<=415,0.00584143,if(t<=416,0.00629728,if(t<=417,0.00220518,if(t<=418,0.01040331,if(t<=419,0.00366547,if(t<=420,0.00727632,if(t<=421,0.00554586,if(t<=422,0.00597552,if(t<=423,0.00634339,if(t<=424,0.00658433,if(t<=425,0.00422459,if(t<=426,0.0040233,if(t<=427,0.00384228,if(t<=428,0.00713137,if(t<=429,0.00772761,if(t<=430,0.00730578,if(t<=431,0.00722835,if(t<=432,0.00618699,if(t<=433,0.0060495,if(t<=434,0.00574887,if(t<=435,0.007965079999999999,if(t<=436,0.00568674,if(t<=437,0.00634592,if(t<=438,0.00573063,if(t<=439,0.00490826,if(t<=440,0.0040643,if(t<=441,0.00283514,if(t<=442,0.00245358,if(t<=443,0.0057543,if(t<=444,0.00909925,if(t<=445,0.00484531,if(t<=446,0.0054992,if(t<=447,0.0035455,if(t<=448,0.00440666,if(t<=449,0.00347866,if(t<=450,0.00649715,if(t<=451,0.00450111,if(t<=452,0.00593106,if(t<=453,0.00392681,if(t<=454,0.00357084,if(t<=455,0.00276652,if(t<=456,0.00398926,if(t<=457,0.00294913,if(t<=458,0.00356356,if(t<=459,0.009297949999999999,if(t<=460,0.00511109,if(t<=461,0.00490875,if(t<=462,0.00439813,if(t<=463,0.00411109,if(t<=464,0.00358261,if(t<=465,0.00324519,if(t<=466,0.00306634,if(t<=467,0.00324433,if(t<=468,0.0024291,if(t<=469,0.00124772,if(t<=470,0.00640702,if(t<=471,0.00108914,if(t<=472,0.00454859,if(t<=473,0.0020439,if(t<=474,0.00207368,if(t<=475,0.00240715,if(t<=476,0.00349544,if(t<=477,0.00226713,if(t<=478,0.00148034,if(t<=479,0.00188242,if(t<=480,0.00154414,if(t<=481,0.00338471,if(t<=482,0.00172892,if(t<=483,0.00174543,if(t<=484,0.00183971,if(t<=485,0.00190437,if(t<=486,0.00079581,if(t<=487,0.00115943,if(t<=488,0.00142657,if(t<=489,0.00048034,if(t<=490,0.00088496,if(t<=491,0.00226967,if(t<=492,0.00108575,if(t<=493,0.00034081,if(t<=494,0.00138132,if(t<=495,0.00120333,if(t<=496,0.00152219,if(t<=497,0.00052219,if(t<=498,0.00120333,if(t<=499,0.001,if(t<=500,0.00065833,if(t<=501,0.00070104,if(t<=502,0.00172892,if(t<=503,0.00017799,if(t<=504,0.00136615,if(t<=505,0.00054075,if(t<=506,0.00118138,if(t<=507,0.00034081,if(t<=508,0.00084057,if(t<=509,0.00063638,if(t<=510,0.00072638,if(t<=511,0.00052219,if(t<=512,0.00084057,if(t<=513,0.00065833,if(t<=514,0.00070443,if(t<=515,0.00063638,if(t<=516,0.00072299,if(t<=517,0.00045839,if(t<=518,0.000545,if(t<=519,0.001,if(t<=520,0.00035937,if(t<=521,0.00064063,if(t<=522,0.00035937,if(t<=523,0.00045839,if(t<=524,0.00072299,if(t<=525,0.00027701,if(t<=526,0.00090437,if(t<=527,0.00084057,if(t<=528,0.000455,if(t<=529,0.00082201,if(t<=530,0.00035937,if(t<=531,0.00034081,if(t<=532,0.00095814,if(t<=533,0.00084057,if(t<=534,0.00049686,if(t<=535,0.00082201,if(t<=536,0.00065919,if(t<=537,0.00063638,if(t<=538,0.00070443,if(t<=539,0,if(t<=540,0.00129557,if(t<=541,0.00084057,if(t<=542,0.00027701,if(t<=543,0.001,if(t<=544,0.00054161,if(t<=545,0.00045839,if(t<=546,0.001,if(t<=547,0,if(t<=548,0.00129557,if(t<=549,0.00065919,if(t<=550,0.001,if(t<=551,0.00034081,if(t<=552,0.000455,if(t<=553,0.000545,if(t<=554,0.00027701,if(t<=555,0.00072299,if(t<=556,0.00029557,if(t<=557,0.001,if(t<=558,0.00018138,if(t<=559,0.00081862,if(t<=560,0.00034081,if(t<=561,0.00084057,if(t<=562,0,if(t<=563,0.00111418,if(t<=564,0.00018138,if(t<=565,0.001,if(t<=566,0.00045839,if(t<=567,0.00018138,if(t<=568,0.00088242,if(t<=569,0.00065919,if(t<=570,0.00018138,if(t<=571,0.00081862,if(t<=572,0.00063638,if(t<=573,0.000545,if(t<=574,0.00063638,if(t<=575,0.00018138,if(t<=576,0.001,if(t<=577,0,if(t<=578,0.00035937,if(t<=579,0.0009362,if(t<=580,0.00102195,if(t<=581,0.00034081,if(t<=582,0.00045839,if(t<=583,0.00054161,if(t<=584,0.00047695,if(t<=585,0.00064063,if(t<=586,0.00035937,if(t<=587,0.00064063,if(t<=588,0.00035937,if(t<=589,0.00034081,if(t<=590,0.00065919,if(t<=591,0.00029896,if(t<=592,0.00070104,if(t<=593,0.00029896,if(t<=594,0.000455,if(t<=595,0.00072638,if(t<=596,0.00063638,if(t<=597,0.00036362,if(t<=598,0.00117799,if(t<=599,0.00011758,if(t<=600,0.00070104,if(t<=601,0.00018138,if(t<=602,0.00045839,if(t<=603,0.00072299,if(t<=604,0.00011758,if(t<=605,0.001,if(t<=606,0.00033742,if(t<=607,0.000545,if(t<=608,0.000455,if(t<=609,0.00018138,if(t<=610,0.00064063,if(t<=611,0.00035937,if(t<=612,0.000545,if(t<=613,0.00063638,if(t<=614,0.00065919,if(t<=615,0.00045839,if(t<=616,0,if(t<=617,0.00088242,if(t<=618,0.00047695,if(t<=619,0.00036362,if(t<=620,0.00015943,if(t<=621,0.001,if(t<=622,0.00047695,if(t<=623,0.00015943,if(t<=624,0.00066258,if(t<=625,0.00035937,if(t<=626,0.00064063,if(t<=627,0.00035937,if(t<=628,0.00081862,if(t<=629,0.00018138,if(t<=630,0.00052219,if(t<=631,0.00065919,if(t<=632,0.00018138,if(t<=633,0.00015943,if(t<=634,0,if(t<=635,0.00018138,if(t<=636,0.00131837,if(t<=637,0.00084057,if(t<=638,0.00115943,if(t<=639,0.00136023,if(t<=640,0.00172724,if(t<=641,0.00151966,if(t<=642,0.00152305,if(t<=643,0.0027281,if(t<=644,0.00115943,if(t<=645,0.00117934,if(t<=646,0.00218224,if(t<=647,0.00154161,if(t<=648,0.00145925,if(t<=649,0.00151966,0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +# Total population that are eligible for vaccination +PhiV()=if(t>=ts0,R_MP+Einf_P_1+Einf_M_1+S_M+S_P+A_MP,0) +# region-specific +v_times_PhiV()=if(t<=582,0,S0*v_rate()/PhiV()) +#v_times_PhiV_python()=if(t<=346,0,S0*v_rate()/PhiV()) +# Set the values of the rate constants kQ, jQ, and cI to 0 if t=ts0,kQ,0) +jQfunc()=if(t>=ts0,jQ,0) +cIfunc()=if(t>=ts0,cI,0) +# effective population of infectious persons with SD~M state (mixing) +# The effective population size is set to 0 if t=ts0,rhoE*Einf_M_+rhoA*A_M+rhoE*nE_V+I_M+rhoA*A_V+I_V,0) +# effective population of infectious persons with SD~P state (protected) +phiP()=if(t>=ts0,rhoE*Einf_P_+rhoA*A_P+I_P,0) +# Step function for mutation multiplier +Ytheta1_()=if(t<=theta0,1,if(t<=theta0+theta1,y0,y1)) +# Heaviside function for different mutation-dominated period +U()=if(t>=ts0,1,0) +U_theta1()=if(t=sum1 && t=sum2 && t=sum3 && t=sum4 && t=sum5,lambda4,\ + 0))))) +# social-distancing setpoint fractions +# P() is a step function. +# Currently, P() provides setpoint fractions for 5 social-distancing periods. +P()=if(t>=sum1 && t=sum2 && t=sum3 && t=sum4 && t=sum5,p4,\ + 0))))) +end functions +begin reaction rules +# cumulative infected population +0->fDCS() fD*(1-fA)*(kL*nE5_MPQ+kL/5*nE_V) +# increment time +0->counter() 1 +######################################## +# EID model in near original BNGL form # +######################################## +# disease transmission +S(SD~M)->E(stage~1,SD~M,V~0) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +S(SD~P)->E(stage~1,SD~P,V~0) mb*(Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +# social distancing +S(SD~M)<->S(SD~P) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# there are five stages between E(SD~M) and E(SD~P) +E(stage~1,SD~M,V~0)<->E(stage~1,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E(stage~2,SD~M,V~0)<->E(stage~2,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E(stage~3,SD~M,V~0)<->E(stage~3,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E(stage~4,SD~M,V~0)<->E(stage~4,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +E(stage~5,SD~M,V~0)<->E(stage~5,SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# social distancing +A(SD~M,V~0)<->A(SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +I(SD~M,V~0)<->I(SD~P,V~0) U()*Lambda()*P(),U()*Lambda()*(1-P()) +# testing-driven quarantine +E(stage~2,SD~M,V~0)->E(stage~2,SD~Q,V~0) kQ +E(stage~3,SD~M,V~0)->E(stage~3,SD~Q,V~0) kQ +E(stage~4,SD~M,V~0)->E(stage~4,SD~Q,V~0) kQ +E(stage~5,SD~M,V~0)->E(stage~5,SD~Q,V~0) kQ +E(stage~2,SD~P,V~0)->E(stage~2,SD~Q,V~0) kQ +E(stage~3,SD~P,V~0)->E(stage~3,SD~Q,V~0) kQ +E(stage~4,SD~P,V~0)->E(stage~4,SD~Q,V~0) kQ +E(stage~5,SD~P,V~0)->E(stage~5,SD~Q,V~0) kQ +# progression through stages of the incubation period +E(stage~1,SD~M,V~0)->E(stage~2,SD~M,V~0) kL +E(stage~2,SD~M,V~0)->E(stage~3,SD~M,V~0) kL +E(stage~3,SD~M,V~0)->E(stage~4,SD~M,V~0) kL +E(stage~4,SD~M,V~0)->E(stage~5,SD~M,V~0) kL +E(stage~1,SD~P,V~0)->E(stage~2,SD~P,V~0) kL +E(stage~2,SD~P,V~0)->E(stage~3,SD~P,V~0) kL +E(stage~3,SD~P,V~0)->E(stage~4,SD~P,V~0) kL +E(stage~4,SD~P,V~0)->E(stage~5,SD~P,V~0) kL +E(stage~2,SD~Q,V~0)->E(stage~3,SD~Q,V~0) kL +E(stage~3,SD~Q,V~0)->E(stage~4,SD~Q,V~0) kL +E(stage~4,SD~Q,V~0)->E(stage~5,SD~Q,V~0) kL +# entry into the immune clearance phase without generation of symptoms +E(stage~5,SD~M,V~0)->A(SD~M,V~0) kL*fA +E(stage~5,SD~P,V~0)->A(SD~P,V~0) kL*fA +E(stage~5,SD~Q,V~0)->A(SD~Q,V~0) kL*fA +# entry into the immune clearance phase *with* generation of mild symptoms +E(stage~5,SD~M,V~0)->I(SD~M,V~0) kL*(1-fA) +E(stage~5,SD~P,V~0)->I(SD~P,V~0) kL*(1-fA) +E(stage~5,SD~Q,V~0)->I(SD~Q,V~0) kL*(1-fA) +# self-isolation because of symptom awareness +I(SD~M,V~0)->I(SD~Q,V~0) jQfunc()+kQfunc() +I(SD~P,V~0)->I(SD~Q,V~0) jQfunc()+kQfunc() +A(SD~M,V~0)->A(SD~Q,V~0) kQfunc() +A(SD~P,V~0)->A(SD~Q,V~0) kQfunc() +# immune clearance, recovery from asymptomatic infection +A(SD~M,V~0)->R(V~0) cA +A(SD~P,V~0)->R(V~0) cA +A(SD~Q,V~0)->R(V~0) cA +# immune clearance, recovery from mild symptomatic infection +I(SD~M,V~0)->R(V~0) cIfunc()*(1-fH) +I(SD~P,V~0)->R(V~0) cIfunc()*(1-fH) +I(SD~Q,V~0)->R(V~0) cIfunc()*(1-fH) +# progression from mild to severe disease & hospitalization/isolation-at-home +I(V~0)->H(V~0) cIfunc()*fH +# recovery from severe disease +H(V~0)->R(V~0) cH*fR +# progression from severe disease to death +H(V~0)->D() cH*(1-fR) +# vaccination +# Rules are added to capture the effects of vaccination. +# vaccinate +S(SD~M)->V(stage~1) v_times_PhiV() +S(SD~P)->V(stage~1) v_times_PhiV() +V(stage~1)->V(stage~2) Kv +V(stage~2)->V(stage~3) Kv +V(stage~3)->V(stage~4) Kv +V(stage~4)->V(stage~5) Kv +V(stage~5)->V(stage~6) Kv +#Assume infected and vaccinated population are SD~M. +V(stage~1)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~2)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~3)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~4)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~5)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +V(stage~6)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +# 1-effectiveness percentage of vaccinated people are still susceptible +V(stage~6)->SV(strains~1) Kv*(1-f0) +V(stage~6)->SV(strains~2) Kv*(f0-f1) +V(stage~6)->SV(strains~3) Kv*(f1-f2) +V(stage~6)->SV(strains~4) Kv*f2 +#For vaccinated people, assume there is only one incubation period, that this stage~1. +SV(strains~1)->E(stage~1,SD~M,V~1) (Ytheta1_()*beta/S0)*(phiM()+mb*phiP()) +SV(strains~2)->E(stage~1,SD~M,V~1) (Ytheta1_()*U_theta1()*beta/S0)*(phiM()+mb*phiP()) +SV(strains~3)->E(stage~1,SD~M,V~1) (Ytheta1_()*U_theta2()*beta/S0)*(phiM()+mb*phiP()) +# entry into the immune clearance phase without generation of symptoms +E(stage~1,SD~M,V~1)->A(SD~M,V~1) (kL/5)*fA +E(stage~1,SD~M,V~1)->I(SD~M,V~1) (kL/5)*(1-fA) +# immune clearance, recovery +A(SD~M,V~1)->R(V~1) cA +I(SD~M,V~1)->R(V~1) cIfunc()*(1-fH/25) +I(SD~M,V~1)->H(V~1) cIfunc()*(fH/25) +H(V~1)->R(V~1) cH*fR +H(V~1)->D() cH*(1-fR) +# recovered and unvaccinated people are eligible for vaccination +R(V~0)->R(V~1) v_times_PhiV() +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +writeMfile(); +simulate({suffix=>"Phoenix",method=>"ode",t_end=>649,n_steps=>649,print_functions=>1,atol=>1e-7,rtol=>1e-7}) +end actions diff --git a/Published/VaxAndVariants/Phoenix/README.md b/Published/VaxAndVariants/Phoenix/README.md new file mode 100644 index 00000000..b5e2b3ca --- /dev/null +++ b/Published/VaxAndVariants/Phoenix/README.md @@ -0,0 +1,21 @@ +# Phoenix + +- This model is intended to be consistent with the compartmental model + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- Phoenix.bngl + +## Tags + +phoenix, counter, fdcs, s, sv, e, a, i, v diff --git a/Published/VaxAndVariants/Phoenix/metadata.yaml b/Published/VaxAndVariants/Phoenix/metadata.yaml new file mode 100644 index 00000000..8b25a650 --- /dev/null +++ b/Published/VaxAndVariants/Phoenix/metadata.yaml @@ -0,0 +1,22 @@ +id: "Phoenix" +name: "Phoenix" +description: "- This model is intended to be consistent with the compartmental model" +tags: ["phoenix", "counter", "fdcs", "s", "sv", "e", "a", "i", "v"] +category: "epidemiology" +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-web-simulator" + source_path: "published-models/PyBNG/Vax_and_Variants/Phoenix/Phoenix.bngl" +playground: + visible: false + gallery_category: "epidemiology" + featured: false + difficulty: "advanced" diff --git a/Published/Zhang2021/README.md b/Published/Zhang2021/README.md new file mode 100644 index 00000000..51938ee9 --- /dev/null +++ b/Published/Zhang2021/README.md @@ -0,0 +1,21 @@ +# Zhang 2021 + +CAR-T signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Zhang_2021.bngl + +## Tags + +published, zhang, 2021, tie2, tie1, ang1_4, ang2_2, ang2_3, ang2_4, veptp, pten diff --git a/Published/Zhang2021/Zhang_2021.bngl b/Published/Zhang2021/Zhang_2021.bngl new file mode 100644 index 00000000..e51f35f3 --- /dev/null +++ b/Published/Zhang2021/Zhang_2021.bngl @@ -0,0 +1,760 @@ +begin model + +begin parameters + # Tie Module + Tie2_0 1 + Tie1_0 1 + Tie1Tie2_0 1 + Ang1_4_0 1 + Ang2_2_0 1 + Ang2_3_0 1 + Ang2_4_0 1 + VEPTP_0 1 + sTie2_0 1 + sTie1_0 1 + + PTEN_0 1 + PIP2_0 1 + PI3K_0 1 + Akt_0 1 + PDK1_0 1 + + RhoA_0 1 + mDia_0 1 + Src_0 1 + VECadherin_0 1 + ABIN2_0 1 + + + # Affinities + kD_ang1 1 # nM + kD_ang2 1 # nM + + # Ang1 Kinetics + koffang1tie2 1 # s-1 + konang1tie2 koffang1tie2/kD_ang1 + + # Ang2 Kinetics + koffang2tie2 1 # s-1 + konang2tie2 koffang2tie2/kD_ang2 + + # Diffusion Limits + kontie2diff 1 + kofftie2diff 1 + + konstie2diff 1 + koffstie2diff 1 + + + # kinteic parameters + # Ang1 Binding + konang1tie2_1 konang1tie2 # nM-1s-1 + koffang1tie2_1 koffang1tie2 # s-1 + konang1tie2_2 kontie2diff # nM-1s-1 + koffang1tie2_2 kofftie2diff # s-1 + konang1tie2_3 kontie2diff # nM-1s-1 + koffang1tie2_3 kofftie2diff # s-1 + konang1tie2_4 kontie2diff # nM-1s-1 + koffang1tie2_4 kofftie2diff # s-1 + + # Ang2 Binding + konang2_2tie2_1 konang2tie2 # nM-1s-1 + koffang2_2tie2_1 koffang2tie2 # s-1 + konang2_2tie2_2 kontie2diff # nM-1s-1 + koffang2_2tie2_2 kofftie2diff # s-1 + + konang2_3tie2_1 konang2tie2 # nM-1s-1 + koffang2_3tie2_1 koffang2tie2 # s-1 + konang2_3tie2_2 kontie2diff # nM-1s-1 + koffang2_3tie2_2 kofftie2diff # s-1 + konang2_3tie2_3 kontie2diff # nM-1s-1 + koffang2_3tie2_3 kofftie2diff # s-1 + + konang2_4tie2_1 konang2tie2 # nM-1s-1 + koffang2_4tie2_1 koffang2tie2 # s-1 + konang2_4tie2_2 kontie2diff # nM-1s-1 + koffang2_4tie2_2 kofftie2diff # s-1 + konang2_4tie2_3 kontie2diff # nM-1s-1 + koffang2_4tie2_3 kofftie2diff # s-1 + konang2_4tie2_4 kontie2diff # nM-1s-1 + koffang2_4tie2_4 kofftie2diff # s-1 + + # Phosphorylation + kpang1tie2 1 # s-1 + kdpang1tie2 1 # s-1 + kpang2tie2 1 # s-1 + kdpang2tie2 1 # s-1 + + # Tie2 Junctional Localization + ksjang1tie2 1 + kjsang1tie2 1 + ksjang2tie2 1 + kjsang2tie2 1 + + # Tie1 Junctional Localization + ksjtie1 1 + kjstie1 1 + + # Tie1Tie2 binding at Junction + konang1tie1tie2_4_j 1 + koffang1tie1tie2_4_j 1 + konang2tie1tie2_4_j 1 + koffang2tie1tie2_4_j 1 + + # Tie1 phosphorylation at Junction + kptie1ang1_j 1 + kdpatie1ang1_j 1 + kptie1ang2_j 1 + kdpatie1ang2_j 1 + + + # Dephosphorylation + konveptp 1 # ?, nM -1 s-1 + koffveptp 1 # ?, s-1 + kactveptp_ang1 1 # s-1 + kactveptp_ang2 1 + + + kintang1dptie 1 + kintang1ptie 1 + + kintang2dptie 1 + kintang2ptie 1 + + # Internalization + kintang1tie2_1 kintang1dptie # s-1 + kintang1tie2_2 kintang1dptie # s-1 + kintang1tie2_3 kintang1dptie # s-1 + kintang1tie2_4 kintang1dptie # s-1 + kintang1p1tie2_4 kintang1ptie # s-1 + kintang1p2tie2_4 kintang1ptie # s-1 + kintang1p3tie2_4 kintang1ptie # s-1 + kintang1p4tie2_4 kintang1ptie # s-1 + + + kintang2_2tie2_1 kintang2dptie # s-1 + kintang2_2tie2_2 kintang2dptie # s-1 + + kintang2_3tie2_1 kintang2dptie # s-1 + kintang2_3tie2_2 kintang2dptie # s-1 + kintang2_3tie2_3 kintang2dptie # s-1 + + kintang2_4tie2_1 kintang2dptie # s-1 + kintang2_4tie2_2 kintang2dptie # s-1 + kintang2_4tie2_3 kintang2dptie # s-1 + kintang2_4tie2_4 kintang2dptie # s-1 + kintang2_4p1tie2_4 kintang2ptie # s-1 + kintang2_4p2tie2_4 kintang2ptie # s-1 + kintang2_4p3tie2_4 kintang2ptie # s-1 + kintang2_4p4tie2_4 kintang2ptie # s-1 + + + + # Degradation and Replenishment + kdegptie2 1 # s-1, fit + krectie2 1 # recycling, fit! + ksyntie2 1 # nM s-1 + ksyntie1 1 #nM s-1 + + + # Binding to sTie2 + # Ang1 Binding + konang1stie2_1 konang1tie2 # nM-1s-1 + koffang1stie2_1 koffang1tie2 # s-1 + konang1stie2_2 konstie2diff # nM-1s-1 + koffang1stie2_2 koffstie2diff # s-1 + konang1stie2_3 konstie2diff # nM-1s-1 + koffang1stie2_3 koffstie2diff # s-1 + konang1stie2_4 konstie2diff # nM-1s-1 + koffang1stie2_4 koffstie2diff # s-1 + + # Ang2 Binding + konang2_2stie2_1 konang2tie2 # nM-1s-1 + koffang2_2stie2_1 koffang2tie2 # s-1 + konang2_2stie2_2 konstie2diff # nM-1s-1 + koffang2_2stie2_2 koffstie2diff # s-1 + + konang2_3stie2_1 konang2tie2 # nM-1s-1 + koffang2_3stie2_1 koffang2tie2 # s-1 + konang2_3stie2_2 konstie2diff # nM-1s-1 + koffang2_3stie2_2 koffstie2diff # s-1 + konang2_3stie2_3 konstie2diff # nM-1s-1 + koffang2_3stie2_3 koffstie2diff # s-1 + + konang2_4stie2_1 konang2tie2 # nM-1s-1 + koffang2_4stie2_1 koffang2tie2 # s-1 + konang2_4stie2_2 konstie2diff # nM-1s-1 + koffang2_4stie2_2 koffstie2diff # s-1 + konang2_4stie2_3 konstie2diff # nM-1s-1 + koffang2_4stie2_3 koffstie2diff # s-1 + konang2_4stie2_4 konstie2diff # nM-1s-1 + koffang2_4stie2_4 koffstie2diff # s-1 + + # heterodimerization + kontie1tie2 1 + kofftie1tie2 1 + + # Binding to Tie1Tie2 + konang1_4tie1tie2 koffang1tie2/kD_ang1 # nM-1s-1 + koffang1_4tie1tie2 koffang1tie2 # s-1 + kdissang1tie1tie2 1 #?? + + koffang2_2tie1tie2 koffang2tie2 + konang2_2tie1tie2 koffang2tie2/kD_ang2 + koffang2_3tie1tie2 koffang2tie2 + konang2_3tie1tie2 koffang2tie2/kD_ang2 + koffang2_4tie1tie2 koffang2tie2 + konang2_4tie1tie2 koffang2tie2/kD_ang2 + + # Cleavage and Degradation + kcleavetie2 1 + kcleavetie1 1 + kdegsTie2 1 + kdegstie1 1 + + # Akt Activation + kactPI3KTie2 1 + kinactPI3KTie2 1 + + kPIP2gen 1 + + kmPIP2PI3K 1 + kcatPI3KPIP2 1 + + kmPIP3PTEN 1 + kcatPTENPIP3 1 + + konPDK1PIP3 1 + koffPDK1PIP3 1 + konAKTPIP3 1 + koffAKTPIP3 1 + + kpmTORAKT 1 + kpAKTPDK1 1 + kdp473AKTPPase 1 + kdp308AKTPPase 1 + + # rhoa,mdia + kprhoa 0.1 + kdprhoa 0.1 + + konrhoamdia 0.1 + koffrhoamdia 0.1 + + konmdiasrc 0.1 + koffmdiasrc 0.1 + + kpsrc 0.1 + kdpsrc 0.1 + + kpvecad 0.1 + kdpvecad 0.1 + kintvecad 0.1 + krecvecad 0.1 + kdegvecad 0.1 + + kactabin2 0.1 + kinactabin2 0.1 +end parameters + + +begin molecule types + Tie2(tie1bs,loc~s~i~j~sol,veptpbs,pY~p~dp,ang1bs,ang2bs) + Tie1(pY~dp~p,tie2bs,loc~s~i~j~sol) + Ang1_4(tie2bs,tie2bs,tie2bs,tie2bs) + Ang2_2(tie2bs,tie2bs) + Ang2_3(tie2bs,tie2bs,tie2bs) + Ang2_4(tie2bs,tie2bs,tie2bs,tie2bs) + VEPTP(tie2bs) + + PTEN(PIP3docking) + PI(PIsite~3P~4P) + PI3K(state~active~inactive) + Akt(PHakt,T308~S~pS,S473~S~pS) + PDK1(PHpdk1,aktbd) + + RhoA(G~GDP~GTP,mDiabs) + mDia(RhoAbs,srcbs) + Src(mDiabs,Y1~Y~pY) + VECadherin(S665~S~pS,c~j~i) + ABIN2(state~inactive~active) + + I() + Trash() +end molecule types + +begin seed species + Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs,ang2bs) Tie2_0 + Ang1_4(tie2bs,tie2bs,tie2bs,tie2bs) Ang1_4_0 + Ang2_2(tie2bs,tie2bs) Ang2_2_0 + Ang2_3(tie2bs,tie2bs,tie2bs) Ang2_3_0 + Ang2_4(tie2bs,tie2bs,tie2bs,tie2bs) Ang2_4_0 + VEPTP(tie2bs) VEPTP_0 + Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs,ang2bs) sTie2_0 + Tie1(pY~dp,loc~sol,tie2bs) sTie1_0 + Tie1(pY~dp,loc~s,tie2bs) Tie1_0 + Tie1(pY~dp,loc~s,tie2bs!1).Tie2(tie1bs!1,loc~s,veptpbs,pY~dp,ang1bs,ang2bs) Tie1Tie2_0 + + PTEN(PIP3docking) PTEN_0 + PI(PIsite~3P) PIP2_0 + PI3K(state~inactive) PI3K_0 + Akt(PHakt,T308~S,S473~S) Akt_0 + PDK1(PHpdk1,aktbd) PDK1_0 + + RhoA(G~GDP,mDiabs) RhoA_0 + mDia(RhoAbs,srcbs) mDia_0 + Src(mDiabs,Y1~Y) Src_0 + VECadherin(S665~S,c~j) VECadherin_0 + ABIN2(state~inactive) ABIN2_0 + + I() 1 + Trash() 1 +end seed species + +begin observables + Molecules pTie2 Tie2(pY~p) #1 + Molecules intTie2 Tie2(loc~i) #2 + Molecules surfTie2 Tie2(loc~s) #3 + Molecules psurfTie2 Tie2(loc~s,pY~p) #4 + Molecules pintTie2 Tie2(loc~i,pY~p) #5 + Molecules totalTie2 Tie2 #6 + Molecules sTie2 Tie2(loc~sol) #7 + Molecules Tie1Tie2 Tie1(pY~dp,loc~s,tie2bs!+) #8 + Molecules surfTie1 Tie1(pY~dp,loc~s,tie2bs) #9 + Molecules sTie1 Tie1(loc~sol) #10 + Molecules jTie2 Tie2(loc~j) #11 + Molecules tsurfTie1 Tie1(loc~s) #12 + Molecules jTie1 Tie1(loc~j) #13 + Molecules freepip2 PI(PIsite~3P) #14 + Molecules freepip3 PI(PIsite~4P) #15 + Molecules ppAkt Akt(T308~pS,S473~pS) #16 + Molecules freeSrc Src(mDiabs) #17 + Molecules pSrc Src(Y1~pY) #18 + Molecules pVECadherin VECadherin(S665~pS) #19 + Molecules aABIN2 ABIN2(state~active) #20 + Molecules totalAkt Akt #21 + Molecules RhoAGTP RhoA(G~GTP) #22 + Molecules RhoAmDia mDia(RhoAbs!+) #23 + Molecules mDiaSrc Src(mDiabs!+) #24 + Molecules totalTie1 Tie1 #25 +end observables + +# Ang/Tie Binding: Rules 1-13 +begin reaction rules + # Ang1 Binding (ligand-induced) + # 1 + Ang1_4(tie2bs,tie2bs,tie2bs,tie2bs) + \ + Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs,ang2bs) <-> \ + Ang1_4(tie2bs!1,tie2bs,tie2bs,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!1,ang2bs) konang1tie2_1,koffang1tie2_1 + + # 2 + Ang1_4(tie2bs!1,tie2bs,tie2bs,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!1,ang2bs) + Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs,ang2bs) <-> \ + Ang1_4(tie2bs!1,tie2bs!2,tie2bs,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!1,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!2,ang2bs) konang1tie2_2,koffang1tie2_2 + + # 3 + Ang1_4(tie2bs!1,tie2bs!2,tie2bs,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!1,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!2,ang2bs) + \ + Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs,ang2bs) <-> \ + Ang1_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!1,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!2,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!3,ang2bs) konang1tie2_3,koffang1tie2_3 + + # 4 + Ang1_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!1,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!2,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!3,ang2bs) + \ + Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs,ang2bs) <-> \ + Ang1_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!1,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!2,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!3,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!4,ang2bs) konang1tie2_4,koffang1tie2_4 + + # Ang2 Binding + # dimer + # 5 + Ang2_2(tie2bs,tie2bs) + \ + Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs,ang1bs) <-> \ + Ang2_2(tie2bs!1,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs) konang2_2tie2_1,koffang2_2tie2_1 + + # 6 + Ang2_2(tie2bs!1,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs) + \ + Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs,ang1bs) <-> \ + Ang2_2(tie2bs!1,tie2bs!2).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!2,ang1bs) konang2_2tie2_2,koffang2_2tie2_2 + + # trimer + # 7 + Ang2_3(tie2bs,tie2bs,tie2bs) + \ + Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs,ang1bs) <-> \ + Ang2_3(tie2bs!1,tie2bs,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs) konang2_3tie2_1,koffang2_3tie2_1 + + # 8 + Ang2_3(tie2bs!1,tie2bs,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs) + \ + Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs,ang1bs) <-> \ + Ang2_3(tie2bs!1,tie2bs!2,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!2,ang1bs) konang2_3tie2_2,koffang2_3tie2_2 + + # 9 + Ang2_3(tie2bs!1,tie2bs!2,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!2,ang1bs) + \ + Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs,ang1bs) <-> \ + Ang2_3(tie2bs!1,tie2bs!2,tie2bs!3).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!2,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!3,ang1bs) konang2_3tie2_3,koffang2_3tie2_3 + + # tetramer + # 10 + Ang2_4(tie2bs,tie2bs,tie2bs,tie2bs) + \ + Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs,ang1bs) <-> \ + Ang2_4(tie2bs!1,tie2bs,tie2bs,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs) konang2_4tie2_1,koffang2_4tie2_1 + + # 11 + Ang2_4(tie2bs!1,tie2bs,tie2bs,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs) + Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs,ang1bs) <-> \ + Ang2_4(tie2bs!1,tie2bs!2,tie2bs,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!2,ang1bs) konang2_4tie2_2,koffang2_4tie2_2 + + # 12 + Ang2_4(tie2bs!1,tie2bs!2,tie2bs,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!2,ang1bs) + \ + Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs,ang1bs) <-> \ + Ang2_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!2,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!3,ang1bs) konang2_4tie2_3,koffang2_4tie2_3 + + # 13 + Ang2_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!2,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!3,ang1bs) + \ + Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs,ang1bs) <-> \ + Ang2_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!2,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!3,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!4,ang1bs) konang2_4tie2_4,koffang2_4tie2_4 +end reaction rules + +# Tie2 Activation: Rules 14-15 +begin reaction rules + # 14 + Ang1_4(tie2bs!1,tie2bs!+,tie2bs!+,tie2bs!+).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!1,ang2bs) <-> \ + Ang1_4(tie2bs!1,tie2bs!+,tie2bs!+,tie2bs!+).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang1bs!1,ang2bs) kpang1tie2,kdpang1tie2 + + # 15 + Ang2_4(tie2bs!1,tie2bs!+,tie2bs!+,tie2bs!+).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs,ang2bs!1) <-> \ + Ang2_4(tie2bs!1,tie2bs!+,tie2bs!+,tie2bs!+).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang1bs,ang2bs!1) kpang2tie2,kdpang2tie2 +end reaction rules + +# Tie1/Tie2 Junctional Localization and Interactions: Rules 16-22 +begin reaction rules + #16 + Ang1_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang1bs!1,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang1bs!2,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang1bs!3,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang1bs!4,ang2bs) <-> \ + Ang1_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang1bs!1,ang2bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang1bs!2,ang2bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang1bs!3,ang2bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang1bs!4,ang2bs) ksjang1tie2,kjsang1tie2 + + # 17 + Ang2_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang2bs!2,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang2bs!3,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang2bs!4,ang1bs) <-> \ + Ang2_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang2bs!1,ang1bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang2bs!2,ang1bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang2bs!3,ang1bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang2bs!4,ang1bs) ksjang2tie2,kjsang2tie2 + + # 18 + Tie1(pY~dp,tie2bs,loc~s) <-> Tie1(pY~dp,tie2bs,loc~j) ksjtie1,kjstie1 + + # Tie1 Tie2 Binding at Junction + # 19 + Ang1_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang1bs!1,ang2bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang1bs!2,ang2bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang1bs!3,ang2bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang1bs!4,ang2bs) \ + + Tie1(pY~dp,tie2bs,loc~j) <-> \ + Ang1_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs!5,loc~j,veptpbs,pY~p,ang1bs!1,ang2bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang1bs!2,ang2bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang1bs!3,ang2bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang1bs!4,ang2bs).Tie1(pY~dp,tie2bs!5,loc~j) konang1tie1tie2_4_j, koffang1tie1tie2_4_j + + # 20 + Ang2_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang2bs!1,ang1bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang2bs!2,ang1bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang2bs!3,ang1bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang2bs!4,ang1bs) \ + + Tie1(pY~dp,tie2bs,loc~j) <-> \ + Ang2_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs!5,loc~j,veptpbs,pY~p,ang2bs!1,ang1bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang2bs!2,ang1bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang2bs!3,ang1bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang2bs!4,ang1bs).Tie1(pY~dp,tie2bs!5,loc~j) konang2tie1tie2_4_j, koffang2tie1tie2_4_j + + + # Tie1 Tie2 Cross Phosphorylation at Junction + # 21 + Ang1_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs!5,loc~j,veptpbs,pY~p,ang1bs!1,ang2bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang1bs!2,ang2bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang1bs!3,ang2bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang1bs!4,ang2bs).Tie1(pY~dp,tie2bs!5,loc~j) <-> \ + Ang1_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs!5,loc~j,veptpbs,pY~p,ang1bs!1,ang2bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang1bs!2,ang2bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang1bs!3,ang2bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang1bs!4,ang2bs).Tie1(pY~p,tie2bs!5,loc~j) kptie1ang1_j, kdpatie1ang1_j + # 22 + Ang2_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs!5,loc~j,veptpbs,pY~p,ang2bs!1,ang1bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang2bs!2,ang1bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang2bs!3,ang1bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang2bs!4,ang1bs).Tie1(pY~dp,tie2bs!5,loc~j) <-> \ + Ang2_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs!5,loc~j,veptpbs,pY~p,ang2bs!1,ang1bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang2bs!2,ang1bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang2bs!3,ang1bs).Tie2(tie1bs,loc~j,veptpbs,pY~p,ang2bs!4,ang1bs).Tie1(pY~p,tie2bs!5,loc~j) kptie1ang2_j, kdpatie1ang2_j +end reaction rules + +# VEPTP Dephosphorylation: Rules 23-25 +begin reaction rules + # Tie2 Dephosphorylation (by VE-PTP) + # 23 + Tie2(tie1bs,loc~j,veptpbs,pY~p) + VEPTP(tie2bs) <-> \ + Tie2(tie1bs,loc~j,veptpbs!1,pY~p).VEPTP(tie2bs!1) konveptp,koffveptp + + # 24 + Tie2(tie1bs,loc~j,veptpbs!1,ang1bs!+,ang2bs,pY~p).VEPTP(tie2bs!1) -> \ + Tie2(tie1bs,loc~j,veptpbs,ang1bs!+,ang2bs,pY~dp) + VEPTP(tie2bs) kactveptp_ang1 + + # 25 + Tie2(tie1bs,loc~j,veptpbs!1,ang2bs!+,ang1bs,pY~p).VEPTP(tie2bs!1) -> \ + Tie2(tie1bs,loc~j,veptpbs,ang2bs!+,ang1bs,pY~dp) + VEPTP(tie2bs) kactveptp_ang2 +end reaction rules + +# Internalization, Recycling, Turnover, Synthesis: Rules 26-50 +begin reaction rules + # Ang1 + # 26 + Ang1_4(tie2bs!1,tie2bs,tie2bs,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!1,ang2bs) -> \ + Ang1_4(tie2bs,tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang1bs,ang2bs) kintang1tie2_1 + + # 27 + Ang1_4(tie2bs!1,tie2bs!2,tie2bs,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!1,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!2,ang2bs) -> \ + Ang1_4(tie2bs,tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang1bs,ang2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang1bs,ang2bs) kintang1tie2_2 + + # 28 + Ang1_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!1,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!2,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!3,ang2bs) -> \ + Ang1_4(tie2bs,tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang1bs,ang2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang1bs,ang2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang1bs,ang2bs) kintang1tie2_3 + + # 29 + Ang1_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!1,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!2,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!3,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!4,ang2bs) -> \ + Ang1_4(tie2bs,tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang1bs,ang2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang1bs,ang2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang1bs,ang2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang1bs,ang2bs) kintang1tie2_4 + + # 30 + Ang1_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang1bs!1,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!2,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!3,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!4,ang2bs) -> \ + Ang1_4(tie2bs,tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang1bs,ang2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang1bs,ang2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang1bs,ang2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang1bs,ang2bs) kintang1p1tie2_4 + + # 31 + Ang1_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang1bs!1,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang1bs!2,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!3,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!4,ang2bs) -> \ + Ang1_4(tie2bs,tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang1bs,ang2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang1bs,ang2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang1bs,ang2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang1bs,ang2bs) kintang1p2tie2_4 + + # 32 + Ang1_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang1bs!1,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang1bs!2,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang1bs!3,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!4,ang2bs) -> \ + Ang1_4(tie2bs,tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang1bs,ang2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang1bs,ang2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang1bs,ang2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang1bs,ang2bs) kintang1p3tie2_4 + + # 33 + Ang1_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang1bs!1,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang1bs!2,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang1bs!3,ang2bs).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang1bs!4,ang2bs) -> \ + Ang1_4(tie2bs,tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang1bs,ang2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang1bs,ang2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang1bs,ang2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang1bs,ang2bs) kintang1p4tie2_4 + + # Ang2_2 + # 34 + Ang2_2(tie2bs!1,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs) -> \ + Ang2_2(tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) kintang2_2tie2_1 + + # 35 + Ang2_3(tie2bs!1,tie2bs!2).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!2,ang1bs) -> \ + Ang2_2(tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) kintang2_2tie2_2 + + # Ang2_3 + # 36 + Ang2_3(tie2bs!1,tie2bs,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs) -> \ + Ang2_3(tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) kintang2_3tie2_1 + + # 37 + Ang2_3(tie2bs!1,tie2bs!2,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!2,ang1bs) -> \ + Ang2_3(tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) kintang2_3tie2_2 + + # 38 + Ang2_3(tie2bs!1,tie2bs!2,tie2bs!3).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!2,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!3,ang1bs) -> \ + Ang2_3(tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) kintang2_3tie2_3 + + # Ang2_4 + # 39 + Ang2_4(tie2bs!1,tie2bs,tie2bs,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs) -> \ + Ang2_4(tie2bs,tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) kintang2_4tie2_1 + + # 40 + Ang2_4(tie2bs!1,tie2bs!2,tie2bs,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!2,ang1bs) -> \ + Ang2_4(tie2bs,tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) kintang2_4tie2_2 + + # 41 + Ang2_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!2,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!3,ang1bs) -> \ + Ang2_4(tie2bs,tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) kintang2_4tie2_3 + + # 42 + Ang2_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!2,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!3,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!4,ang1bs) -> \ + Ang2_4(tie2bs,tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) kintang2_4tie2_4 + + # 43 + Ang2_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!2,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!3,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!4,ang1bs) -> \ + Ang2_4(tie2bs,tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) kintang2_4p1tie2_4 + + # 44 + Ang2_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang2bs!2,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!3,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!4,ang1bs) -> \ + Ang2_4(tie2bs,tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) kintang2_4p2tie2_4 + + # 45 + Ang2_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang2bs!2,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang2bs!3,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang2bs!4,ang1bs) -> \ + Ang2_4(tie2bs,tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang2bs,ang1bs) kintang2_4p3tie2_4 + + # 46 + Ang2_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang2bs!1,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang2bs!2,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang2bs!3,ang1bs).Tie2(tie1bs,loc~s,veptpbs,pY~p,ang2bs!4,ang1bs) -> \ + Ang2_4(tie2bs,tie2bs,tie2bs,tie2bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang2bs,ang1bs) + Tie2(tie1bs,loc~i,veptpbs,pY~p,ang2bs,ang1bs) kintang2_4p4tie2_4 + + # Recycling of Internalized Tie2 + # 47 + Tie2(tie1bs,loc~i,veptpbs,pY~dp,ang1bs,ang2bs) -> Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs,ang2bs) krectie2 + + # Degradation and Synthesis + # 48 + Tie2(loc~i,pY~p) -> Trash() kdegptie2 + + # 49 + I() -> I() + Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs,ang2bs) ksyntie2 + + # 50 + I() -> I() + Tie1(pY~dp,tie2bs,loc~s) ksyntie1 +end reaction rules + +# Soluble Tie2 Binding: Rules 51-63 +begin reaction rules + # Ang1 Binding + # 51 + Ang1_4(tie2bs,tie2bs,tie2bs,tie2bs) + \ + Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs,ang2bs) <-> \ + Ang1_4(tie2bs!1,tie2bs,tie2bs,tie2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs!1,ang2bs) konang1tie2_1,koffang1tie2_1 + + # 52 + Ang1_4(tie2bs!1,tie2bs,tie2bs,tie2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs!1,ang2bs) + Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs,ang2bs) <-> \ + Ang1_4(tie2bs!1,tie2bs!2,tie2bs,tie2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs!1,ang2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs!2,ang2bs) konang1tie2_2,koffang1tie2_2 + + # 53 + Ang1_4(tie2bs!1,tie2bs!2,tie2bs,tie2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs!1,ang2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs!2,ang2bs) + \ + Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs,ang2bs) <-> \ + Ang1_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs!1,ang2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs!2,ang2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs!3,ang2bs) konang1tie2_3,koffang1tie2_3 + + # 54 + Ang1_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs!1,ang2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs!2,ang2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs!3,ang2bs) + \ + Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs,ang2bs) <-> \ + Ang1_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs!1,ang2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs!2,ang2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs!3,ang2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang1bs!4,ang2bs) konang1tie2_4,koffang1tie2_4 + + # Ang2 Binding + # dimer + # 55 + Ang2_2(tie2bs,tie2bs) + \ + Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs,ang1bs) <-> \ + Ang2_2(tie2bs!1,tie2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!1,ang1bs) konang2_2tie2_1,koffang2_2tie2_1 + + # 56 + Ang2_2(tie2bs!1,tie2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!1,ang1bs) + \ + Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs,ang1bs) <-> \ + Ang2_2(tie2bs!1,tie2bs!2).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!2,ang1bs) konang2_2tie2_2,koffang2_2tie2_2 + + # trimer + # 57 + Ang2_3(tie2bs,tie2bs,tie2bs) + \ + Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs,ang1bs) <-> \ + Ang2_3(tie2bs!1,tie2bs,tie2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!1,ang1bs) konang2_3tie2_1,koffang2_3tie2_1 + + # 58 + Ang2_3(tie2bs!1,tie2bs,tie2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!1,ang1bs) + \ + Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs,ang1bs) <-> \ + Ang2_3(tie2bs!1,tie2bs!2,tie2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!2,ang1bs) konang2_3tie2_2,koffang2_3tie2_2 + + # 59 + Ang2_3(tie2bs!1,tie2bs!2,tie2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!2,ang1bs) + \ + Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs,ang1bs) <-> \ + Ang2_3(tie2bs!1,tie2bs!2,tie2bs!3).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!2,ang1bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!3,ang1bs) konang2_3tie2_3,koffang2_3tie2_3 + + # tetramer + # 60 + Ang2_4(tie2bs,tie2bs,tie2bs,tie2bs) + \ + Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs,ang1bs) <-> \ + Ang2_4(tie2bs!1,tie2bs,tie2bs,tie2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!1,ang1bs) konang2_4tie2_1,koffang2_4tie2_1 + + # 61 + Ang2_4(tie2bs!1,tie2bs,tie2bs,tie2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!1,ang1bs) + Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs,ang1bs) <-> \ + Ang2_4(tie2bs!1,tie2bs!2,tie2bs,tie2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!2,ang1bs) konang2_4tie2_2,koffang2_4tie2_2 + + #62 + Ang2_4(tie2bs!1,tie2bs!2,tie2bs,tie2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!2,ang1bs) + \ + Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs,ang1bs) <-> \ + Ang2_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!2,ang1bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!3,ang1bs) konang2_4tie2_3,koffang2_4tie2_3 + + # 63 + Ang2_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!2,ang1bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!3,ang1bs) + \ + Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs,ang1bs) <-> \ + Ang2_4(tie2bs!1,tie2bs!2,tie2bs!3,tie2bs!4).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!1,ang1bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!2,ang1bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!3,ang1bs).Tie2(tie1bs,loc~sol,veptpbs,pY~dp,ang2bs!4,ang1bs) konang2_4tie2_4,koffang2_4tie2_4 +end reaction rules + +# Tie1:Tie2 Heterodimers: Rules 64-69 +begin reaction rules + # Heterodimerization + # 64 + Tie1(pY~dp,loc~s,tie2bs) + Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs,ang2bs) <-> Tie1(pY~dp,loc~s,tie2bs!1).Tie2(tie1bs!1,loc~s,veptpbs,pY~dp,ang1bs,ang2bs) kontie1tie2, kofftie1tie2 + + # Ang1 binding to Tie1:Tie2 + # 65 + Tie1(pY~dp,loc~s,tie2bs!1).Tie2(tie1bs!1,loc~s,veptpbs,pY~dp,ang1bs,ang2bs) + \ + Ang1_4(tie2bs,tie2bs,tie2bs,tie2bs) <-> \ + Tie1(pY~dp,loc~s,tie2bs!1).Tie2(tie1bs!1,loc~s,veptpbs,pY~dp,ang1bs!2,ang2bs).Ang1_4(tie2bs!2,tie2bs,tie2bs,tie2bs) konang1_4tie1tie2, koffang1_4tie1tie2 + + # 66 + Tie1(pY~dp,loc~s,tie2bs!1).Tie2(tie1bs!1,loc~s,veptpbs,pY~dp,ang1bs!2,ang2bs).Ang1_4(tie2bs!2,tie2bs,tie2bs,tie2bs) -> \ + Tie1(pY~dp,loc~s,tie2bs) + Tie2(tie1bs,loc~s,veptpbs,pY~dp,ang1bs!2,ang2bs).Ang1_4(tie2bs!2,tie2bs,tie2bs,tie2bs) kdissang1tie1tie2 + + # Ang2 binding to Tie1:Tie2 + # 67 + Tie1(pY~dp,loc~s,tie2bs!1).Tie2(tie1bs!1,loc~s,veptpbs,pY~dp,ang1bs,ang2bs) + \ + Ang2_2(tie2bs,tie2bs) <-> \ + Tie1(pY~dp,loc~s,tie2bs!1).Tie2(tie1bs!1,loc~s,veptpbs,pY~dp,ang1bs,ang2bs!2).Ang2_2(tie2bs!2,tie2bs) konang2_2tie1tie2, koffang2_2tie1tie2 + + # 68 + Tie1(pY~dp,loc~s,tie2bs!1).Tie2(tie1bs!1,loc~s,veptpbs,pY~dp,ang1bs,ang2bs) + \ + Ang2_3(tie2bs,tie2bs,tie2bs) <-> \ + Tie1(pY~dp,loc~s,tie2bs!1).Tie2(tie1bs!1,loc~s,veptpbs,pY~dp,ang1bs,ang2bs!2).Ang2_3(tie2bs!2,tie2bs,tie2bs) konang2_3tie1tie2, koffang2_3tie1tie2 + + # 69 + Tie1(pY~dp,loc~s,tie2bs!1).Tie2(tie1bs!1,loc~s,veptpbs,pY~dp,ang1bs,ang2bs) + \ + Ang2_4(tie2bs,tie2bs,tie2bs,tie2bs) <-> \ + Tie1(pY~dp,loc~s,tie2bs!1).Tie2(tie1bs!1,loc~s,veptpbs,pY~dp,ang1bs,ang2bs!2).Ang2_4(tie2bs!2,tie2bs,tie2bs,tie2bs) konang2_4tie1tie2, koffang2_4tie1tie2 +end reaction rules + +# Receptor Cleavage and Clearance: Rules 70-73 +begin reaction rules + # Tie1 and Tie2 Cleavage and Degradation + # 70 + Tie2(tie1bs,loc~s,veptpbs,ang1bs,ang2bs) -> Tie2(tie1bs,loc~sol,veptpbs,ang1bs,ang2bs) kcleavetie2 + + # 71 + Tie1(pY~dp,tie2bs,loc~s) -> Tie1(pY~dp,tie2bs,loc~sol) kcleavetie1 + + # 72 + Tie2(tie1bs,loc~sol,veptpbs,ang1bs,ang2bs) -> Trash() kdegsTie2 + + # 73 + Tie1(pY~dp,tie2bs,loc~sol) -> Trash() kdegstie1 +end reaction rules + +# Downstream Signaling - Akt: Rules 74-84 +begin reaction rules + # PI3K, Akt + # 74, 75 + PI3K(state~inactive) + Tie2(loc~j,pY~p) -> PI3K(state~active) + Tie2(loc~j,pY~p) kactPI3KTie2 + PI3K(state~active) -> PI3K(state~inactive) kinactPI3KTie2 + + # 76 + PI(PIsite~3P) -> Trash() kPIP2gen + + # 77 + PI3K(state~active) + PI(PIsite~3P) -> PI3K(state~active) + PI(PIsite~4P) kcatPI3KPIP2/(kmPIP2PI3K+freepip2) + + # 78 + PTEN(PIP3docking) + PI(PIsite~4P) -> PTEN(PIP3docking) + PI(PIsite~3P) kcatPTENPIP3/(kmPIP3PTEN+freepip3) + + # 79 + PDK1(PHpdk1) + PI(PIsite~4P) <-> PDK1(PHpdk1!1).PI(PIsite~4P!1) konPDK1PIP3,koffPDK1PIP3 + + # 80 + Akt(PHakt) + PI(PIsite~4P) <-> Akt(PHakt!1).PI(PIsite~4P!1) konAKTPIP3,koffAKTPIP3 + + # 81 + Akt(PHakt!+,S473~S) -> Akt(PHakt!+,S473~pS) kpmTORAKT + + # 82 + Akt(PHakt!+,S473~pS,T308~S) + PDK1(PHpdk1!+) -> \ + PDK1(PHpdk1!+) + Akt(PHakt!+,S473~pS,T308~pS) kpAKTPDK1 + + # 83, 84 + Akt(S473~pS) -> Akt(S473~S) kdp473AKTPPase + Akt(T308~pS) -> Akt(T308~S) kdp308AKTPPase +end reaction rules + +# Downstream Signaling - RhoA, mDia: Rules 85-94 +begin reaction rules + # 85,86 + RhoA(G~GDP,mDiabs) + Tie2(loc~j,pY~p) -> RhoA(G~GTP,mDiabs) + Tie2(loc~j,pY~p) kprhoa + RhoA(G~GTP,mDiabs) -> RhoA(G~GDP,mDiabs) kdprhoa + + # 87,88 + RhoA(G~GTP,mDiabs) + mDia(RhoAbs,srcbs) <-> RhoA(G~GTP,mDiabs!1).mDia(RhoAbs!1,srcbs) konrhoamdia,koffrhoamdia + Src(mDiabs,Y1~Y) + RhoA(G~GTP,mDiabs!1).mDia(RhoAbs!1,srcbs) <-> Src(mDiabs!2,Y1~Y).RhoA(G~GTP,mDiabs!1).mDia(RhoAbs!1,srcbs!2) konmdiasrc,koffmdiasrc + + # 89 + Src(mDiabs,Y1~Y) <-> Src(mDiabs,Y1~pY) kpsrc, kdpsrc + + # 90,91,92 + VECadherin(S665~S,c~j) + Src(mDiabs,Y1~pY) <-> VECadherin(S665~pS,c~j) + Src(mDiabs,Y1~pY) kpvecad, kdpvecad + VECadherin(S665~pS,c~j) <-> VECadherin(S665~pS,c~i) kintvecad,krecvecad + VECadherin(S665~pS,c~i) -> Trash() kdegvecad + + # 93,94 + ABIN2(state~inactive) + Tie2(loc~j,pY~p) -> ABIN2(state~active) + Tie2(loc~j,pY~p) kactabin2 + ABIN2(state~active) -> ABIN2(state~inactive) kinactabin2 +end reaction rules + +end model + +## actions ## +generate_network({overwrite=>1}) +writeSBML({}) \ No newline at end of file diff --git a/Published/Zhang2021/metadata.yaml b/Published/Zhang2021/metadata.yaml new file mode 100644 index 00000000..3022a5da --- /dev/null +++ b/Published/Zhang2021/metadata.yaml @@ -0,0 +1,22 @@ +id: "Zhang_2021" +name: "Zhang 2021" +description: "CAR-T signaling" +tags: ["published", "zhang", "2021", "tie2", "tie1", "ang1_4", "ang2_2", "ang2_3", "ang2_4", "veptp", "pten"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/complex-models/Zhang_2021.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/Zhang2023/README.md b/Published/Zhang2023/README.md new file mode 100644 index 00000000..dd4f9222 --- /dev/null +++ b/Published/Zhang2023/README.md @@ -0,0 +1,21 @@ +# Zhang 2023 + +VEGF signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- Zhang_2023.bngl + +## Tags + +published, zhang, 2023, vegf, vegfr2, vegfr1, nrp1, pi, plcgamma, dag, ip3_cyto diff --git a/Published/Zhang2023/Zhang_2023.bngl b/Published/Zhang2023/Zhang_2023.bngl new file mode 100644 index 00000000..578965ac --- /dev/null +++ b/Published/Zhang2023/Zhang_2023.bngl @@ -0,0 +1,885 @@ +begin model + +begin parameters + Volcyto 9.12E-13 + VolER 3.35E-13 + fextmolar 1.205E+15 + cellarea 1400 + VEGF165a_0 0.0012 + VEGFR2_0 4.29E+00 + VEGFR1_0 1.43 + NRP1_0 2.86E+01 + TSP1_0 0.00E+00 + Calcium_0 0.05 + CaM_0 1 + eNOS_0 0.1 + kvron 10.3 + kvroff 2.36E-01 + kcVR 0.0045 + kcRR 1.11 + kdRR 0.78 + kvr1on 22 + kvr1off 0.026 + kdeltaRR 2.5 + kdeltaVR 2.05 + kpr2 30 + kdps 640 + kdpi 0.72 + kdpr 1.00E+01 + kcd47free_on 100 + kr2si 0.031 + kr2rs 17.18 + kr2NRP1si 0.0014 + kr2NRP1i2r 48 + kVEGFNRP1on 2.48 + kVEGFNRP1off 0.0008 + kNRP1VEGFR2on 0.15 + kNRP1VEGFR2off 0.045 + kNRP1VEGFR1on 5.07 + kNRP1VEGFR1off 0.016 + kVEGFR2NRP1on 0.0022 + kVEGFR2NRP1off 0.014 + kVEGFR1NRP1on 0.004 + kVEGFR1NRP1off 0.1 + PI3K_0 0.1 + PIP2_0 10 + kPIP2gen 0.000048 + kmPIP2PI3K 309.9 + kcatPI3KPIP2 1764.48 + PTEN_0 0.1 + kmPIP3PTEN 6.27 + kcatPTENPIP3 4767.44 + konPDK1PIP3 5828.07 + koffPDK1PIP3 0.64 + konAKTPIP3 12.48 + koffAKTPIP3 0.032 + AKT_0 0.1 + PDK1_0 0.1 + kpAKTPDK1 2 + mTOR_0 0.1 + kpmTORAKT 2 + kdp473AKTPPase 0.1 + kdp308AKTPPase 0.038 + kpPLCgamma 0.045 + kdpPLCgamma 0.014 + PLCgamma_0 0.2 + kmPIP2PLCgamma 4.34 + nDAG 2.6 + kcatPLCgammaDAG 0.1 + kdeg_ip3 0.47 + kdeg_DAG 0.11 + CaER_0 2.00E+03 + Iip3Ramp 1.31E+05 + KmIP3R 1.6 + I_PMCAbar 2.02 + KmPMCA 0.26 + vSERCA 0.39 + KleakER 1.00E-08 + KmSERCA 0.15 + KiCa 1 + KBon 100 + KBoff 300 + CaF_0 118 + CaFbound_0 2 + koffCaNCaM1 500 + kdCaNCaM 24 + koffCaCCaM1 10 + kdCaCCaM 3.1 + CSQN_total 15000 + KCSQN 800 + kdegi0 2.02E-03 + kdegr2NRP1i0 7.91E-03 + kdegi0noP 2.85E+00 + kdegr2NRP1i0noP 2.22E-04 + kr2ii2 4.30E-03 + kr2NRP1ii2 4.80E+00 + kr2i2i 3.23E-02 + kr2NRP1i2i 1.00E-03 + kdegi20 2.43E+02 + kdegr2NRP1i20 3.76E-02 + kdegi20noP 4.16E-01 + kdegr2NRP1i20noP 7.56E+02 + ksingleR2syn 1.40E-04 + ksingleR2deg 5.88E-04 + ksingleR2si 7.56E-04 + ksingleR2is 8.66E-04 + ICracamp 5.86E+03 + Kcrac 169 + Istim0 0.18 + tau_stim 4 + ncrac 4.2 + Src_0 0.1 + Axl_0 7.14 + kpSrc 0.61 + kdpSrc 136.5 + kpSrcAxl 3.92 + kpAxlauto 0.12 + kdpautoAxl 1291.1 + kdpSrcAxl 1.79E-03 + konPI3KAxl 55.91688952 + koffPI3KAxl 0.6 + kDCD47TSP1 1.00E-05 + koffCD47TSP1 0.001 + CD47free_0 7.14E+00 + kdpeNOS 5.17E-02 + konCaMeNOS 9.80E+02 + koffCaMeNOS 9.73E+00 + koffeNOScav1 6.875 + koncaveNOS 81.9375 + kcateNOSAKT 1000 + kr2CD47off 1.00E+00 + f_TSP1deg 1.00E+00 + fTSP1dp 1.00E+00 + fTSP1i2r 1.00E+00 + PKC_0 0.1 + konCaPKC 0.3 + koffCaPKC 0.01 + konDAGPKC 0.029957319 + koffDAGPKC 0.124096212 + kon1CaCIB1 0.052631579 + koff1CaCIB1 0.1 + kon2CaCIB1 0.185185185 + koff2CaCIB1 0.1 + CIB1_0 0.5 + konCIB1SphK1 17.6028519 + koffCIB1SphK1 4.403956392 + SphK_0 0.1 + Sph_0 10 + S1P_0 0 + kcatERK 7.882741692 + kmERKSK1 1.198236617 + ktSK1 1 + koffSK1 1.04E-01 + ktoffSK1 6.97E-04 + kcatPKC 10.20798409 + kmPKCRaf 0.313875333 + RasGTP_0 0 + RasGDP_0 0.1 + Raf_0 0.355471965 + MEK12_0 0.288919159 + ERK12_0 0.382329627 + kdpSK1 0.02182773 + kdpPKCRaf 0.720296112 + kSphgen 0.000048 + kcatSK1Sph 37.23820691 + KmSK1Sph 0.029430478 + kdpS1P 1.188017664 + kS1PRas 1.556423632 + KmS1PRas 5.899306591 + kRasGAP 2.941097467 + konRasRaf 13.10183719 + koffRasRaf 0.151878139 + kpRaf 1.67558904 + kdpRaf 0.894826206 + kpMEK12Raf1 1.801786102 + kpMEK12Raf2 1.204676328 + KmMEK12Raf 0.807388937 + kdpMEK12_1 0.111827134 + kdpMEK12_2 0.139705453 + kpMEK12ERK12_1 12.14930177 + kmMEKERK12 0.25546079 + kpMEK12ERK12_2 0.516270813 + kdpERK12_1 6.06E+00 + kdpERK12_2 1.053392443 + +end parameters + +begin molecule types + vegf(r,r,nrp1bd,c~s~i~i2~r) # vegf165a + vegfr2(l1,Y1175~Y~pY,CD47bd,dimer,c~s~i~i2~r) + vegfr1(l2,dimer,nrp1bd,c~s) + NRP1(vegfabd,c~s~i~i2~r) + PI(PIsite~3P~4P) + PLCgamma(Yplc~Y~pY) + DAG(pkcbd) + IP3_cyto(ip3rbd) + Calcium_cyto(bd) + Trash() + CaER(bd) + CaF(cabd) + CSQNF(cabd) + CaM(NCaM,NCaM,CCaM,CCaM,CaMtargetbd) + I() + Istim() + PTEN(PIP3docking) + TSADSrc(Y1~Y~pY) + Axl(Ysrc~Y~pY,Yaxl~Y~pY) + PI3K(state~active~inactive) + AKT(PHakt,T308~S~pS,S473~S~pS) + PDK1(PHpdk1,aktbd) + mTOR(aktbd) + CD47SIRPa(VEGFR2bd,TSP1bd,Y1~Y~pY,c~s~i~i2~r) + TSP1(CD47bd) + eNOS(CaMBD,S1177~S~pS,cav1BD) + caveolin1(eNOSbd) + PKC(CalciumBD,DAGBD) + CIB1(EF1,EF2,sk1bd,location~cytosol~membrane) + SphK(CIB1bd,Serk~S~pS) + Sph(skbd) + S1P(bd) + RasGDP(rafbd) + RasGTP(rafbd) + Raf(mekbd,rasbd,Y1Y2~Y~pY,Spkc~S~pS) + MEK12(bd,S1~S~pS,S2~S~pS) + ERK1(MEK12bd,S1~S~pS) + ERK2(MEK12bd,S2~S~pS) + +end molecule types + +begin seed species + vegf(r,r,nrp1bd,c~s) VEGF165a_0 + vegfr1(l2,dimer,nrp1bd,c~s) VEGFR1_0 + vegfr2(l1,Y1175~Y,CD47bd,dimer,c~s) VEGFR2_0 + NRP1(vegfabd,c~s) NRP1_0 + PI(PIsite~3P) PIP2_0 + PLCgamma(Yplc~Y) PLCgamma_0 + CaER(bd) CaER_0 + Calcium_cyto(bd) Calcium_0 + CaF(cabd) CaF_0 + Calcium_cyto(bd!1).CaF(cabd!1) CaFbound_0 + CaM(NCaM,NCaM,CCaM,CCaM,CaMtargetbd) CaM_0 + I() 1 + Istim() Istim0 + PTEN(PIP3docking) PTEN_0 + TSADSrc(Y1~Y) Src_0 + Axl(Ysrc~Y,Yaxl~Y) Axl_0 + PI3K(state~inactive) PI3K_0 + AKT(PHakt,T308~S,S473~S) AKT_0 + PDK1(PHpdk1,aktbd) PDK1_0 + mTOR(aktbd) mTOR_0 + TSP1(CD47bd) TSP1_0 + CD47SIRPa(VEGFR2bd,TSP1bd,Y1~Y,c~s) CD47free_0 + eNOS(CaMBD,S1177~S,cav1BD!1).caveolin1(eNOSbd!1) eNOS_0 + PKC(CalciumBD,DAGBD) PKC_0 + CIB1(EF1,EF2,sk1bd,location~cytosol) CIB1_0 + SphK(CIB1bd,Serk~S) SphK_0 + Sph(skbd) Sph_0 + S1P(bd) S1P_0 + RasGDP(rafbd) RasGDP_0 + RasGTP(rafbd) RasGTP_0 + Raf(mekbd,rasbd,Y1Y2~Y,Spkc~S) Raf_0 + MEK12(bd,S1~S,S2~S) MEK12_0 + ERK1(MEK12bd,S1~S) ERK12_0 + ERK2(MEK12bd,S2~S) ERK12_0 +end seed species + +begin observables + Molecules vegffrees vegf(r,r,nrp1bd,c~s) + Molecules VEGFR2total vegfr2() + Molecules tsp1frees TSP1(CD47bd) + Molecules cd47tsp1s TSP1(CD47bd!1).CD47SIRPa(TSP1bd!1,Y1~Y,c~s) + Molecules cd47s CD47SIRPa(TSP1bd,Y1~Y,c~s) + Molecules VEGFR2tots vegfr2(c~s) + Molecules VEGFR2toti vegfr2(c~i) + + Molecules vr2s vegfr2(l1,c~s) + Molecules vr2i vegfr2(l1,c~i) + Molecules vr1s vegfr1(l2,nrp1bd,c~s) + + Molecules vegfr2Y1175ps vegfr2(Y1175~pY!?,c~s) + Molecules vegfr2Y1175pi vegfr2(Y1175~pY!?,c~i) + Molecules pr2Y1175total vegfr2(Y1175~pY!?) + Molecules vegfr1tots vegfr1(c~s) + Molecules NRP1VEGFR2s vegf(r!1,r!2,nrp1bd!+,c~s).vegfr2(l1!1,c~s).vegfr2(l1!2,c~s) + Molecules NRP1VEGFR2i vegf(r!1,r!2,nrp1bd!+,c~i).vegfr2(l1!1,c~i).vegfr2(l1!2,c~i) + Molecules freeDAGs DAG(pkcbd!?) + Molecules activePLCgamma PLCgamma(Yplc~pY!?) + Molecules PIP2 PI(PIsite~3P) + Molecules PIP3 PI(PIsite~4P) + Molecules freeip3cyto IP3_cyto(ip3rbd) + Molecules Cac Calcium_cyto(bd) + Molecules Caer CaER(bd) + Molecules CaBuf_fer CaF(cabd!+) + Molecules activePKCs PKC(CalciumBD!+,DAGBD!1).DAG(pkcbd!1) + Molecules activePKCtot PKC(CalciumBD!+,DAGBD!+) + Molecules SphKpkc SphK(Serk~pS!?) + Molecules S1phosphate S1P(bd) + Molecules NRP1frees NRP1(vegfabd,c~s) + Molecules NRP1freei NRP1(vegfabd,c~i) + Molecules NRP1bounds NRP1(vegfabd!+,c~s) + Molecules NRP1boundi NRP1(vegfabd!+,c~i) + Molecules vr2dimers vegfr2(l1,dimer!1,c~s).vegfr2(l1,dimer!1,c~s) + Molecules vr2dimeri vegfr2(l1,dimer!1,c~i).vegfr2(l1,dimer!1,c~i) + Molecules NRP1totals NRP1(c~s) + Molecules NRP1totali NRP1(c~i) + Molecules singleNRP1totals NRP1(vegfabd,c~s) + Molecules singleNRP1totali NRP1(vegfabd,c~i) + Molecules vegfr2total vegf(r!1).vegfr2(l1!1) + Molecules vr2Y1175s vegfr2(Y1175~pY,c~s) + Molecules vr2Y1175i vegfr2(Y1175~pY,c~i) + Molecules plcgammafree PLCgamma(Yplc~Y) + Molecules rasgdpfree RasGDP(rafbd!?) + Molecules rasgtpfree RasGTP(rafbd!?) + Molecules activeRafbyrastot Raf(Y1Y2~pY!?) + Molecules phosphoMEK12tot MEK12(S1~pS!?,S2~pS!?) + Molecules phosphoERK1tot ERK1(S1~pS!?) + Molecules phosphoERK2tot ERK2(S2~pS!?) + Molecules SphK1 SphK(CIB1bd!+,Serk~S).CIB1(sk1bd!1,location~membrane) + Molecules SphK1mempS SphK(CIB1bd!+,Serk~pS).CIB1(sk1bd!1,location~membrane) + Molecules SphK1cytosol SphK(CIB1bd!+,Serk~S).CIB1(sk1bd!1,location~cytosol) + Molecules activeSphK1 SphK(Serk~pS!?) + Molecules freeSK1 SphK(CIB1bd,Serk~S) + Molecules freeSK1mem SphK(CIB1bd!1,Serk~S).CIB1(sk1bd!1,location~membrane) + Molecules freecib1 CIB1(EF1,EF2,sk1bd) + Molecules calciumcib1 CIB1(EF1!+,EF2!+,sk1bd) + Molecules sk1bcib1 CIB1(EF1!+,EF2!+,sk1bd!+) + Molecules nrp1s NRP1(vegfabd,c~s) + Molecules vegfnrp1s vegf(r,r,nrp1bd!1,c~s).NRP1(vegfabd!1,c~s) + Molecules vegfr1s vegf(r!1,r,nrp1bd,c~s).vegfr1(l2!1,c~s) + Molecules vegfr2s vegf(r!1,r,nrp1bd,c~s).vegfr2(l1!1,dimer,c~s) + Molecules freepip2 PI(PIsite~3P) + Molecules freesphingosin Sph(skbd) + Molecules freeraf Raf(Spkc~S) + Molecules activeRafPKC Raf(Spkc~pS!?) + Molecules activeRafPKCERK1 Raf(Spkc~pS!?,Y1Y2~pY!?) + Molecules activeRafPKCERK2 Raf(Spkc~pS!?,Y1Y2~Y!?) + Molecules activeRafPKCERK3 Raf(Spkc~S!?,Y1Y2~pY!?) + Molecules rafY1Y2pY Raf(Y1Y2~pY,Spkc~S) + Molecules rafY1Y2pYpS Raf(Y1Y2~pY,Spkc~pS) + Molecules rafpS Raf(Y1Y2~Y,Spkc~pS) + Molecules erk1s ERK1(S1~S) + Molecules mek12s MEK12(S1~S,S2~S) + Molecules R2singlei vegfr2(l1,Y1175~Y,dimer,c~i) + Molecules pERK1s ERK1(S1~pS) + Molecules mek12ps MEK12(S1~pS,S2~S) + Molecules pERK2s ERK2(S2~pS) + Molecules mek12ps1 MEK12(S1~pS) + Molecules mek12ps2 MEK12(S2~pS) + Molecules erk1ps ERK1(S1~pS) + Molecules erk2ps ERK2(S2~pS) + Molecules vr2r2py1175s vegfr2(Y1175~pY,c~s) + Molecules vr2r2py1175i vegfr2(Y1175~pY,c~i) + Species vr2py1175s vegf(r!1,r,c~s).vegfr2(l1!1,Y1175~pY,c~s) + Species vr2py1175i vegf(r!1,r,c~i).vegfr2(l1!1,Y1175~pY,c~i) + Molecules r2singlepy1175s vegfr2(l1,Y1175~pY,c~s) + Molecules r2singlepy1175i vegfr2(l1,Y1175~pY,c~i) + Molecules vr1r2pY1165s vegf(r!1,r!2,c~s).vegfr1(l2!1,c~s).vegfr2(l1!2,Y1175~pY,c~s) + Molecules pSK1 SphK(Serk~pS) + Molecules frees1p S1P(bd) + Molecules py1y2rafs Raf(Y1Y2~pY) + Molecules vegfnrp1i vegf(r,r,nrp1bd!1,c~i).NRP1(vegfabd!1,c~i) + Species vegfr2i vegf(r!1,r,nrp1bd,c~i).vegfr2(l1!1,c~i) + Molecules totalnrp1 NRP1(vegfabd) + Molecules pplcgamma PLCgamma(Yplc~pY) + Molecules phosphoERKpS1 ERK1(S1~pS!?) + Molecules phosphoERKpS2 ERK2(S2~pS!?) + Molecules phosphoMEKpS1 MEK12(S1~pS!?,S2~S) + Molecules phosphoMEKpS2 MEK12(S1~S,S2~pS!?) + Molecules freeSphK1 SphK(CIB1bd,Serk~S) + Molecules rafpkc Raf(Spkc~pS) + Molecules mek12s1 MEK12(S1~S) + Molecules mek12s2 MEK12(S2~S) + Molecules erk12s1 ERK1(S1~S) + Molecules erk12s2 ERK2(S2~S) + Molecules yplcgamma PLCgamma(Yplc~Y) + Molecules gtpfreeras RasGTP(rafbd) + Molecules bvegfr2 vegf(r!1,nrp1bd,c~s).vegfr2(l1!1,c~s) + Molecules bnrp1 vegf(nrp1bd!1,c~s).NRP1(vegfabd!1,c~s) + Molecules bvegfr1 vegf(r!1,nrp1bd,c~s).vegfr1(l2!1,c~s) + Molecules bvegfr1dimer vegf(r!1,r!2,c~s).vegfr1(l2!1,c~s).vegfr1(l2!2,c~s) + Molecules bvegfr2_2 vegf(r!1,c~s).vegfr2(l1!1,c~s) + Molecules bvegfr1_2 vegf(r!1,c~s).vegfr1(l2!1,c~s) + Molecules vegfbound_1 vegf(r!+,nrp1bd,c~s) + Species vegfbound_2 vegf(r,nrp1bd!+,c~s) + Molecules vegfbound_3 vegf(r!+,c~s) + Species vegfbound_4 vegf(r,r,nrp1bd!1,c~s).NRP1(vegfabd!1,c~s) + Molecules Iopenstim Istim() + Molecules nrp1r1s NRP1(vegfabd!1,c~s).vegfr1(nrp1bd!1,c~s) + Molecules CIB1mem CIB1(location~membrane) + Molecules freepip3 PI(PIsite~4P) + Molecules ps473akt AKT(S473~pS) + Molecules ps308akt AKT(T308~pS) + Molecules phosphoAxltotal Axl(Ysrc~pY!?,Yaxl~pY!?) + Molecules phosphoAxlpSrc Axl(Ysrc~pY!?) + Molecules phosphoAxlpauto Axl(Yaxl~pY!?) + Molecules activeSrc TSADSrc(Y1~pY!?) + Molecules phosphoeNOS eNOS(S1177~pS) + + Molecules ppAkt AKT(S473~pS,T308~pS) + +end observables + +begin reaction rules + # Ligand-independent coupling of the receptors + vegfr2(l1,dimer,c~s) + vegfr2(l1,dimer,c~s) <-> \ + vegfr2(l1,dimer!1,c~s).vegfr2(l1,dimer!1,c~s) kcRR,kdRR + + vegfr2(l1,dimer,c~s) + vegfr1(l2,dimer,c~s) <-> \ + vegfr2(l1,dimer!1,c~s).vegfr1(l2,dimer!1,c~s) kcRR,kdRR + + vegfr1(l2,dimer,c~s) + vegfr1(l2,dimer,c~s) <-> \ + vegfr1(l2,dimer!1,c~s).vegfr1(l2,dimer!1,c~s) kcRR,kdRR + + vegf(r!1,r!2,c~s).vegfr2(l1!1,dimer,c~s).vegfr2(l1!2,dimer,c~s) <-> \ + vegf(r!1,r!2,c~s).vegfr2(l1!1,dimer!3,c~s).vegfr2(l1!2,dimer!3,c~s) kdeltaRR,kdRR + + vegf(r!1,r!2,c~s).vegfr2(l1!1,dimer,c~s).vegfr1(l2!2,dimer,c~s) <-> \ + vegf(r!1,r!2,c~s).vegfr2(l1!1,dimer!3,c~s).vegfr1(l2!2,dimer!3,c~s) kdeltaRR,kdRR + + vegf(r!1,r!2,c~s).vegfr1(l2!1,dimer,c~s).vegfr1(l2!2,dimer,c~s) <-> \ + vegf(r!1,r!2,c~s).vegfr1(l2!1,dimer!3,c~s).vegfr1(l2!2,dimer!3,c~s) kdeltaRR,kdRR + + # VEGFR1 binding to NRP1 + + vegfr1(nrp1bd,c~s) + NRP1(vegfabd,c~s) <-> vegfr1(nrp1bd!1,c~s).NRP1(vegfabd!1,c~s) kNRP1VEGFR1on,kNRP1VEGFR1off + + #Binding of VEGF165a to NRP1 + I() -> I() + vegf(r,r,nrp1bd,c~s) -(kVEGFNRP1on*cellarea/fextmolar)*vegffrees*nrp1s+(kVEGFNRP1off*cellarea/fextmolar)*vegfnrp1s + vegf(r,r,nrp1bd,c~s) + NRP1(vegfabd,c~s) -> vegf(r,r,nrp1bd,c~s) + vegf(r,r,nrp1bd!1,c~s).NRP1(vegfabd!1,c~s) kVEGFNRP1on + vegf(r,r,nrp1bd!1,c~s).NRP1(vegfabd!1,c~s) -> NRP1(vegfabd,c~s) kVEGFNRP1off + + vegf(r,r,nrp1bd!+,c~s) + vegfr2(l1,dimer,c~s) <-> \ + vegf(r!2,r,nrp1bd!+,c~s).vegfr2(l1!2,dimer,c~s) kNRP1VEGFR2on,kNRP1VEGFR2off + vegf(r,r,nrp1bd!+,c~s) + vegfr2(l1,dimer!3,c~s).vegfr2(l1,dimer!3,c~s) <-> \ + vegf(r!2,r,nrp1bd!+,c~s).vegfr2(l1!2,dimer!3,c~s).vegfr2(l1,dimer!3,c~s) kNRP1VEGFR2on,kNRP1VEGFR2off + vegf(r,r,nrp1bd!+,c~s) + vegfr2(l1,dimer!3,c~s).vegfr1(l2,dimer!3,c~s) <-> \ + vegf(r!2,r,nrp1bd!+,c~s).vegfr2(l1!2,dimer!3,c~s).vegfr1(l2,dimer!3,c~s) kNRP1VEGFR2on,kNRP1VEGFR2off + + vegf(r,r,nrp1bd!+,c~s) + vegfr1(l2,dimer,c~s) <-> \ + vegf(r!2,r,nrp1bd!+,c~s).vegfr1(l2!2,dimer,c~s) kcVR,kvr1off + vegf(r,r,nrp1bd!+,c~s) + vegfr1(l2,dimer!3,c~s).vegfr1(l2,dimer!3,c~s) <-> \ + vegf(r!2,r,nrp1bd!+,c~s).vegfr1(l2!2,dimer!3,c~s).vegfr1(l2,dimer!3,c~s) kcVR,kvr1off + vegf(r,r,nrp1bd!+,c~s) + vegfr1(l2,dimer!3,c~s).vegfr2(l1,dimer!3,c~s) <-> \ + vegf(r!2,r,nrp1bd!+,c~s).vegfr1(l2!2,dimer!3,c~s).vegfr2(l1,dimer!3,c~s) kcVR,kvr1off + + + # Binding of VEGF165a to VEGFR2 receptors + + I() -> I() + vegf(r,r,nrp1bd,c~s) -(kvron*cellarea/fextmolar)*vegffrees*vr2s+(kvroff*cellarea/fextmolar)*vegfr2s + vegf(r,r,nrp1bd,c~s) + vegfr2(l1,c~s) -> \ + vegf(r,r,nrp1bd,c~s) + vegf(r!1,r,nrp1bd,c~s).vegfr2(l1!1,c~s) kvron + vegf(r!1,r,nrp1bd,c~s).vegfr2(l1!1,c~s) -> vegfr2(l1,c~s) kvroff + + vegf(r!1,r,nrp1bd,c~s).vegfr2(l1!1,dimer,c~s) + vegfr2(l1,dimer,c~s) <-> \ + vegf(r!1,r!2,nrp1bd,c~s).vegfr2(l1!1,dimer,c~s).vegfr2(l1!2,dimer,c~s) kcVR,kvroff + vegf(r!1,r,nrp1bd,c~s).vegfr2(l1!1,dimer,c~s) + vegfr1(l2,dimer,c~s) <-> \ + vegf(r!1,r!2,nrp1bd,c~s).vegfr2(l1!1,dimer,c~s).vegfr1(l2!2,dimer,c~s) kcVR,kvr1off + + vegf(r!1,r,nrp1bd,c~s).vegfr2(l1!1,dimer!3,c~s).vegfr2(l1,dimer!3,c~s) <-> \ + vegf(r!1,r!2,nrp1bd,c~s).vegfr2(l1!1,dimer!3,c~s).vegfr2(l1!2,dimer!3,c~s) kdeltaVR,kvroff + vegf(r!1,r,nrp1bd,c~s).vegfr2(l1!1,dimer!3,c~s).vegfr1(l2,dimer!3,c~s) <-> \ + vegf(r!1,r!2,nrp1bd,c~s).vegfr2(l1!1,dimer!3,c~s).vegfr1(l2!2,dimer!3,c~s) kdeltaVR,kvr1off + + vegf(r!1,r,nrp1bd,c~s).vegfr1(l2!1,dimer,c~s) + vegfr1(l2,dimer,c~s) <-> \ + vegf(r!1,r!2,nrp1bd,c~s).vegfr1(l2!1,dimer,c~s).vegfr1(l2!2,dimer,c~s) kcVR,kvr1off + vegf(r!1,r,nrp1bd,c~s).vegfr1(l2!1,dimer,c~s) + vegfr2(l1,dimer,c~s) <-> \ + vegf(r!1,r!2,nrp1bd,c~s).vegfr1(l2!1,dimer,c~s).vegfr2(l1!2,dimer,c~s) kcVR,kvroff + vegf(r!1,r,nrp1bd,c~s).vegfr1(l2!1,dimer!3,c~s).vegfr1(l2,dimer!3,c~s) <-> \ + vegf(r!1,r!2,nrp1bd,c~s).vegfr1(l2!1,dimer!3,c~s).vegfr1(l2!2,dimer!3,c~s) kdeltaVR,kvr1off + vegf(r!1,r,nrp1bd,c~s).vegfr1(l2!1,dimer!3,c~s).vegfr2(l1,dimer!3,c~s) <-> \ + vegf(r!1,r!2,nrp1bd,c~s).vegfr1(l2!1,dimer!3,c~s).vegfr2(l1!2,dimer!3,c~s) kdeltaVR,kvroff + + vegf(r!1,r,nrp1bd!+,c~s).vegfr2(l1!1,dimer,c~s) + vegfr2(l1,dimer,c~s) <-> \ + vegf(r!1,r!2,nrp1bd!+,c~s).vegfr2(l1!1,dimer,c~s).vegfr2(l1!2,dimer,c~s) kNRP1VEGFR2on,kNRP1VEGFR2off + vegf(r!1,r,nrp1bd!+,c~s).vegfr2(l1!1,dimer,c~s) + vegfr1(l2,dimer,c~s) <-> \ + vegf(r!1,r!2,nrp1bd!+,c~s).vegfr2(l1!1,dimer,c~s).vegfr1(l2!2,dimer,c~s) kcVR,kvr1off + + vegf(r!1,r,nrp1bd!+,c~s).vegfr2(l1!1,dimer!3,c~s).vegfr2(l1,dimer!3,c~s) <-> \ + vegf(r!1,r!2,nrp1bd!+,c~s).vegfr2(l1!1,dimer!3,c~s).vegfr2(l1!2,dimer!3,c~s) kdeltaVR,kvroff + vegf(r!1,r,nrp1bd!+,c~s).vegfr2(l1!1,dimer!3,c~s).vegfr1(l2,dimer!3,c~s) <-> \ + vegf(r!1,r!2,nrp1bd!+,c~s).vegfr2(l1!1,dimer!3,c~s).vegfr1(l2!2,dimer!3,c~s) kdeltaVR,kvr1off + vegf(r!1,r,nrp1bd!+,c~s).vegfr1(l2!1,dimer,c~s) + vegfr1(l2,dimer,c~s) <-> \ + vegf(r!1,r!2,nrp1bd!+,c~s).vegfr1(l2!1,dimer,c~s).vegfr1(l2!2,dimer,c~s) kcVR,kvr1off + + vegf(r!1,r,nrp1bd!+,c~s).vegfr1(l2!1,dimer,c~s) + vegfr2(l1,dimer,c~s) <-> \ + vegf(r!1,r!2,nrp1bd!+,c~s).vegfr1(l2!1,dimer,c~s).vegfr2(l1!2,dimer,c~s) kNRP1VEGFR2on,kNRP1VEGFR2off + vegf(r!1,r,nrp1bd!+,c~s).vegfr1(l2!1,dimer!3,c~s).vegfr1(l2,dimer!3,c~s) <-> \ + vegf(r!1,r!2,nrp1bd!+,c~s).vegfr1(l2!1,dimer!3,c~s).vegfr1(l2!2,dimer!3,c~s) kdeltaVR,kvr1off + vegf(r!1,r,nrp1bd!+,c~s).vegfr1(l2!1,dimer!3,c~s).vegfr2(l1,dimer!3,c~s) <-> \ + vegf(r!1,r!2,nrp1bd!+,c~s).vegfr1(l2!1,dimer!3,c~s).vegfr2(l1!2,dimer!3,c~s) kdeltaVR,kvroff + + vegf(r!1,r!2,nrp1bd,c~s).vegfr2(l1!1,dimer!3,c~s).vegfr2(l1!2,dimer!3,c~s) + NRP1(vegfabd,c~s) <-> \ + vegf(r!1,r!2,nrp1bd!4,c~s).vegfr2(l1!1,dimer!3,c~s).vegfr2(l1!2,dimer!3,c~s).NRP1(vegfabd!4,c~s) kVEGFR2NRP1on,kVEGFR2NRP1off + + vegf(r!1,r!2,nrp1bd,c~s).vegfr1(l2!1,dimer!3,c~s).vegfr1(l2!2,dimer!3,c~s) + NRP1(vegfabd,c~s) <-> \ + vegf(r!1,r!2,nrp1bd!4,c~s).vegfr1(l2!1,dimer!3,c~s).vegfr1(l2!2,dimer!3,c~s).NRP1(vegfabd!4,c~s) kVEGFR2NRP1on,kVEGFR2NRP1off + + vegf(r!1,r!2,nrp1bd,c~s).vegfr2(l1!1,dimer!3,c~s).vegfr1(l2!2,dimer!3,c~s) + NRP1(vegfabd,c~s) <-> \ + vegf(r!1,r!2,nrp1bd!4,c~s).vegfr2(l1!1,dimer!3,c~s).vegfr1(l2!2,dimer!3,c~s).NRP1(vegfabd!4,c~s) kVEGFR2NRP1on,kVEGFR2NRP1off + + vegf(r!1,r!2,nrp1bd,c~s).vegfr2(l1!1,dimer,c~s).vegfr2(l1!2,dimer,c~s) + NRP1(vegfabd,c~s) <-> \ + vegf(r!1,r!2,nrp1bd!4,c~s).vegfr2(l1!1,dimer,c~s).vegfr2(l1!2,dimer,c~s).NRP1(vegfabd!4,c~s) kVEGFR2NRP1on,kVEGFR2NRP1off + vegf(r!1,r,nrp1bd,c~s).vegfr2(l1!1,c~s) + NRP1(vegfabd,c~s) <-> vegf(r!1,r,nrp1bd!2,c~s).vegfr2(l1!1,c~s).NRP1(vegfabd!2,c~s) kVEGFR2NRP1on,kVEGFR2NRP1off + vegf(r!1,r,nrp1bd,c~s).vegfr1(l2!1,c~s) + NRP1(vegfabd,c~s) <-> vegf(r!1,r,nrp1bd!2,c~s).vegfr1(l2!1,c~s).NRP1(vegfabd!2,c~s) kVEGFR1NRP1on,kVEGFR1NRP1off + + ######################## + + + # vegf165a binding to vegfr1 + I() -> I() + vegf(r,r,nrp1bd,c~s) -kvr1on*cellarea/fextmolar*vegffrees*vr1s+kvr1off*vegfr1s*(cellarea/fextmolar) + vegf(r,r,nrp1bd,c~s) + vegfr1(l2,c~s) -> \ + vegf(r,r,nrp1bd,c~s) + vegf(r!1,r,nrp1bd,c~s).vegfr1(l2!1,c~s) kvr1on + vegf(r!1,r,nrp1bd,c~s).vegfr1(l2!1,c~s) -> vegfr1(l2,c~s) kvr1off + + vegf(r!1,r,c~s).vegfr1(l2!1,dimer,c~s) + vegfr1(l2,dimer,c~s) <-> \ + vegf(r!1,r!2,c~s).vegfr1(l2!1,dimer,c~s).vegfr1(l2!2,dimer,c~s) kcVR,kvr1off + vegf(r!1,r,c~s).vegfr1(l2!1,dimer,c~s) + vegfr2(l1,dimer,c~s) <-> \ + vegf(r!1,r!2,c~s).vegfr1(l2!1,dimer,c~s).vegfr2(l1!2,dimer,c~s) kcVR,kvroff + vegf(r!1,r,c~s).vegfr1(l2!1,dimer!3,c~s).vegfr1(l2,dimer!3,c~s) <-> \ + vegf(r!1,r!2,c~s).vegfr1(l2!1,dimer!3,c~s).vegfr1(l2!2,dimer!3,c~s) kdeltaVR,kvr1off + vegf(r!1,r,c~s).vegfr1(l2!1,dimer!3,c~s).vegfr2(l1,dimer!3,c~s) <-> \ + vegf(r!1,r!2,c~s).vegfr1(l2!1,dimer!3,c~s).vegfr2(l1!2,dimer!3,c~s) kdeltaVR,kvroff + + ################################# + + # Receptor phosphorylation + + vegf(r!1,r!2,c~s).vegfr2(l1!1,c~s).vegfr2(l1!2,Y1175~Y,c~s) -> \ + vegf(r!1,r!2,c~s).vegfr2(l1!1,c~s).vegfr2(l1!2,Y1175~pY,c~s) kpr2 + + vegf(r!1,r!2,c~i).vegfr2(l1!1,c~i).vegfr2(l1!2,Y1175~Y,c~i) -> \ + vegf(r!1,r!2,c~i).vegfr2(l1!1,c~i).vegfr2(l1!2,Y1175~pY,c~i) kpr2 + + vegf(r!1,r!2,c~i2).vegfr2(l1!1,c~i2).vegfr2(l1!2,Y1175~Y,c~i2) -> \ + vegf(r!1,r!2,c~i2).vegfr2(l1!1,c~i2).vegfr2(l1!2,Y1175~pY,c~i2) kpr2 + + vegf(r!1,r!2,c~r).vegfr2(l1!1,c~r).vegfr2(l1!2,Y1175~Y,c~r) -> \ + vegf(r!1,r!2,c~r).vegfr2(l1!1,c~r).vegfr2(l1!2,Y1175~pY,c~r) kpr2 + + # Dephosphorylation of VEGFR2 species + + vegfr2(Y1175~pY,CD47bd,c~s) -> vegfr2(Y1175~Y,CD47bd,c~s) kdps + vegfr2(Y1175~pY,CD47bd!3,c~s).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~s) -> vegfr2(Y1175~Y,CD47bd!3,c~s).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~s) kdps + vegfr2(Y1175~pY,CD47bd!3,c~s).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~s) -> vegfr2(Y1175~Y,CD47bd!3,c~s).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~s) kdps*fTSP1dp + + vegfr2(Y1175~pY,CD47bd,c~i) -> vegfr2(Y1175~Y,CD47bd,c~i) kdpi + vegfr2(Y1175~pY,CD47bd!3,c~i).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i) -> vegfr2(Y1175~Y,CD47bd!3,c~i).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i) kdpi + vegfr2(Y1175~pY,CD47bd!3,c~i).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i) -> vegfr2(Y1175~Y,CD47bd!3,c~i).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i) kdpi*fTSP1dp + + vegfr2(Y1175~pY,CD47bd,c~i2) -> vegfr2(Y1175~Y,CD47bd,c~i2) kdpi + vegfr2(Y1175~pY,CD47bd!3,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i2) -> vegfr2(Y1175~Y,CD47bd!3,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i2) kdpi + vegfr2(Y1175~pY,CD47bd!3,c~i2).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i2) -> vegfr2(Y1175~Y,CD47bd!3,c~i2).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i2) kdpi*fTSP1dp + + + vegfr2(Y1175~pY,c~r) -> vegfr2(Y1175~Y,c~r) kdpr + + + # Internalization s to i + + vegf(r!1,r!2,nrp1bd,c~s).vegfr2(l1!1,CD47bd,dimer,c~s).vegfr2(l1!2,CD47bd,dimer,c~s) -> \ + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,CD47bd,dimer,c~i).vegfr2(l1!2,CD47bd,dimer,c~i) kr2si + vegf(r!1,r!2,nrp1bd,c~s).vegfr2(l1!1,CD47bd,dimer!6,c~s).vegfr2(l1!2,CD47bd,dimer!6,c~s) -> \ + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,CD47bd,dimer!6,c~i).vegfr2(l1!2,CD47bd,dimer!6,c~i) kr2si + + vegf(r!1,r!2,nrp1bd,c~s).vegfr2(l1!1,CD47bd!3,dimer,c~s).CD47SIRPa(VEGFR2bd!3,c~s).vegfr2(l1!2,CD47bd,dimer,c~s) -> \ + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,CD47bd!3,dimer,c~i).CD47SIRPa(VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd,dimer,c~i) kr2si + vegf(r!1,r!2,nrp1bd,c~s).vegfr2(l1!1,CD47bd!3,dimer!6,c~s).CD47SIRPa(VEGFR2bd!3,c~s).vegfr2(l1!2,CD47bd,dimer!6,c~s) -> \ + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,CD47bd!3,dimer!6,c~i).CD47SIRPa(VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd,dimer!6,c~i) kr2si + + vegf(r!1,r!2,nrp1bd,c~s).vegfr2(l1!1,CD47bd!3,dimer,c~s).CD47SIRPa(VEGFR2bd!3,c~s).vegfr2(l1!2,CD47bd!4,dimer,c~s).CD47SIRPa(VEGFR2bd!4,c~s) -> \ + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,CD47bd!3,dimer,c~i).CD47SIRPa(VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd!4,dimer,c~i).CD47SIRPa(VEGFR2bd!4,c~i) kr2si + vegf(r!1,r!2,nrp1bd,c~s).vegfr2(l1!1,CD47bd!3,dimer!6,c~s).CD47SIRPa(VEGFR2bd!3,c~s).vegfr2(l1!2,CD47bd!4,dimer!6,c~s).CD47SIRPa(VEGFR2bd!4,c~s) -> \ + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,CD47bd!3,dimer!6,c~i).CD47SIRPa(VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd!4,dimer!6,c~i).CD47SIRPa(VEGFR2bd!4,c~i) kr2si + + vegf(r!1,r!2,nrp1bd!9,c~s).NRP1(vegfabd!9,c~s).vegfr2(l1!1,CD47bd,dimer,c~s).vegfr2(l1!2,CD47bd,dimer,c~s) -> \ + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,CD47bd,dimer,c~i).vegfr2(l1!2,CD47bd,dimer,c~i) kr2NRP1si + vegf(r!1,r!2,nrp1bd!9,c~s).NRP1(vegfabd!9,c~s).vegfr2(l1!1,CD47bd!3,dimer,c~s).CD47SIRPa(VEGFR2bd!3,c~s).vegfr2(l1!2,CD47bd,dimer,c~s) -> \ + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,CD47bd!3,dimer,c~i).CD47SIRPa(VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd,dimer,c~i) kr2NRP1si + vegf(r!1,r!2,nrp1bd!9,c~s).NRP1(vegfabd!9,c~s).vegfr2(l1!1,CD47bd!3,dimer,c~s).CD47SIRPa(VEGFR2bd!3,c~s).vegfr2(l1!2,CD47bd!4,dimer,c~s).CD47SIRPa(VEGFR2bd!4,c~s) -> \ + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,CD47bd!3,dimer,c~i).CD47SIRPa(VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd!4,dimer,c~i).CD47SIRPa(VEGFR2bd!4,c~i) kr2NRP1si + + vegf(r!1,r!2,nrp1bd!9,c~s).NRP1(vegfabd!9,c~s).vegfr2(l1!1,CD47bd,dimer!6,c~s).vegfr2(l1!2,CD47bd,dimer!6,c~s) -> \ + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,CD47bd,dimer!6,c~i).vegfr2(l1!2,CD47bd,dimer!6,c~i) kr2NRP1si + vegf(r!1,r!2,nrp1bd!9,c~s).NRP1(vegfabd!9,c~s).vegfr2(l1!1,CD47bd!3,dimer!6,c~s).CD47SIRPa(VEGFR2bd!3,c~s).vegfr2(l1!2,CD47bd,dimer!6,c~s) -> \ + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,CD47bd!3,dimer!6,c~i).CD47SIRPa(VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd,dimer!6,c~i) kr2NRP1si + vegf(r!1,r!2,nrp1bd!9,c~s).NRP1(vegfabd!9,c~s).vegfr2(l1!1,CD47bd!3,dimer!6,c~s).CD47SIRPa(VEGFR2bd!3,c~s).vegfr2(l1!2,CD47bd!4,dimer!6,c~s).CD47SIRPa(VEGFR2bd!4,c~s) -> \ + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,CD47bd!3,dimer!6,c~i).CD47SIRPa(VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd!4,dimer!6,c~i).CD47SIRPa(VEGFR2bd!4,c~i) kr2NRP1si + + #From i to i2 compartment + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,CD47bd,dimer,c~i).vegfr2(l1!2,CD47bd,dimer,c~i) <-> \ + vegf(r!1,r!2,nrp1bd,c~i2).vegfr2(l1!1,CD47bd,dimer,c~i2).vegfr2(l1!2,CD47bd,dimer,c~i2) kr2ii2,kr2i2i + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,CD47bd,dimer!6,c~i).vegfr2(l1!2,CD47bd,dimer!6,c~i) <-> \ + vegf(r!1,r!2,nrp1bd,c~i2).vegfr2(l1!1,CD47bd,dimer!6,c~i2).vegfr2(l1!2,CD47bd,dimer!6,c~i2) kr2ii2,kr2i2i + + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,CD47bd!3,dimer,c~i).CD47SIRPa(VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd,dimer,c~i) <-> \ + vegf(r!1,r!2,nrp1bd,c~i2).vegfr2(l1!1,CD47bd!3,dimer,c~i2).CD47SIRPa(VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd,dimer,c~i2) kr2ii2,kr2i2i + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,CD47bd!3,dimer!4,c~i).CD47SIRPa(VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd,dimer!4,c~i) <-> \ + vegf(r!1,r!2,nrp1bd,c~i2).vegfr2(l1!1,CD47bd!3,dimer!4,c~i2).CD47SIRPa(VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd,dimer!4,c~i2) kr2ii2,kr2i2i + + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,CD47bd!3,dimer,c~i).CD47SIRPa(VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd!4,dimer,c~i).CD47SIRPa(VEGFR2bd!4,c~i) <-> \ + vegf(r!1,r!2,nrp1bd,c~i2).vegfr2(l1!1,CD47bd!3,dimer,c~i2).CD47SIRPa(VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd!4,dimer,c~i2).CD47SIRPa(VEGFR2bd!4,c~i2) kr2ii2,kr2i2i + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,CD47bd!3,dimer!6,c~i).CD47SIRPa(VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd!4,dimer!6,c~i).CD47SIRPa(VEGFR2bd!4,c~i) <-> \ + vegf(r!1,r!2,nrp1bd,c~i2).vegfr2(l1!1,CD47bd!3,dimer!6,c~i2).CD47SIRPa(VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd!4,dimer!6,c~i2).CD47SIRPa(VEGFR2bd!4,c~i2) kr2ii2,kr2i2i + + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,CD47bd,dimer,c~i).vegfr2(l1!2,CD47bd,dimer,c~i) <-> \ + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,CD47bd,dimer,c~i2).vegfr2(l1!2,CD47bd,dimer,c~i2) kr2NRP1ii2,kr2NRP1i2i + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,CD47bd,dimer!6,c~i).vegfr2(l1!2,CD47bd,dimer!6,c~i) <-> \ + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,CD47bd,dimer!6,c~i2).vegfr2(l1!2,CD47bd,dimer!6,c~i2) kr2NRP1ii2,kr2NRP1i2i + + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,CD47bd!3,dimer,c~i).CD47SIRPa(VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd,dimer,c~i) <-> \ + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,CD47bd!3,dimer,c~i2).CD47SIRPa(VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd,dimer,c~i2) kr2NRP1ii2,kr2NRP1i2i + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,CD47bd!3,dimer!6,c~i).CD47SIRPa(VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd,dimer!6,c~i) <-> \ + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,CD47bd!3,dimer!6,c~i2).CD47SIRPa(VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd,dimer!6,c~i2) kr2NRP1ii2,kr2NRP1i2i + + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,CD47bd!3,dimer,c~i).CD47SIRPa(VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd!4,dimer,c~i).CD47SIRPa(VEGFR2bd!4,c~i) <-> \ + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,CD47bd!3,dimer,c~i2).CD47SIRPa(VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd!4,dimer,c~i2).CD47SIRPa(VEGFR2bd!4,c~i2) kr2NRP1ii2,kr2NRP1i2i + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,CD47bd!3,dimer!6,c~i).CD47SIRPa(VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd!4,dimer!6,c~i).CD47SIRPa(VEGFR2bd!4,c~i) <-> \ + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,CD47bd!3,dimer!6,c~i2).CD47SIRPa(VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd!4,dimer!6,c~i2).CD47SIRPa(VEGFR2bd!4,c~i2) kr2NRP1ii2,kr2NRP1i2i + + #From internalized compartment to the recycling compartment + + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,CD47bd,dimer,c~i2).vegfr2(l1!2,CD47bd,dimer,c~i2) -> \ + vegf(r!1,r!2,nrp1bd!9,c~r).NRP1(vegfabd!9,c~r).vegfr2(l1!1,CD47bd,dimer,c~r).vegfr2(l1!2,CD47bd,dimer,c~r) kr2NRP1i2r + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,CD47bd,dimer!6,c~i2).vegfr2(l1!2,CD47bd,dimer!6,c~i2) -> \ + vegf(r!1,r!2,nrp1bd!9,c~r).NRP1(vegfabd!9,c~r).vegfr2(l1!1,CD47bd,dimer!6,c~r).vegfr2(l1!2,CD47bd,dimer!6,c~r) kr2NRP1i2r + + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,CD47bd!3,dimer,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd,dimer,c~i2) -> \ + vegf(r!1,r!2,nrp1bd!9,c~r).NRP1(vegfabd!9,c~r).vegfr2(l1!1,CD47bd!3,dimer,c~r).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~r).vegfr2(l1!2,CD47bd,dimer,c~r) kr2NRP1i2r + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,CD47bd!3,dimer!6,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd,dimer!6,c~i2) -> \ + vegf(r!1,r!2,nrp1bd!9,c~r).NRP1(vegfabd!9,c~r).vegfr2(l1!1,CD47bd!3,dimer!6,c~r).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~r).vegfr2(l1!2,CD47bd,dimer!6,c~r) kr2NRP1i2r + + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,CD47bd!3,dimer,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd!4,dimer,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!4,c~i2) -> \ + vegf(r!1,r!2,nrp1bd!9,c~r).NRP1(vegfabd!9,c~r).vegfr2(l1!1,CD47bd!3,dimer,c~r).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~r).vegfr2(l1!2,CD47bd!4,dimer,c~r).CD47SIRPa(TSP1bd,VEGFR2bd!4,c~r) kr2NRP1i2r + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,CD47bd!3,dimer!6,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd!4,dimer!6,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!4,c~i2) -> \ + vegf(r!1,r!2,nrp1bd!9,c~r).NRP1(vegfabd!9,c~r).vegfr2(l1!1,CD47bd!3,dimer!6,c~r).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~r).vegfr2(l1!2,CD47bd!4,dimer!6,c~r).CD47SIRPa(TSP1bd,VEGFR2bd!4,c~r) kr2NRP1i2r + + ##################################################################################################################################################################################################### + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,CD47bd!3,dimer,c~i2).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd,dimer,c~i2) -> \ + vegf(r!1,r!2,nrp1bd!9,c~r).NRP1(vegfabd!9,c~r).vegfr2(l1!1,CD47bd!3,dimer,c~r).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~r).vegfr2(l1!2,CD47bd,dimer,c~r) kr2NRP1i2r*fTSP1i2r + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,CD47bd!3,dimer!6,c~i2).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd,dimer!6,c~i2) -> \ + vegf(r!1,r!2,nrp1bd!9,c~r).NRP1(vegfabd!9,c~r).vegfr2(l1!1,CD47bd!3,dimer!6,c~r).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~r).vegfr2(l1!2,CD47bd,dimer!6,c~r) kr2NRP1i2r*fTSP1i2r + + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,CD47bd!3,dimer,c~i2).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd!4,dimer,c~i2).CD47SIRPa(VEGFR2bd!4,c~i2) -> \ + vegf(r!1,r!2,nrp1bd!9,c~r).NRP1(vegfabd!9,c~r).vegfr2(l1!1,CD47bd!3,dimer,c~r).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~r).vegfr2(l1!2,CD47bd!4,dimer,c~r).CD47SIRPa(VEGFR2bd!4,c~r) kr2NRP1i2r*fTSP1i2r + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,CD47bd!3,dimer!6,c~i2).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd!4,dimer!6,c~i2).CD47SIRPa(VEGFR2bd!4,c~i2) -> \ + vegf(r!1,r!2,nrp1bd!9,c~r).NRP1(vegfabd!9,c~r).vegfr2(l1!1,CD47bd!3,dimer!6,c~r).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~r).vegfr2(l1!2,CD47bd!4,dimer!6,c~r).CD47SIRPa(VEGFR2bd!4,c~r) kr2NRP1i2r*fTSP1i2r + + ###################################################################################################################################################################################################### + + # Recycling r to s + + vegfr2(l1,Y1175~Y,CD47bd,dimer,c~r) -> vegfr2(l1,Y1175~Y,CD47bd,dimer,c~s) kr2rs + NRP1(vegfabd,c~r) -> NRP1(vegfabd,c~s) kr2rs + CD47SIRPa(TSP1bd,VEGFR2bd,c~r) -> CD47SIRPa(TSP1bd,VEGFR2bd,c~s) kr2rs + + vegf(r!1,r!2,nrp1bd!9,c~r).NRP1(vegfabd!9,c~r).vegfr2(l1!1,dimer,c~r).vegfr2(l1!2,dimer,c~r) -> NRP1(vegfabd,c~r) + vegfr2(l1,dimer,c~r) + vegfr2(l1,dimer,c~r) kvroff + vegf(r!1,r!2,nrp1bd!9,c~r).NRP1(vegfabd!9,c~r).vegfr2(l1!1,dimer!6,c~r).vegfr2(l1!2,dimer!6,c~r) -> NRP1(vegfabd,c~r) + vegfr2(l1,dimer!6,c~r).vegfr2(l1,dimer!6,c~r) kvroff + vegfr2(dimer!6,c~r).vegfr2(dimer!6,c~r) -> vegfr2(dimer,c~r) + vegfr2(dimer,c~r) kdRR + vegfr2(CD47bd!3,c~r).CD47SIRPa(VEGFR2bd!3,c~r) -> vegfr2(CD47bd,c~r) + CD47SIRPa(VEGFR2bd,c~r) kr2CD47off + CD47SIRPa(TSP1bd!1,c~r).TSP1(CD47bd!1) -> CD47SIRPa(TSP1bd,c~r) koffCD47TSP1 + + # Receptor degradation + + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,Y1175~pY,CD47bd,c~i).vegfr2(l1!2,CD47bd,c~i) -> Trash() kdegi0 + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,Y1175~Y,CD47bd,c~i).vegfr2(l1!2,Y1175~Y,CD47bd,c~i) -> Trash() kdegi0noP + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,Y1175~pY,CD47bd!3,c~i).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd,c~i) -> Trash() kdegi0 + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,Y1175~Y,CD47bd!3,c~i).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i).vegfr2(l1!2,Y1175~Y,CD47bd,c~i) -> Trash() kdegi0noP + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,Y1175~pY,CD47bd!3,c~i).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd!4,c~i).CD47SIRPa(TSP1bd,VEGFR2bd!4,c~i) -> Trash() kdegi0 + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,Y1175~Y,CD47bd!3,c~i).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i).vegfr2(l1!2,Y1175~Y,CD47bd!4,c~i).CD47SIRPa(TSP1bd,VEGFR2bd!4,c~i) -> Trash() kdegi0noP + + vegf(r!1,r!2,nrp1bd,c~i2).vegfr2(l1!1,Y1175~pY,CD47bd,c~i2).vegfr2(l1!2,CD47bd,c~i2) -> Trash() kdegi20 + vegf(r!1,r!2,nrp1bd,c~i2).vegfr2(l1!1,Y1175~Y,CD47bd,c~i2).vegfr2(l1!2,Y1175~Y,CD47bd,c~i2) -> Trash() kdegi20noP + vegf(r!1,r!2,nrp1bd,c~i2).vegfr2(l1!1,Y1175~pY,CD47bd!3,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd,c~i2) -> Trash() kdegi20 + vegf(r!1,r!2,nrp1bd,c~i2).vegfr2(l1!1,Y1175~Y,CD47bd!3,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i2).vegfr2(l1!2,Y1175~Y,CD47bd,c~i2) -> Trash() kdegi20noP + vegf(r!1,r!2,nrp1bd,c~i2).vegfr2(l1!1,Y1175~pY,CD47bd!3,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd!4,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!4,c~i2) -> Trash() kdegi20 + vegf(r!1,r!2,nrp1bd,c~i2).vegfr2(l1!1,Y1175~Y,CD47bd!3,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i2).vegfr2(l1!2,Y1175~Y,CD47bd!4,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!4,c~i2) -> Trash() kdegi20noP + + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,Y1175~pY,CD47bd,c~i).vegfr2(l1!2,CD47bd,c~i) -> Trash() kdegr2NRP1i0 + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,Y1175~Y,CD47bd,c~i).vegfr2(l1!2,Y1175~Y,CD47bd,c~i) -> Trash() kdegr2NRP1i0noP + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,Y1175~pY,CD47bd!3,c~i).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd,c~i) -> Trash() kdegr2NRP1i0 + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,Y1175~Y,CD47bd!3,c~i).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i).vegfr2(l1!2,Y1175~Y,CD47bd,c~i) -> Trash() kdegr2NRP1i0noP + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,Y1175~pY,CD47bd!3,c~i).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd!4,c~i).CD47SIRPa(TSP1bd,VEGFR2bd!4,c~i) -> Trash() kdegr2NRP1i0 + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,Y1175~Y,CD47bd!3,c~i).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i).vegfr2(l1!2,Y1175~Y,CD47bd!4,c~i).CD47SIRPa(TSP1bd,VEGFR2bd!4,c~i) -> Trash() kdegr2NRP1i0noP + + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,Y1175~pY,CD47bd,c~i2).vegfr2(l1!2,CD47bd,c~i2) -> Trash() kdegr2NRP1i20 + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,Y1175~Y,CD47bd,c~i2).vegfr2(l1!2,Y1175~Y,CD47bd,c~i2) -> Trash() kdegr2NRP1i20noP + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,Y1175~pY,CD47bd!3,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd,c~i2) -> Trash() kdegr2NRP1i20 + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,Y1175~Y,CD47bd!3,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i2).vegfr2(l1!2,Y1175~Y,CD47bd,c~i2) -> Trash() kdegr2NRP1i20noP + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,Y1175~pY,CD47bd!3,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd!4,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!4,c~i2) -> Trash() kdegr2NRP1i20 + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,Y1175~Y,CD47bd!3,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!3,c~i2).vegfr2(l1!2,Y1175~Y,CD47bd!4,c~i2).CD47SIRPa(TSP1bd,VEGFR2bd!4,c~i2) -> Trash() kdegr2NRP1i20noP + + + #with TSP1 + + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,Y1175~pY,CD47bd!3,c~i).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd,c~i) -> Trash() kdegi0*f_TSP1deg + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,Y1175~Y,CD47bd!3,c~i).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i).vegfr2(l1!2,Y1175~Y,CD47bd,c~i) -> Trash() kdegi0noP*f_TSP1deg + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,Y1175~pY,CD47bd!3,c~i).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd!4,c~i).CD47SIRPa(VEGFR2bd!4,c~i) -> Trash() kdegi0*f_TSP1deg + vegf(r!1,r!2,nrp1bd,c~i).vegfr2(l1!1,Y1175~Y,CD47bd!3,c~i).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i).vegfr2(l1!2,Y1175~Y,CD47bd!4,c~i).CD47SIRPa(VEGFR2bd!4,c~i) -> Trash() kdegi0noP*f_TSP1deg + + vegf(r!1,r!2,nrp1bd,c~i2).vegfr2(l1!1,Y1175~pY,CD47bd!3,c~i2).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd,c~i2) -> Trash() kdegi20*f_TSP1deg + vegf(r!1,r!2,nrp1bd,c~i2).vegfr2(l1!1,Y1175~Y,CD47bd!3,c~i2).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i2).vegfr2(l1!2,Y1175~Y,CD47bd,c~i2) -> Trash() kdegi20noP*f_TSP1deg + vegf(r!1,r!2,nrp1bd,c~i2).vegfr2(l1!1,Y1175~pY,CD47bd!3,c~i2).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd!4,c~i2).CD47SIRPa(VEGFR2bd!4,c~i2) -> Trash() kdegi20*f_TSP1deg + vegf(r!1,r!2,nrp1bd,c~i2).vegfr2(l1!1,Y1175~Y,CD47bd!3,c~i2).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i2).vegfr2(l1!2,Y1175~Y,CD47bd!4,c~i2).CD47SIRPa(VEGFR2bd!4,c~i2) -> Trash() kdegi20noP*f_TSP1deg + + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,Y1175~pY,CD47bd!3,c~i).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd,c~i) -> Trash() kdegr2NRP1i0*f_TSP1deg + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,Y1175~Y,CD47bd!3,c~i).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i).vegfr2(l1!2,Y1175~Y,CD47bd,c~i) -> Trash() kdegr2NRP1i0noP*f_TSP1deg + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,Y1175~pY,CD47bd!3,c~i).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i).vegfr2(l1!2,CD47bd!4,c~i).CD47SIRPa(VEGFR2bd!4,c~i) -> Trash() kdegr2NRP1i0*f_TSP1deg + vegf(r!1,r!2,nrp1bd!9,c~i).NRP1(vegfabd!9,c~i).vegfr2(l1!1,Y1175~Y,CD47bd!3,c~i).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i).vegfr2(l1!2,Y1175~Y,CD47bd!4,c~i).CD47SIRPa(VEGFR2bd!4,c~i) -> Trash() kdegr2NRP1i0noP*f_TSP1deg + + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,Y1175~pY,CD47bd!3,c~i2).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd,c~i2) -> Trash() kdegr2NRP1i20*f_TSP1deg + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,Y1175~Y,CD47bd!3,c~i2).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i2).vegfr2(l1!2,Y1175~Y,CD47bd,c~i2) -> Trash() kdegr2NRP1i20noP*f_TSP1deg + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,Y1175~pY,CD47bd!3,c~i2).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i2).vegfr2(l1!2,CD47bd!4,c~i2).CD47SIRPa(VEGFR2bd!4,c~i2) -> Trash() kdegr2NRP1i20*f_TSP1deg + vegf(r!1,r!2,nrp1bd!9,c~i2).NRP1(vegfabd!9,c~i2).vegfr2(l1!1,Y1175~Y,CD47bd!3,c~i2).CD47SIRPa(TSP1bd!+,VEGFR2bd!3,c~i2).vegfr2(l1!2,Y1175~Y,CD47bd!4,c~i2).CD47SIRPa(VEGFR2bd!4,c~i2) -> Trash() kdegr2NRP1i20noP*f_TSP1deg + + #Single receptor + vegfr2(l1,CD47bd!1,c~i).CD47SIRPa(TSP1bd,VEGFR2bd!1,c~i) -> Trash() ksingleR2deg + vegfr2(l1,CD47bd,c~i) -> Trash() ksingleR2deg + vegfr2(l1,CD47bd!1,c~i).CD47SIRPa(TSP1bd!+,VEGFR2bd!1,c~i) -> Trash() ksingleR2deg*f_TSP1deg + + # R2 receptor synthesis + + I() -> I() + vegfr2(l1,Y1175~Y,CD47bd,dimer,c~s) ksingleR2syn*VEGFR2total + #I() -> I() + CD47SIRPa(VEGFR2bd,TSP1bd,Y1~Y,c~s) ksingleR2syn*CD47free_0 + + + vegfr2(l1,CD47bd,dimer,c~s) <-> vegfr2(l1,CD47bd,dimer,c~i) ksingleR2si,ksingleR2is + vegfr2(l1,CD47bd!1,dimer,c~s).CD47SIRPa(VEGFR2bd!1,c~s) <-> vegfr2(l1,CD47bd!1,dimer,c~i).CD47SIRPa(VEGFR2bd!1,c~i) ksingleR2si,ksingleR2is + + vegfr2(l1,CD47bd,dimer!3,c~s).vegfr2(l1,CD47bd,dimer!3,c~s) <-> vegfr2(l1,CD47bd,dimer!3,c~i).vegfr2(l1,CD47bd,dimer!3,c~i) ksingleR2si,ksingleR2is + vegfr2(l1,CD47bd!1,dimer!3,c~s).CD47SIRPa(VEGFR2bd!1,c~s).vegfr2(l1,CD47bd,dimer!3,c~s) <-> vegfr2(l1,CD47bd!1,dimer!3,c~i).CD47SIRPa(VEGFR2bd!1,c~i).vegfr2(l1,CD47bd,dimer!3,c~i) ksingleR2si,ksingleR2is + vegfr2(l1,CD47bd!1,dimer!3,c~s).CD47SIRPa(VEGFR2bd!1,c~s).vegfr2(l1,CD47bd!2,dimer!3,c~s).CD47SIRPa(VEGFR2bd!2,c~s) <-> \ + vegfr2(l1,CD47bd!1,dimer!3,c~i).CD47SIRPa(VEGFR2bd!1,c~i).vegfr2(l1,CD47bd!2,dimer!3,c~i).CD47SIRPa(VEGFR2bd!2,c~i) ksingleR2si,ksingleR2is + + # Activating PLCgamma + PLCgamma(Yplc~Y) + vegfr2(Y1175~pY,c~s) -> PLCgamma(Yplc~pY) + vegfr2(Y1175~pY,c~s) kpPLCgamma + PLCgamma(Yplc~Y) + vegfr2(Y1175~pY,c~i) -> PLCgamma(Yplc~pY) + vegfr2(Y1175~pY,c~i) kpPLCgamma + PLCgamma(Yplc~Y) + vegfr2(Y1175~pY,c~i2) -> PLCgamma(Yplc~pY) + vegfr2(Y1175~pY,c~i2) kpPLCgamma + + PLCgamma(Yplc~pY) -> PLCgamma(Yplc~Y) kdpPLCgamma + + # IP3 and DAG generation + PLCgamma(Yplc~pY) + PI(PIsite~3P) -> IP3_cyto(ip3rbd) + PLCgamma(Yplc~pY) kcatPLCgammaDAG*freepip2^(nDAG-1)/(kmPIP2PLCgamma^nDAG+freepip2^nDAG) + PLCgamma(Yplc~pY) + PI(PIsite~3P) -> DAG(pkcbd) + PLCgamma(Yplc~pY) kcatPLCgammaDAG*freepip2^(nDAG-1)/(kmPIP2PLCgamma^nDAG+freepip2^nDAG) + + I() -> I() + PI(PIsite~3P) kPIP2gen + IP3_cyto(ip3rbd) -> Trash() kdeg_ip3 + DAG(pkcbd) -> Trash() kdeg_DAG + + Calcium_cyto(bd) + CaF(cabd) <-> Calcium_cyto(bd!1).CaF(cabd!1) KBon,KBoff + I() -> I() + Istim() ICracamp*(Kcrac^ncrac/(Kcrac^ncrac+Caer^ncrac))/tau_stim-Iopenstim/tau_stim + I() -> I() + Calcium_cyto(bd) (VolER/Volcyto)*Iip3Ramp*(Caer-Cac)*(freeip3cyto^3.8/(freeip3cyto^3.8+KmIP3R^3.8))*(KiCa^3.8/(KiCa^3.8+Cac^3.8)) + I() -> I() + CaER(bd) -Iip3Ramp*(Caer-Cac)*(freeip3cyto^3.8/(freeip3cyto^3.8+KmIP3R^3.8))*(KiCa^3.8/(KiCa^3.8+Cac^3.8))*( 1/(1+CSQN_total/(KCSQN+Caer)^2) ) + I() -> I() + Calcium_cyto(bd) -I_PMCAbar*Cac^1.4/(KmPMCA^1.4+Cac^1.4) + Iopenstim # PMCA pump + I() -> I() + Calcium_cyto(bd) -vSERCA*(Cac/(KmSERCA+Cac))^2 + KleakER*(Caer-Cac)^2 # SERCA pump + I() -> I() + CaER(bd) vSERCA*(Cac/(KmSERCA+Cac))^2*(Volcyto/VolER)*(1/(1+CSQN_total/(KCSQN+Caer)^2)) # SERCA pump + I() -> I() + CaER(bd) -KleakER*(Volcyto/VolER)*((Caer-Cac)^2)*(1/(1+CSQN_total/(KCSQN+Caer)^2)) + + # Calcium binding to CaM + CaM(NCaM) + Calcium_cyto(bd) -> CaM(NCaM!1).Calcium_cyto(bd!1) + Calcium_cyto(bd) (koffCaNCaM1/kdCaNCaM) + CaM(NCaM!1).Calcium_cyto(bd!1) -> CaM(NCaM) koffCaNCaM1 + CaM(CCaM) + Calcium_cyto(bd) -> CaM(CCaM!1).Calcium_cyto(bd!1) + Calcium_cyto(bd) (koffCaCCaM1/kdCaCCaM) + CaM(CCaM!1).Calcium_cyto(bd!1) -> CaM(CCaM) koffCaCCaM1 + + # PI3K/AKT pathway + # binding of TSAd (Tcell specific adaptor molecule) + + TSADSrc(Y1~Y) + vegfr2(Y1175~pY!?,c~s) -> TSADSrc(Y1~pY) + vegfr2(Y1175~pY!?,c~s) kpSrc # Autophosphorylation of Src + TSADSrc(Y1~Y) + vegfr2(Y1175~pY!?,c~i) -> TSADSrc(Y1~pY) + vegfr2(Y1175~pY!?,c~i) kpSrc # Autophosphorylation of Src + TSADSrc(Y1~Y) + vegfr2(Y1175~pY!?,c~i2) -> TSADSrc(Y1~pY) + vegfr2(Y1175~pY!?,c~i2) kpSrc # Autophosphorylation of Src + + TSADSrc(Y1~pY) -> TSADSrc(Y1~Y) kdpSrc + + + # Activation of Axl by Src + + TSADSrc(Y1~pY) + Axl(Ysrc~Y) -> TSADSrc(Y1~pY) + Axl(Ysrc~pY) kpSrcAxl + + Axl(Ysrc~pY,Yaxl~Y) -> Axl(Ysrc~pY,Yaxl~pY) kpAxlauto + + Axl(Yaxl~pY) -> Axl(Yaxl~Y) kdpautoAxl + Axl(Ysrc~pY) -> Axl(Ysrc~Y) kdpSrcAxl + + #Binding of PI3K to activated Axl + + PI3K(state~inactive) + Axl(Yaxl~pY) -> PI3K(state~active) + Axl(Yaxl~pY) konPI3KAxl + PI3K(state~active) -> PI3K(state~inactive) koffPI3KAxl + + + PI3K(state~active) + PI(PIsite~3P) -> PI3K(state~active) + PI(PIsite~4P) kcatPI3KPIP2/(kmPIP2PI3K+freepip2) + + PTEN(PIP3docking) + PI(PIsite~4P) -> PTEN(PIP3docking) + PI(PIsite~3P) kcatPTENPIP3/(kmPIP3PTEN+freepip3) + + PDK1(PHpdk1) + PI(PIsite~4P) <-> PDK1(PHpdk1!1).PI(PIsite~4P!1) konPDK1PIP3,koffPDK1PIP3 + AKT(PHakt) + PI(PIsite~4P) <-> AKT(PHakt!1).PI(PIsite~4P!1) konAKTPIP3,koffAKTPIP3 + + AKT(PHakt!+,S473~S) -> AKT(PHakt!+,S473~pS) kpmTORAKT + + AKT(PHakt!+,S473~pS,T308~S) + PDK1(PHpdk1!+) -> \ + PDK1(PHpdk1!+) + AKT(PHakt!+,S473~pS,T308~pS) kpAKTPDK1 + + AKT(S473~pS) -> AKT(S473~S) kdp473AKTPPase + AKT(T308~pS) -> AKT(T308~S) kdp308AKTPPase + + # eNOS activation by Ca/CaM and pAKT + + CaM(NCaM!+,NCaM!+,CCaM!+,CCaM!+,CaMtargetbd) + eNOS(CaMBD) <-> \ + CaM(NCaM!+,NCaM!+,CCaM!+,CCaM!+,CaMtargetbd!1).eNOS(CaMBD!1) konCaMeNOS,koffCaMeNOS + + eNOS(CaMBD!+,cav1BD!1).caveolin1(eNOSbd!1) -> eNOS(CaMBD!+,cav1BD) + caveolin1(eNOSbd) koffeNOScav1 + + eNOS(cav1BD!1,S1177~pS).caveolin1(eNOSbd!1) -> eNOS(cav1BD,S1177~pS) + caveolin1(eNOSbd) koffeNOScav1 + eNOS(CaMBD,cav1BD,S1177~S) + caveolin1(eNOSbd) -> eNOS(CaMBD,cav1BD!1,S1177~S).caveolin1(eNOSbd!1) koncaveNOS + + eNOS(CaMBD!+,S1177~S) + AKT(T308~pS,S473~pS) -> eNOS(CaMBD!+,S1177~pS) + AKT(T308~pS,S473~pS) kcateNOSAKT + eNOS(S1177~pS) -> eNOS(S1177~S) kdpeNOS + + + # TSP1 binding to CD47SIRPa + + I() -> I() + TSP1(CD47bd) -(koffCD47TSP1/kDCD47TSP1)/fextmolar*tsp1frees*cellarea*cd47s+koffCD47TSP1*cd47tsp1s*cellarea*(1/fextmolar) + TSP1(CD47bd) + CD47SIRPa(TSP1bd,c~s) -> TSP1(CD47bd) + TSP1(CD47bd!1).CD47SIRPa(TSP1bd!1,c~s) (koffCD47TSP1/kDCD47TSP1) + TSP1(CD47bd!1).CD47SIRPa(TSP1bd!1,c~s) -> CD47SIRPa(TSP1bd,c~s) koffCD47TSP1 + + + vegfr2(CD47bd,c~s) + CD47SIRPa(VEGFR2bd,c~s) -> \ + vegfr2(CD47bd!1,c~s).CD47SIRPa(VEGFR2bd!1,c~s) kcd47free_on + + PKC(CalciumBD) + Calcium_cyto(bd) <-> PKC(CalciumBD!1).Calcium_cyto(bd!1) konCaPKC,koffCaPKC + PKC(DAGBD) + DAG(pkcbd) <-> PKC(DAGBD!1).DAG(pkcbd!1) konDAGPKC,koffDAGPKC + CIB1(EF1) + Calcium_cyto(bd) <-> CIB1(EF1!1).Calcium_cyto(bd!1) kon1CaCIB1,koff1CaCIB1 + CIB1(EF2) + Calcium_cyto(bd) <-> CIB1(EF2!1).Calcium_cyto(bd!1) kon2CaCIB1,koff2CaCIB1 + + CIB1(EF1!+,EF2!+,sk1bd,location~cytosol) + SphK(CIB1bd,Serk~pS) <-> \ + CIB1(EF1!+,EF2!+,sk1bd!1,location~cytosol).SphK(CIB1bd!1,Serk~pS) konCIB1SphK1,koffCIB1SphK1 + + ERK2(S2~pS) + SphK(Serk~S) -> ERK2(S2~pS) + SphK(Serk~pS) kcatERK/(freeSphK1+kmERKSK1) + + CIB1(EF1!+,EF2!+,sk1bd!+,location~cytosol) <-> CIB1(EF1!+,EF2!+,sk1bd!+,location~membrane) ktSK1,ktoffSK1 + CIB1(EF1,EF2,location~membrane) -> CIB1(EF1,EF2,location~cytosol) koffSK1 + + PKC(CalciumBD!+,DAGBD!1).DAG(pkcbd!1) + Raf(Spkc~S) -> \ + PKC(CalciumBD!+,DAGBD!1).DAG(pkcbd!1) + Raf(Spkc~pS) kcatPKC/(freeraf+kmPKCRaf) + + SphK(Serk~pS) -> SphK(Serk~S) kdpSK1 + + Raf(Spkc~pS) -> Raf(Spkc~S) kdpPKCRaf + + I() -> I() + Sph(skbd) kSphgen + + CIB1(sk1bd!1,location~membrane).SphK(CIB1bd!1,Serk~pS) + Sph(skbd) -> S1P(bd) + CIB1(sk1bd!1,location~membrane).SphK(CIB1bd!1,Serk~pS) \ + kcatSK1Sph/(KmSK1Sph+freesphingosin) + + S1P(bd) -> Sph(skbd) kdpS1P + + I() -> I() + RasGTP(rafbd) kS1PRas*frees1p/(KmS1PRas+frees1p)-kRasGAP*gtpfreeras + + Raf(rasbd) + RasGTP(rafbd) <-> Raf(rasbd!1).RasGTP(rafbd!1) konRasRaf,koffRasRaf + Raf(rasbd!1,Y1Y2~Y).RasGTP(rafbd!1) -> Raf(rasbd!1,Y1Y2~pY).RasGTP(rafbd!1) kpRaf # Activation of Raf by Tyrosine phosphorylation + Raf(Y1Y2~pY) -> Raf(Y1Y2~Y) kdpRaf + + MEK12(S1~S) + Raf(Y1Y2~pY,Spkc~S) -> Raf(Y1Y2~pY,Spkc~S) + MEK12(S1~pS) kpMEK12Raf1/(KmMEK12Raf+mek12s1) + MEK12(S2~S) + Raf(Y1Y2~pY,Spkc~S) -> Raf(Y1Y2~pY,Spkc~S) + MEK12(S2~pS) kpMEK12Raf2/(KmMEK12Raf+mek12s2) + MEK12(S1~S) + Raf(Y1Y2~pY,Spkc~pS) -> Raf(Y1Y2~pY,Spkc~pS) + MEK12(S1~pS) kpMEK12Raf1/(KmMEK12Raf+mek12s2) + MEK12(S2~S) + Raf(Y1Y2~pY,Spkc~pS) -> Raf(Y1Y2~pY,Spkc~pS) + MEK12(S2~pS) kpMEK12Raf2/(KmMEK12Raf+mek12s2) + MEK12(S1~S) + Raf(Y1Y2~Y,Spkc~pS) -> Raf(Y1Y2~Y,Spkc~pS) + MEK12(S1~pS) kpMEK12Raf1/(KmMEK12Raf+mek12s1) + MEK12(S2~S) + Raf(Y1Y2~Y,Spkc~pS) -> Raf(Y1Y2~Y,Spkc~pS) + MEK12(S2~pS) kpMEK12Raf2/(KmMEK12Raf+mek12s2) + + MEK12(S1~pS) -> MEK12(S1~S) kdpMEK12_1 + MEK12(S2~pS) -> MEK12(S2~S) kdpMEK12_2 + + MEK12(S1~pS,S2~pS) + ERK1(S1~S) -> MEK12(S1~pS,S2~pS) + ERK1(S1~pS) \ + (kpMEK12ERK12_1/(kmMEKERK12+erk12s1)) + MEK12(S1~pS,S2~pS) + ERK2(S2~S) -> \ + MEK12(S1~pS,S2~pS) + ERK2(S2~pS) \ + (kpMEK12ERK12_2/(kmMEKERK12+erk12s2)) + + ERK1(S1~pS) -> ERK1(S1~S) kdpERK12_1 + ERK2(S2~pS) -> ERK2(S2~S) kdpERK12_2 +end reaction rules + +end model + +## actions ## +generate_network({overwrite=>1,max_agg=>10}) +writeMexfile({atol=>1e-9,rtol=>1e-6,t_start=>0,t_end=>18000,n_steps=>2000,max_num_steps=>1e6,sparse=>1,stiff=>1}) +writeSBML({}) \ No newline at end of file diff --git a/Published/Zhang2023/metadata.yaml b/Published/Zhang2023/metadata.yaml new file mode 100644 index 00000000..00b1112c --- /dev/null +++ b/Published/Zhang2023/metadata.yaml @@ -0,0 +1,22 @@ +id: "Zhang_2023" +name: "Zhang 2023" +description: "VEGF signaling" +tags: ["published", "zhang", "2023", "vegf", "vegfr2", "vegfr1", "nrp1", "pi", "plcgamma", "dag", "ip3_cyto"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/complex-models/Zhang_2023.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/fcerifyn/README.md b/Published/fcerifyn/README.md new file mode 100644 index 00000000..3ee022b5 --- /dev/null +++ b/Published/fcerifyn/README.md @@ -0,0 +1,21 @@ +# FceRI Fyn + +FceRI signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- fceri_fyn.bngl + +## Tags + +published, immunology, fceri, fyn, lig, lyn, syk, rec diff --git a/Published/fcerifyn/fceri_fyn.bngl b/Published/fcerifyn/fceri_fyn.bngl new file mode 100644 index 00000000..9307948b --- /dev/null +++ b/Published/fcerifyn/fceri_fyn.bngl @@ -0,0 +1,125 @@ +begin model +begin parameters + Lig_tot 6.0e3 + Rec_tot 4.0e2 + Lyn_tot 2.8e1 + Fyn_tot 4.0e2 + Syk_tot 4.0e2 + + kp1 1.32845238e-7 + km1 0 + kp2 2.5e-1 + km2 0 + kpL 5e-2 + kmL 20 + kpLs 5e-2 + kmLs 0.12 + kpF 5e-2 + kmF 20 + kpS 6e-2 + kmS 0.13 + kpSs 6e-2 + kmSs 0.13 + pLb 30 + pLbs 100 + pLg 1 + pLgs 3 + pLS 30 + pLSs 100 + pSS 100 + pSSs 200 + pLF 30 + pLFs 100 + dm 20 + dc 20 +end parameters + +begin seed species + Lig(l,l) Lig_tot + Lyn(U,SH2,a~Y) Lyn_tot + Fyn(SH2,a~Y,t~Y) Fyn_tot + Syk(tSH2,l~Y,a~Y) Syk_tot + Rec(a,b~Y,g~Y) Rec_tot +end seed species + +begin reaction rules + # Ligand-receptor binding + Rec(a) + Lig(l,l) <-> Rec(a!1).Lig(l!1,l) kp1, km1 + + # Receptor-aggregation + Rec(a) + Lig(l,l!+) <-> Rec(a!2).Lig(l!2,l!+) kp2,km2 + + # Constitutive Lyn-receptor binding + Rec(b~Y) + Lyn(U,SH2) <-> Rec(b~Y!1).Lyn(U!1,SH2) kpL, kmL + + # Transphosphorylation of beta by constitutive Lyn + Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~Y) -> Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~pY) pLb + + # Transphosphorylation of gamma by constitutive Lyn + Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~Y) -> Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY) pLg + + # Lyn-receptor binding through SH2 domain + Rec(b~pY) + Lyn(U,SH2) <-> Rec(b~pY!1).Lyn(U,SH2!1) kpLs, kmLs + + # Fyn-receptor binding through SH2 domain + Rec(b~pY) + Fyn(SH2) <-> Rec(b~pY!1).Fyn(SH2!1) kpF, kmF + + # Transphosphorylation of beta by SH2-bound Lyn + Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,b~Y) -> Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,b~pY) pLbs + + # Transphosphorylation of gamma by SH2-bound Lyn + Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~Y) -> Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY) pLgs + + # Syk-receptor binding through tSH2 domain + Rec(g~pY) + Syk(tSH2) <-> Rec(g~pY!1).Syk(tSH2!1) kpS, kmS + + # Transphosphorylation of Lyn by constitutive Lyn + Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~pY!4).Lyn(SH2!4,a~Y) -> \ + Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~pY!4).Lyn(SH2!4,a~pY) pLS + + # Transphosphorylation of Lyn by SH2-bound Lyn + Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,b~pY!4).Lyn(SH2!4,a~Y) -> \ + Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,b~pY!4).Lyn(SH2!4,a~pY) pLSs + + # Transphosphorylation of Fyn by constitutive Lyn + Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~pY!4).Fyn(SH2!4,a~Y) -> \ + Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~pY!4).Fyn(SH2!4,a~pY) pLF + + # Transphosphorylation of Fyn by SH2-bound Lyn + Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~pY!3).Rec(a!1,b~pY!4).Fyn(SH2!4,a~Y) -> \ + Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~pY!3).Rec(a!1,b~pY!4).Fyn(SH2!4,a~pY) pLFs + + # Transphosphorylation of Syk by constitutive Lyn + Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~Y) -> \ + Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~pY) pLS + + # Transphosphorylation of Syk by SH2-bound Lyn + Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~Y) -> \ + Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~pY) pLSs + + # Transphosphorylation of Syk by Syk not phosphorylated on aloop + Lig(l!1,l!2).Syk(tSH2!3,a~Y).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~Y) -> \ + Lig(l!1,l!2).Syk(tSH2!3,a~Y).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~pY) pSS + + # Transphosphorylation of Syk by Syk phosphorylated on aloop + Lig(l!1,l!2).Syk(tSH2!3,a~pY).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~Y) -> \ + Lig(l!1,l!2).Syk(tSH2!3,a~pY).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~pY) pSSs + + # Dephosphorylation of Rec beta + Rec(b~pY)-> Rec(b~Y) dm + + # Dephosphorylation of Rec gamma + Rec(g~pY)-> Rec(g~Y) dm + + # Dephosphorylation of Syk at membrane + Syk(tSH2!+,l~pY)-> Syk(tSH2!+,l~Y) dm + Syk(tSH2!+,a~pY)-> Syk(tSH2!+,a~Y) dm + + # Dephosphorylation of Syk in cytosol + Syk(tSH2,l~pY)-> Syk(tSH2,l~Y) dc + Syk(tSH2,a~pY)-> Syk(tSH2,a~Y) dc +end reaction rules +end model + +## actions ## +generate_network({overwrite=>1,max_iter=>100}) diff --git a/Published/fcerifyn/metadata.yaml b/Published/fcerifyn/metadata.yaml new file mode 100644 index 00000000..da9e7e0e --- /dev/null +++ b/Published/fcerifyn/metadata.yaml @@ -0,0 +1,22 @@ +id: "fceri_fyn" +name: "FceRI Fyn" +description: "FceRI signaling" +tags: ["published", "immunology", "fceri", "fyn", "lig", "lyn", "syk", "rec"] +category: "immunology" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/immune-signaling/fceri_fyn.bngl" +playground: + visible: false + gallery_category: "immunology" + featured: false + difficulty: "advanced" diff --git a/Published/innateimmunity/README.md b/Published/innateimmunity/README.md new file mode 100644 index 00000000..f3979395 --- /dev/null +++ b/Published/innateimmunity/README.md @@ -0,0 +1,21 @@ +# Korwek 2023 + +Immune response + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- innate_immunity.bngl + +## Tags + +published, immunology, innate, immunity, polyic, rigi, mavs, pkr, oas3, rnasel, eif2a, rigi_mrna diff --git a/Published/innateimmunity/innate_immunity.bngl b/Published/innateimmunity/innate_immunity.bngl new file mode 100644 index 00000000..65f68890 --- /dev/null +++ b/Published/innateimmunity/innate_immunity.bngl @@ -0,0 +1,726 @@ +# This BioNetGen file features the article: +# +# ----------------------------------------------------------------------------- +# +# "Non-self RNA rewires IFN[beta] signaling: +# A mathematical model of the innate immune response" +# +# by Korwek Z, Czerkies M, Jaruszewicz-Blonska J, +# Prus W, Kosiuk I, Kochanczyk M, & Lipniacki T +# +# published in Science Signaling (2023). +# +# ----------------------------------------------------------------------------- +# +# For a description of the BioNetGen language (BNGL) see e.g. Faeder et al +# [Meth. Mol. Biol. (2009), http://dx.doi.org/10.1007/978-1-59745-525-1_5]. +# The model may be executed using BioNetGen [http://www.bionetgen.org]. +# We recommend using BioNetGen within RuleBender [http://www.rulebender.org]. + +begin model + +begin parameters + + ## mnemonics in prefixes of parameter names: + # + # * a_/d_ -- Activation/Deactivation, + # * b_/u_ -- Binding/Unbinding, + # * i_/e_ -- Import/Export, + # * p_/q_ -- Phosphorylation/dephosphorylation, + # * g_ -- deGradation, + # * t_ -- Transcription, + # * s_ -- protein Synthesis (i.e., mRNA translation), + # * m_ -- Michaelis--Menten-type coefficient; inhibition or activation constant, + # * k_ -- other Kinetic rate, + # + # * du_ -- dephosphorylation-induced unbinding, + # * tg_ -- rate for both transcription and transcript degradation, + # * sg_ -- rate for both translation and protein degradation. + # + # * h_ -- Having or not a specific gene/protein (for simulating knock-outs); + # * n -- amouNt of a chemical species, + + + + ### === Cell parameters =============================================================== + + k_v 5 # ratio of the cytoplasmic to the nuclear volume + + h_Mavs 1 # (gene name: MAVS) + h_Pkr_gene 1 # (gene name: EIF2AK2) + h_Rnasel_gene 1 # (gene name: RNASEL) + + + + ### === Initial conditions, stimulation =============================================== + + n_Tak1_i_initial 1 + n_NFkB_IkBa_cyt_initial 1 + n_Ikk_n_initial 1 + n_Irf3_i_initial 1 + n_Tbk1_i_initial 1 + n_eIF2a_dephospho_initial 1 + + n_TNFa_stimulation 1 + n_IFNb_stimulation 1 + + n_polyIC_stimulation 1 # (experiments for PCR: 10, + # experiments for Western blots: 1) + + + + ### === Reaction parameters =========================================================== + + ## common parameters ------------------------------------------------------------------ + # + # technical coefficient to avoid dividing by zero in gene activation rates + EPSILON 1.0e-6 + # + k_FAST 1.0 + k_POLYIC 0.00024390060510912293 # FITTED + tg_TRANSCRIPT 7.259610076954435e-05 # FITTED + sg_PROTEIN 1.532955086663982e-05 # FITTED + m_Rnasel 0.031164323577208185 # FITTED + m_Eif2a 0.015830114342212334 # FITTED + + + ## poly(I:C) module ------------------------------------------------------------------- + # + i_Polyic k_POLYIC + b_Rigi_Polyic k_POLYIC + b_RigiPolyic_Mavs k_POLYIC + a_Pkr_by_Polyic k_POLYIC + d_Pkr k_POLYIC + a_Oas3_by_Polyic k_POLYIC + d_Oas3 k_POLYIC + p_Eif2a_by_Pkr k_POLYIC + p_Eif2a_basal 7.723454616604743e-06 + q_Eif2a k_POLYIC + a_Rnasel_by_Oas3 k_POLYIC + d_Rnasel k_POLYIC + ma_Rigi_gene_basal 0.05930147549419551 # FITTED + tg_Isg_mrna tg_TRANSCRIPT + ma_Pkr_Oas3_gene_basal 0.7245345686782008 # FITTED + ma_Rnasel_gene_basal 1.020172036452892 # FITTED + sg_Rigi sg_PROTEIN + sg_Pkr 4.2805996953166866e-05 # FITTED + sg_Oas3 sg_PROTEIN + sg_Rnasel sg_PROTEIN + + + ## NF-kB module ----------------------------------------------------------------------- + # + a_Tak1_by_Tnfa 0.8903603794354649 # FITTED + a_Tak1_by_RigiMavs k_FAST + d_Tak1 k_FAST + a_Ikk 0.010904467109555071 # FITTED + d_Ikk_1 0.0008829700327658654 # FITTED + d_Ikk_2 0.05982062403935003 # FITTED + d_Ikk_3 0.00026826640310831975 # FITTED + b_Nfkb_Ikba_cyt k_FAST + b_Nfkb_Ikba_nuc k_v*b_Nfkb_Ikba_cyt + p_Ikba_by_Ikk 0.008458552410073877 # FITTED + g_Ikba_p_any k_FAST + g_Ikba_u_free sg_PROTEIN + g_Ikba_u_with_Nfkb 3.944402357840543e-05 # FITTED + i_Nfkb k_FAST + e_Nfkb_with_Ikba k_FAST + i_Ikba 0.0005635774134351319 # FITTED + e_Ikba 0.02051107491820277 # FITTED + tg_Ikba_mrna 0.0002565157989928973 # FITTED + a_Ikba_gene_by_Nfkb__ 0.0684701851861643 # FITTED + a_Ikba_gene_by_Nfkb k_FAST*a_Ikba_gene_by_Nfkb__ + d_Ikba_gene_by_Ikba k_FAST + tg_A20_mrna 0.0009406825155497426 # FITTED + a_A20_gene_by_Nfkb__ 0.025686603943611396 # FITTED + a_A20_gene_by_Nfkb k_FAST*a_A20_gene_by_Nfkb__ + d_A20_gene_by_Ikba k_FAST + s_Ikba 0.004255786898310512 # FITTED + sg_A20 5.014115674793064e-06 # FITTED + + + ## IRF3 module ------------------------------------------------------------------------ + # + p_Tbk1_by_RigiMavs k_FAST + q_Tbk1 k_FAST + q_Tbk1_by_A20__ 3.875729946075596e2 # FITTED + q_Tbk1_by_A20 q_Tbk1_by_A20__*q_Tbk1 + p_Irf3_by_Tbk1 k_POLYIC + q_Irf3 k_POLYIC + + + ## IFNb module ------------------------------------------------------------------------ + # + b_Ifnar_Ifnb_cyt k_FAST + b_Ifnar_Ifnb_ext 0.000750779497463291 # FITTED + tg_Ifnar_mrna tg_TRANSCRIPT + m_Rnasel_Ifnar_mrna 0.0039023754286057065 # FITTED + s_Ifnar 2.8778555528751826e-05 # FITTED + g_Ifnar 9.77848544160331e-05 # FITTED + g_Ifnar_w_Ifnb 0.00031054256866899256 # FITTED + tg_Ifnb_mrna tg_TRANSCRIPT + m_Ifnb_mrna_NfkbIrf3 3.162948461272814e-05 # FITTED + sg_Ifnb sg_PROTEIN + + + ## STAT1/2 module --------------------------------------------------------------------- + # + p_Stat k_FAST + q_Stat 0.0018294332440515334 # FITTED + m_Ifnar_a 0.020141727438512898 # FITTED + b_Stat1_Stat2 k_FAST + qu_Stat1_Stat2 0.052370747192221206 # FITTED + ma_Stat1_gene_basal 0.18314838022720048 # FITTED + ma_Stat2_gene_basal 0.07023843113385617 # FITTED + a_gene_by_Stat12dim 13126.669661929025 # FITTED, also used by the poly(I:C) module + tg_Stat_mrna tg_TRANSCRIPT + sg_Stat sg_PROTEIN + +end parameters + + + +begin molecule types + + ## poly(I:C) module ------------------------------------------------------------------- + + PolyIC(Rigi,loc~ext~cyt) # polyinosinic:polycytidylic acid, poly(I:C): + # Rigi -- RIG-I-binding site, + # loc -- location (extracellular or intracellular cytoplasmic). + + RIGI(Polyic,Mavs) # retinoic acid-inducible gene I, RIG-I: + # Polyic -- poly(I:C)-binding site, + # Mavs -- MAVS-binding site. + + MAVS(Rigi) # mitochondrial antiviral-signaling protein, MAVS: + # Rigi -- RIG-I-binding site. + + PKR(st~i~a) # protein kinase R, PKR: + # st -- activation state (switched on by poly(I:C) ternary complex). + + OAS3(st~i~a) # 2'-5'-oligoadenylate synthetase 3, OAS3: + # st -- activation state (switched on by poly(I:C) ternary complex). + + RNaseL(st~i~a) # ribonuclease L, RNase L: + # st -- activation state (switched on by active OAS3). + + eIF2a(st~0~p) # eukaryotic initiation factor 2, eIF2[alpha]: + # st -- phosphorylation state (eIF2a is inhibited when phosphorylated + # by active PKR) + + RIGI_mRNA() # RIG-I gene (DDX58) transcript + PKR_mRNA() # PKR gene (EIF2AK) transcript + OAS3_mRNA() # OAS3 gene (OAS3) transcript + RNaseL_mRNA() # RNase L gene (RNASEL) transcript + + + ## NF-kB module ----------------------------------------------------------------------- + + TNFa() # (extracellular) tumor necrosis factor alpha, TNF[alpha] + + TAK1(st~i~a) # TAK1 protein encoded by MAP3K7: + # st -- activation state (activators: poly(I:C):RIG-I:MAVS, TNFa). + + IKK(st~n~a~i~ii) # I[kappa]B kinase, IKK: + # st -- activation state (one of: neutral, active, inactive, inactive + # intermediate; activated by active TAK1). + + IkBa(Nfkb,loc~nuc~cyt,Ser32_Ser36~0~pp) # nuclear factor of kappa light polypeptide gene enhancer + # in B-cells inhibitor, alpha; I[kappa]B[alpha]: + # loc -- subcellular location (nuclear or cytoplasmic), + # Ser32_Ser36 -- lumped phosphorylation site (phosphorylated by active + # IKK; phosphorylated IkBa undergoes rapid degradation). + + NFkB(Ikba,loc~nuc~cyt) # nuclear factor [kappa] B, NF-[kappa]B: + # Ikba -- binding site for IkBa, + # loc -- subcellular location (cytoplasmic or nuclear). + + A20() # Tumor necrosis factor alpha-induced protein 3, a.k.a. A20. + + IkBa_mRNA() # I[kappa]B[alpha] gene (NFKBIA) transcript + A20_mRNA() # A20 gene (TNFAIP3) transcript + + + ## IRF3 module ------------------------------------------------------------------------ + + TBK1(Ser172~0~p) # TANK-binding kinase 1, TBK1: + # Ser172 -- phosphosite (TBK1 is activated upon its phosphorylation + # induced by poly(I:C):RIG-I:MAVS). + + IRF3(Ser396~0~p) # Interferon regulatory factor 3, IRF3: + # Ser396 -- phosphosite (IRF3 is activated upon its phosphorylation + # by phosphorylated TBK1). + + + ## IFNb module ------------------------------------------------------------------------ + + IFNAR(Ifnb) # Interferon-[beta] receptor, IFNAR: + # Ifnb -- IFNb-binding site (IFNAR is activated upon IFNb binding). + + IFNb(Ifnar,loc~ext~cyt) # Interferon-[beta] + + IFNAR_mRNA() # IFNAR gene (IFNAR1) transcript + IFNb_mRNA() # IFNb gene (IFNB1) transcript + + + ## STAT1/2 module --------------------------------------------------------------------- + + STAT1(Stat2,Tyr701~0~p) # Signal transducer and activator of transcription 1, STAT1: + # Stat2 -- binding site for STAT2, + # Tyr701 -- phosphosite (phosphorylated due to IFNAR:IFNb). + + STAT2(Stat1,Tyr690~0~p) # Signal transducer and activator of transcription 2, STAT2: + # Stat1 -- binding site for STAT1, + # Tyr690 -- phosphosite (phosphorylated due to IFNAR:IFNb). + + STAT1_mRNA() # STAT1 gene transcript + STAT2_mRNA() # STAT2 gene transcript + +end molecule types + + + +begin seed species + + # poly(I:C) module + PolyIC(Rigi,loc~ext) 0 + RIGI(Mavs,Polyic) 0 + MAVS(Rigi) h_Mavs + PKR(st~i) 0 + OAS3(st~i) 0 + RNaseL(st~i) 0 + eIF2a(st~0) n_eIF2a_dephospho_initial + RIGI_mRNA() 0 + PKR_mRNA() 0 + OAS3_mRNA() 0 + RNaseL_mRNA() 0 + + # NF-kB module + TNFa() 0 + NFkB(Ikba!0,loc~cyt).IkBa(Nfkb!0,loc~cyt,Ser32_Ser36~0) n_NFkB_IkBa_cyt_initial + TAK1(st~i) n_Tak1_i_initial + IKK(st~n) n_Ikk_n_initial + A20() 0 + IkBa_mRNA() 0 + A20_mRNA() 0 + + # IRF3 module + TBK1(Ser172~0) n_Tbk1_i_initial + IRF3(Ser396~0) n_Irf3_i_initial + + # IFNb module + IFNAR(Ifnb) 0 + IFNb(Ifnar,loc~cyt) 0 + IFNb(Ifnar,loc~ext) 0 + IFNAR_mRNA() 0 + IFNb_mRNA() 0 + + + # STAT1/2 module + STAT1(Stat2,Tyr701~0) 0 + STAT2(Stat1,Tyr690~0) 0 + STAT1(Stat2!1,Tyr701~p).STAT2(Stat1!1,Tyr690~p) 0 + STAT1_mRNA() 0 + STAT2_mRNA() 0 + +end seed species + + + +begin observables + + ## poly(I:C) module ------------------------------------------------------------------- + + Species RIG_I_total RIGI(Mavs!?,Polyic!?) + Molecules PKR_total PKR() + Molecules OAS3_total OAS3() + Species RNaseL_total RNaseL() + Species RNaseL_a RNaseL(st~a) # used in rate expression(s) + Species eIF2a_total eIF2a() + Species eIF2a_p eIF2a(st~p) # used in rate expression(s) + Species RIGI_mRNA RIGI_mRNA() # used in rate expression(s) + Species PKR_mRNA PKR_mRNA() # used in rate expression(s) + Species OAS3_mRNA OAS3_mRNA() # used in rate expression(s) + Species RNaseL_mRNA RNaseL_mRNA() # used in rate expression(s) + + + ## NF-kB module ----------------------------------------------------------------------- + + Species TAK1_a TAK1(st~a) # used in rate expression(s) + Species NFkB_nuc_free NFkB(loc~nuc,Ikba) # used in rate expression(s) + Species NFkB_nuc_total NFkB(loc~nuc) + Species NFkB_total NFkB() + Species IkBa_total IkBa(Nfkb,loc~cyt,Ser32_Ser36~pp),IkBa(Nfkb,loc~nuc,Ser32_Ser36~0),\ + IkBa(Nfkb,loc~nuc,Ser32_Ser36~pp),IkBa(Nfkb,loc~cyt,Ser32_Ser36~0),\ + IkBa(Nfkb!+,loc~cyt,Ser32_Ser36~pp),IkBa(Nfkb!+,loc~nuc,Ser32_Ser36~0),\ + IkBa(Nfkb!+,loc~nuc,Ser32_Ser36~pp),IkBa(Nfkb!+,loc~cyt,Ser32_Ser36~0) + Species IkBa_nuc_total IkBa(Nfkb,loc~nuc,Ser32_Ser36~0),\ + IkBa(Nfkb,loc~nuc,Ser32_Ser36~pp),\ + IkBa(Nfkb!+,loc~nuc,Ser32_Ser36~0),\ + IkBa(Nfkb!+,loc~nuc,Ser32_Ser36~pp) + Species IkBa_cyt_total IkBa(Nfkb,loc~cyt,Ser32_Ser36~pp),\ + IkBa(Nfkb,loc~cyt,Ser32_Ser36~0),\ + IkBa(Nfkb!+,loc~cyt,Ser32_Ser36~pp),\ + IkBa(Nfkb!+,loc~cyt,Ser32_Ser36~0) + Species IkBa_cyt_free IkBa(Nfkb,loc~cyt,Ser32_Ser36~pp),\ + IkBa(Nfkb,loc~cyt,Ser32_Ser36~0) + Species IkBa_p_cyt IkBa(Nfkb,loc~cyt,Ser32_Ser36~pp),\ + IkBa(Nfkb!+,loc~cyt,Ser32_Ser36~pp) + Species IkBa_nuc_free IkBa(Nfkb,loc~nuc,Ser32_Ser36~0) # used in rate expression(s) + Species A20 A20() # used in rate expression(s) + Species IKK_a IKK(st~a) + Species IkBa_mRNA IkBa_mRNA() # used in rate expression(s) + Species A20_mRNA A20_mRNA() # used in rate expression(s) + + + ## IRF3 module ------------------------------------------------------------------------ + + Species IRF3_total IRF3() + Species IRF3_p IRF3(Ser396~p) # used in rate expression(s) + + + ## IFNb module ------------------------------------------------------------------------ + + Species IFNAR_total IFNAR() + Species IFNAR_a IFNAR(Ifnb!+) # used in rate expression(s) + Species IFNb_ext IFNb(loc~ext) + Species IFNb_cyt IFNb(loc~cyt) + Species IFNAR_mRNA IFNAR_mRNA() # used in rate expression(s) + Species IFNb_mRNA IFNb_mRNA() # used in rate expression(s) + + + ## STAT1/2 module --------------------------------------------------------------------- + + Molecules STAT1_total STAT1() + Molecules STAT2_total STAT2() + Molecules STAT1_p STAT1(Tyr701~p) + Species STAT2_p STAT2(Tyr690~p) + Species STAT1_u STAT1(Stat2,Tyr701~0) # used in rate expression(s) + Species STAT2_u STAT2(Stat1,Tyr690~0) # used in rate expression(s) + Molecules STAT12_dimer STAT1(Stat2!1,Tyr701~p).STAT2(Stat1!1,Tyr690~p) # used in rate expression(s) + Species STAT1_mRNA STAT1_mRNA() # used in rate expression(s) + Species STAT2_mRNA STAT2_mRNA() # used in rate expression(s) + +end observables + + + +begin reaction rules + + ### === Poly(I:C) MODULE ============================================================== + + # (1) poly(I:C) enters the cell + PolyIC(Rigi,loc~ext) -> PolyIC(Rigi,loc~cyt) i_Polyic + + # (2) RIG-I binds poly(I:C) + RIGI(Mavs,Polyic) + PolyIC(Rigi,loc~cyt) -> \ + RIGI(Mavs,Polyic!1).PolyIC(Rigi!1,loc~cyt) b_Rigi_Polyic + + # (3) poly(I:C)-bound RIG-I is degraded, freeing poly(I:C) + RIGI(Mavs,Polyic!1).PolyIC(Rigi!1,loc~cyt) -> \ + PolyIC(Rigi,loc~cyt) sg_Rigi + + # (4) the poly(I:C):RIG-I complex binds MAVS, forming a ternary complex + RIGI(Mavs,Polyic!+) + MAVS(Rigi) -> \ + RIGI(Mavs!1,Polyic!+).MAVS(Rigi!1) b_RigiPolyic_Mavs + + # (5) RIG-I bound to both poly(I:C) and MAVS is degraded, protomers dissociate + PolyIC(Rigi!1,loc~cyt).RIGI(Mavs!2,Polyic!1).MAVS(Rigi!2) -> \ + PolyIC(Rigi,loc~cyt) + MAVS(Rigi) sg_Rigi + + # (6) poly(I:C) activates PKR + PolyIC(loc~cyt) + PKR(st~i) -> \ + PolyIC(loc~cyt) + PKR(st~a) a_Pkr_by_Polyic + + # (7) PKR inactivation + PKR(st~a) -> PKR(st~i) d_Pkr + + # (8) poly(I:C) activates OAS3 + PolyIC(loc~cyt) + OAS3(st~i) -> \ + PolyIC(loc~cyt) + OAS3(st~a) a_Oas3_by_Polyic + + # (9) OAS3 inactivation + OAS3(st~a) -> OAS3(st~i) d_Oas3 + + # (10A) active PKR phosphorylates eIF2a + PKR(st~a) + eIF2a(st~0) -> \ + PKR(st~a) + eIF2a(st~p) p_Eif2a_by_Pkr + + # (10B) eIF2a basal phosphorylation (=> activation of its inhibitory function) + eIF2a(st~0) -> eIF2a(st~p) p_Eif2a_basal + + # (11) eIF2a dephosphorylation + eIF2a(st~p) -> eIF2a(st~0) q_Eif2a + + # (12) active OAS3 activates RNaseL + OAS3(st~a) + RNaseL(st~i) -> \ + OAS3(st~a) + RNaseL(st~a) a_Rnasel_by_Oas3 + + # (13) RNase L deactivation + RNaseL(st~a) -> RNaseL(st~i) d_Rnasel + + # (14, 15, 16, 17) transcription of IFN-stimulated genes (ISGs) + 0 -> RIGI_mRNA() tg_Isg_mrna*(ma_Rigi_gene_basal + a_gene_by_Stat12dim*STAT12_dimer) \ + /(ma_Rigi_gene_basal + a_gene_by_Stat12dim*STAT12_dimer + 1) + # + 0 -> PKR_mRNA() h_Pkr_gene*tg_Isg_mrna*(ma_Pkr_Oas3_gene_basal + a_gene_by_Stat12dim*STAT12_dimer) \ + /(ma_Pkr_Oas3_gene_basal + a_gene_by_Stat12dim*STAT12_dimer + 1) + # + 0 -> OAS3_mRNA() tg_Isg_mrna*(ma_Pkr_Oas3_gene_basal + a_gene_by_Stat12dim*STAT12_dimer) \ + /(ma_Pkr_Oas3_gene_basal + a_gene_by_Stat12dim*STAT12_dimer + 1) + # + 0 -> RNaseL_mRNA() h_Rnasel_gene*tg_Isg_mrna*(ma_Rnasel_gene_basal + a_gene_by_Stat12dim*STAT12_dimer) \ + /(ma_Rnasel_gene_basal + a_gene_by_Stat12dim*STAT12_dimer + 1) + + # (18, 19, 20, 21) mRNA degradation + RIGI_mRNA() -> 0 tg_Isg_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + PKR_mRNA() -> 0 tg_Isg_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + OAS3_mRNA() -> 0 tg_Isg_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + RNaseL_mRNA() -> 0 tg_Isg_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + + # (22, 23, 24, 25) protein synthesis + RIGI_mRNA() -> RIGI_mRNA() + RIGI(Mavs,Polyic) sg_Rigi + PKR_mRNA() -> PKR_mRNA() + PKR(st~i) sg_Pkr + OAS3_mRNA() -> OAS3_mRNA() + OAS3(st~i) sg_Oas3 + RNaseL_mRNA() -> RNaseL_mRNA() + RNaseL(st~i) sg_Rnasel + + # (26, 27, 28, 29) protein degradation + RIGI(Mavs,Polyic) -> 0 sg_Rigi + PKR() -> 0 sg_Pkr + OAS3() -> 0 sg_Oas3 + RNaseL() -> 0 sg_Rnasel + + + + ### === NF-kB MODULE ================================================================== + + ## --- activity of TAK1 ----------------------------------------------------- + + # (1A) poly(I:C):RIG-I:MAVS complex activates TAK1 + RIGI(Mavs!1,Polyic!+).MAVS(Rigi!1) + TAK1(st~i) -> \ + RIGI(Mavs!1,Polyic!+).MAVS(Rigi!1) + TAK1(st~a) a_Tak1_by_RigiMavs + + # (1B) TNFa activates TAK1 + TNFa() + TAK1(st~i) -> \ + TNFa() + TAK1(st~a) a_Tak1_by_Tnfa + + # (2) active TAK1 is deactivated + TAK1(st~a) -> TAK1(st~i) d_Tak1 + + + ## --- activity of IKK ------------------------------------------------------ + + # (3) active TAK1 activates IKK + IKK(st~n) -> IKK(st~a) a_Ikk*TAK1_a*TAK1_a + + # (4) active IKK is deactivated, with a contribution from A20 + IKK(st~a) -> IKK(st~i) d_Ikk_1/d_Ikk_2*(d_Ikk_2 + A20) + + # (5, 6) inactive IKK transitions to the neutral state + IKK(st~i) -> IKK(st~ii) d_Ikk_3 + IKK(st~ii) -> IKK(st~n) d_Ikk_3 + + + ## --- formation of the IkBa:NF-kB complex ---------------------------------- + + # (7) IkBa and NF-kB form a complex in the cytoplasm + IkBa(Nfkb,loc~cyt,Ser32_Ser36~0) + NFkB(Ikba,loc~cyt) -> \ + IkBa(Nfkb!1,loc~cyt,Ser32_Ser36~0).NFkB(Ikba!1,loc~cyt) b_Nfkb_Ikba_cyt + + # (8) IkBa and NF-kB form a complex in the nucleus + IkBa(Nfkb,loc~nuc,Ser32_Ser36~0) + NFkB(Ikba,loc~nuc) -> \ + IkBa(Nfkb!1,loc~nuc,Ser32_Ser36~0).NFkB(Ikba!1,loc~nuc) b_Nfkb_Ikba_nuc + + + ## --- phosphorylation of IkBa ---------------------------------------------- + + # (9) active IKK phosphorylates unbound IkBa + IKK(st~a) + IkBa(Nfkb,loc~cyt,Ser32_Ser36~0) -> \ + IKK(st~a) + IkBa(Nfkb,loc~cyt,Ser32_Ser36~pp) p_Ikba_by_Ikk + + # (10) active IKK phosphorylates IkBa complexed with NF-kB + IKK(st~a) + IkBa(Nfkb!+,loc~cyt,Ser32_Ser36~0) -> \ + IKK(st~a) + IkBa(Nfkb!+,loc~cyt,Ser32_Ser36~pp) p_Ikba_by_Ikk + + + ## --- degradation of IkBa -------------------------------------------------- + + # (11) phosphorylated unbound IkBa is degraded (in the cytoplasm) + IkBa(Nfkb,loc~cyt,Ser32_Ser36~pp) -> 0 g_Ikba_p_any + + # (12) phosphorylated NF-kB-bound IkBa is degraded (in the cytoplasm, releasing free NF-kB) + IkBa(Nfkb!1,loc~cyt,Ser32_Ser36~pp).NFkB(Ikba!1,loc~cyt) -> \ + NFkB(Ikba,loc~cyt) g_Ikba_p_any + + # (13) nonphosphorylated nonbound IkBa is degraded (in the cytoplasm) + IkBa(Nfkb,loc~cyt,Ser32_Ser36~0) -> 0 g_Ikba_u_free + + # (14) nonphosphorylated NF-kB-bound IkBa is degraded (in the cytoplasm) + IkBa(Nfkb!1,loc~cyt,Ser32_Ser36~0).NFkB(Ikba!1,loc~cyt) -> \ + NFkB(Ikba,loc~cyt) g_Ikba_u_with_Nfkb + + + ## --- nucleocytoplasmic shuttling of NF-kB, IkBa, and IkBa:NF-kB ----------- + + # (15) nonbound NF-kB translocates from the cytoplasm to the nucleus + NFkB(Ikba,loc~cyt) -> NFkB(Ikba,loc~nuc) i_Nfkb + + # (16) NF-kB bound to nonphosphorylated IkBa translocates from the nucleus to the cytoplasm + IkBa(Nfkb!1,loc~nuc,Ser32_Ser36~0).NFkB(Ikba!1,loc~nuc) -> \ + IkBa(Nfkb!1,loc~cyt,Ser32_Ser36~0).NFkB(Ikba!1,loc~cyt) e_Nfkb_with_Ikba + + # (17, 18) nonbound nonphosphorylated IkBa translocates between the cytoplasm and the nucleus + IkBa(Nfkb,loc~cyt,Ser32_Ser36~0) <-> \ + IkBa(Nfkb,loc~nuc,Ser32_Ser36~0) i_Ikba, e_Ikba + + + ## --- gene expression and degradation of transcripts ----------------------- + + # (19, 20) IkBa gene transcription and transcript degradation + 0 -> IkBa_mRNA() tg_Ikba_mrna* a_Ikba_gene_by_Nfkb*NFkB_nuc_free \ + /(a_Ikba_gene_by_Nfkb*NFkB_nuc_free + d_Ikba_gene_by_Ikba*IkBa_nuc_free + EPSILON) + IkBa_mRNA() -> 0 tg_Ikba_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + + # (21, 22) A20 gene transcription and transcript degradation + 0 -> A20_mRNA() tg_A20_mrna* a_A20_gene_by_Nfkb*NFkB_nuc_free \ + /(a_A20_gene_by_Nfkb*NFkB_nuc_free + d_A20_gene_by_Ikba*IkBa_nuc_free + EPSILON) + A20_mRNA() -> 0 tg_A20_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + + + ## --- protein synthesis and degradation ------------------------------------ + + # (23) IkBa protein: synthesis + IkBa_mRNA() -> IkBa_mRNA() + IkBa(Nfkb,loc~cyt,Ser32_Ser36~0) s_Ikba*m_Eif2a/(m_Eif2a + eIF2a_p) + # (Degradation of IkBa protein is a part of signal transduction defined above; see rules 11--14.) + + # (24, 25) A20 protein: synthesis and degradation + A20_mRNA() -> A20_mRNA() + A20() sg_A20*m_Eif2a/(m_Eif2a + eIF2a_p) + A20() -> 0 sg_A20 + + + + ### === IRF3 module =================================================================== + + # (1) poly(I:C):RIG-I:MAVS complex activates (phosphorylates) TBK1 + RIGI(Mavs!+,Polyic!+) + TBK1(Ser172~0) -> \ + RIGI(Mavs!+,Polyic!+) + TBK1(Ser172~p) p_Tbk1_by_RigiMavs + + # (2A) TBK1 is deactivated (dephosphorylated) + TBK1(Ser172~p) -> TBK1(Ser172~0) q_Tbk1 + + # (2B) A20 (additionally) deactivates TBK1 + A20() + TBK1(Ser172~p) -> \ + A20() + TBK1(Ser172~0) q_Tbk1_by_A20 + + # (3) TBK1 activates (phosphorylates) IRF3 + TBK1(Ser172~p) + IRF3(Ser396~0) -> \ + TBK1(Ser172~p) + IRF3(Ser396~p) p_Irf3_by_Tbk1 + + # (4) IRF3 is deactivated (dephosphorylated) + IRF3(Ser396~p) -> IRF3(Ser396~0) q_Irf3 + + + + ### === IFNb module =================================================================== + + # (1) IFNb binds IFNAR (autocrine activation) + IFNAR(Ifnb) + IFNb(Ifnar,loc~cyt) -> \ + IFNAR(Ifnb!1).IFNb(Ifnar!1,loc~ext) b_Ifnar_Ifnb_cyt + + # (2) IFNb binds IFNAR (external stimulation) + IFNAR(Ifnb) + IFNb(Ifnar,loc~ext) -> \ + IFNAR(Ifnb!1).IFNb(Ifnar!1,loc~ext) b_Ifnar_Ifnb_ext + + # (3, 4) IFNAR1 gene transcription and transcript degradation + 0 <-> IFNAR_mRNA() tg_Ifnar_mrna, tg_Ifnar_mrna*(m_Rnasel_Ifnar_mrna + RNaseL_a) \ + / m_Rnasel_Ifnar_mrna + + # (5, 6, 7) IFNAR protein: synthesis and degradation + IFNAR_mRNA() -> IFNAR_mRNA() + IFNAR(Ifnb) s_Ifnar*m_Eif2a/(m_Eif2a + eIF2a_p) + IFNAR(Ifnb) -> 0 g_Ifnar + IFNAR(Ifnb!+) -> 0 g_Ifnar_w_Ifnb + + # (8, 9): IFNb gene transcription and transcript degradation + 0 -> IFNb_mRNA() tg_Ifnb_mrna*NFkB_nuc_free*IRF3_p/(m_Ifnb_mrna_NfkbIrf3 + NFkB_nuc_free*IRF3_p) + IFNb_mRNA() -> 0 tg_Ifnb_mrna + + # (10, 11): IFNb protein: synthesis and degradation + IFNb_mRNA() -> IFNb_mRNA() + IFNb(Ifnar,loc~cyt) sg_Ifnb + IFNb(Ifnar,loc~cyt) -> 0 sg_Ifnb + + + + ### === STAT1/2 module ================================================================ + + # (1, 3; 2, 4) STAT1 and STAT2: phosphorylation and dephosphorylation + STAT1(Stat2,Tyr701~0) <-> STAT1(Stat2,Tyr701~p) p_Stat*IFNAR_a*m_Ifnar_a/(m_Ifnar_a + STAT1_u), q_Stat + STAT2(Stat1,Tyr690~0) <-> STAT2(Stat1,Tyr690~p) p_Stat*IFNAR_a*m_Ifnar_a/(m_Ifnar_a + STAT2_u), q_Stat + + # (5) p-STAT1 and p-STAT2 heterodimerize + STAT1(Stat2,Tyr701~p) + STAT2(Stat1,Tyr690~p) -> \ + STAT1(Stat2!1,Tyr701~p).STAT2(Stat1!1,Tyr690~p) b_Stat1_Stat2 + + # (6) the p-STAT1:p-STAT2 dimer gets dephosphorylated and then immediately dissociates + STAT1(Stat2!1,Tyr701~p).STAT2(Stat1!1,Tyr690~p) -> \ + STAT1(Stat2,Tyr701~0) + STAT2(Stat1,Tyr690~0) qu_Stat1_Stat2 + + # (7, 8; 9, 10) STAT1 gene and STAT2 gene transcription and transcript degradation + 0 -> STAT1_mRNA() tg_Stat_mrna*(ma_Stat1_gene_basal + a_gene_by_Stat12dim*STAT12_dimer) \ + /(ma_Stat1_gene_basal + a_gene_by_Stat12dim*STAT12_dimer + 1) + # + 0 -> STAT2_mRNA() tg_Stat_mrna*(ma_Stat2_gene_basal + a_gene_by_Stat12dim*STAT12_dimer) \ + /(ma_Stat2_gene_basal + a_gene_by_Stat12dim*STAT12_dimer + 1) + # + STAT1_mRNA() -> 0 tg_Stat_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + STAT2_mRNA() -> 0 tg_Stat_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + + # (11, 12; 13, 14; 15) STAT1 protein and STAT2 protein: synthesis and degradation + STAT1_mRNA() -> STAT1_mRNA() + STAT1(Stat2,Tyr701~0) sg_Stat + STAT2_mRNA() -> STAT2_mRNA() + STAT2(Stat1,Tyr690~0) sg_Stat + STAT1(Stat2) -> 0 sg_Stat + STAT2(Stat1) -> 0 sg_Stat + STAT1(Stat2!1).STAT2(Stat1!1) -> 0 sg_Stat + +end reaction rules + +end model + + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + + +begin actions + + generate_network({overwrite=>1}); + + + ## Export: + # + #writeSBML({}); + #writeMfile({}); + + + ## Settings for different cell types (when all commented out, WT cells are simulated): + # + # # for RNase L KO cells: + # setParameter("h_Rnasel_gene",0); + # + # # for PKR KO: + # setParameter("h_Pkr_gene",0); + + + ## Simulation: + # + # (1 of 3) equilibration (first phase duration is 30 days, second phase ends before stimulation): + simulate_ode({t_end=>3600*24*30,n_steps=>1000}); + simulate_ode({continue=>0,t_start=>0,t_end=>100000-24*3600,n_steps=>24*60}); + # + # (2 of 3) prestimulation with IFNb (24 h before stimulation): + setConcentration("IFNb(Ifnar,loc~ext)","n_IFNb_stimulation"); + simulate_ode({continue=>1,t_start=>100000-24*3600,t_end=>100000,n_steps=>24*60}); + # + # (3 of 3) stimulation with poly(I:C): + setConcentration("PolyIC(Rigi,loc~ext)","n_polyIC_stimulation"); + simulate_ode({continue=>1,t_start=>100000, t_end=>100000+10*3600,n_steps=>24*60}); + +end actions \ No newline at end of file diff --git a/Published/innateimmunity/metadata.yaml b/Published/innateimmunity/metadata.yaml new file mode 100644 index 00000000..41efafaf --- /dev/null +++ b/Published/innateimmunity/metadata.yaml @@ -0,0 +1,22 @@ +id: "innate_immunity" +name: "Korwek 2023" +description: "Immune response" +tags: ["published", "immunology", "innate", "immunity", "polyic", "rigi", "mavs", "pkr", "oas3", "rnasel", "eif2a", "rigi_mrna"] +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-web-simulator" + source_path: "published-models/immune-signaling/innate_immunity.bngl" +playground: + visible: true + gallery_category: "immunology" + featured: false + difficulty: "intermediate" diff --git a/Published/mapkdimers/README.md b/Published/mapkdimers/README.md new file mode 100644 index 00000000..110f6416 --- /dev/null +++ b/Published/mapkdimers/README.md @@ -0,0 +1,21 @@ +# MAPK Dimers + +MAPK dimerization + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- mapk-dimers.bngl + +## Tags + +published, mapk, dimers, ste5, ste11, ste7, fus3 diff --git a/Published/mapkdimers/mapk-dimers.bngl b/Published/mapkdimers/mapk-dimers.bngl new file mode 100644 index 00000000..e658252a --- /dev/null +++ b/Published/mapkdimers/mapk-dimers.bngl @@ -0,0 +1,52 @@ +begin parameters + S5_0 100 +S11_0 100 +S7_0 100 +F3_0 100 +kp 1 +km 1 +end parameters + +begin molecules +Ste5(d,s1,s2,s3) +Ste11(s1,Y~U~P) +Ste7(s2,Y~U~P) +Fus3(s3,Y~U~P) +end molecules + +begin species +Ste5(d,s1,s2,s3) S5_0 +Ste11(s1,Y~U) S11_0 +Ste7(s2,Y~U) S7_0 +Fus3(s3,Y~U) F3_0 +end species + +begin reaction rules + +Ste5(d) + Ste5(d) <-> Ste5(d!1).Ste5(d!1) kp,km +Ste5(s1) + Ste11(s1) <-> Ste5(s1!1).Ste11(s1!1) kp,km +Ste5(s2) + Ste7(s2) <-> Ste5(s2!2).Ste7(s2!2) kp,km +Ste5(s3) + Fus3(s3) <-> Ste5(s3!3).Fus3(s3!3) kp,km + +Ste5(d!0,s1!1).Ste11(s1!1,Y~U) -> Ste5(d!0,s1!1).Ste11(s1!1,Y~P) kp +Ste5(d!0,s1!1,s2!2).Ste11(s1!1,Y~P).Ste7(s2!2,Y~U) -> Ste5(d!0,s1!1,s2!2).Ste11(s1!1,Y~P).Ste7(s2!2,Y~P) kp +Ste5(d!0,s2!2,s3!3).Ste7(s2!2,Y~P).Fus3(s3!3,Y~U) -> Ste5(d!0,s2!2,s3!3).Ste7(s2!2,Y~P).Fus3(s3!3,Y~P) kp + +Ste11(Y~P) -> Ste11(Y~U) km +Ste7(Y~P) -> Ste7(Y~U) km +Fus3(Y~P) -> Fus3(Y~U) km + +end reaction rules + +begin observables +Molecules Fus3_P_total Fus3(Y~P) +Molecules Fus3_P_cytosol Fus3(s3,Y~P) +Molecules Fus3_P_aggregate Fus3(s3!3,Y~P) +Molecules Fus3_P_aggregate_Ste5 Ste5(s3!3).Fus3(s3!3,Y~P) +Molecules Fus3_P_aggregate_Ste7 Ste5(s2!2).Ste7(s2!2,Y~P!4).Fus3(s3!4,Y~P) + +end observables + +generate_network(); +writeSBML(); +simulate_ode({t_end=>50,n_steps=>50}); \ No newline at end of file diff --git a/Published/mapkdimers/metadata.yaml b/Published/mapkdimers/metadata.yaml new file mode 100644 index 00000000..442ea85b --- /dev/null +++ b/Published/mapkdimers/metadata.yaml @@ -0,0 +1,22 @@ +id: "mapk-dimers" +name: "MAPK Dimers" +description: "MAPK dimerization" +tags: ["published", "mapk", "dimers", "ste5", "ste11", "ste7", "fus3"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/complex-models/mapk-dimers.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/mapkmonomers/README.md b/Published/mapkmonomers/README.md new file mode 100644 index 00000000..aa8fff97 --- /dev/null +++ b/Published/mapkmonomers/README.md @@ -0,0 +1,21 @@ +# MAPK Monomers + +MAPK cascade + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- mapk-monomers.bngl + +## Tags + +published, mapk, monomers, ste5, ste11, ste7, fus3 diff --git a/Published/mapkmonomers/mapk-monomers.bngl b/Published/mapkmonomers/mapk-monomers.bngl new file mode 100644 index 00000000..54018e86 --- /dev/null +++ b/Published/mapkmonomers/mapk-monomers.bngl @@ -0,0 +1,51 @@ +begin parameters + S5_0 100 +S11_0 100 +S7_0 100 +F3_0 100 +kp 1 +km 1 +end parameters + +begin molecules +Ste5(s1,s2,s3) +Ste11(s1,Y~U~P) +Ste7(s2,Y~U~P) +Fus3(s3,Y~U~P) +end molecules + +begin species +Ste5(s1,s2,s3) S5_0 +Ste11(s1,Y~U) S11_0 +Ste7(s2,Y~U) S7_0 +Fus3(s3,Y~U) F3_0 +end species + +begin reaction rules + +Ste5(s1) + Ste11(s1) <-> Ste5(s1!1).Ste11(s1!1) kp,km +Ste5(s2) + Ste7(s2) <-> Ste5(s2!2).Ste7(s2!2) kp,km +Ste5(s3) + Fus3(s3) <-> Ste5(s3!3).Fus3(s3!3) kp,km + +Ste5(s1!1).Ste11(s1!1,Y~U) -> Ste5(s1!1).Ste11(s1!1,Y~P) kp +Ste5(s1!1,s2!2).Ste11(s1!1,Y~P).Ste7(s2!2,Y~U) -> Ste5(s1!1,s2!2).Ste11(s1!1,Y~P).Ste7(s2!2,Y~P) kp +Ste5(s2!2,s3!3).Ste7(s2!2,Y~P).Fus3(s3!3,Y~U) -> Ste5(s2!2,s3!3).Ste7(s2!2,Y~P).Fus3(s3!3,Y~P) kp + +Ste11(Y~P) -> Ste11(Y~U) km +Ste7(Y~P) -> Ste7(Y~U) km +Fus3(Y~P) -> Fus3(Y~U) km + +end reaction rules + +begin observables +Molecules Fus3_P_total Fus3(Y~P) +Molecules Fus3_P_cytosol Fus3(s3,Y~P) +Molecules Fus3_P_aggregate Fus3(s3!3,Y~P) +Molecules Fus3_P_aggregate_Ste5 Ste5(s3!3).Fus3(s3!3,Y~P) +Molecules Fus3_P_aggregate_Ste7 Ste5(s2!2).Ste7(s2!2,Y~P!4).Fus3(s3!4,Y~P) + +end observables + +generate_network(); +writeSBML(); +simulate_ode({t_end=>50,n_steps=>50}); \ No newline at end of file diff --git a/Published/mapkmonomers/metadata.yaml b/Published/mapkmonomers/metadata.yaml new file mode 100644 index 00000000..c0cd06fe --- /dev/null +++ b/Published/mapkmonomers/metadata.yaml @@ -0,0 +1,22 @@ +id: "mapk-monomers" +name: "MAPK Monomers" +description: "MAPK cascade" +tags: ["published", "mapk", "monomers", "ste5", "ste11", "ste7", "fus3"] +category: "signaling" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/complex-models/mapk-monomers.bngl" +playground: + visible: false + gallery_category: "signaling" + featured: false + difficulty: "advanced" diff --git a/Published/notch/README.md b/Published/notch/README.md new file mode 100644 index 00000000..9c12f876 --- /dev/null +++ b/Published/notch/README.md @@ -0,0 +1,21 @@ +# Notch + +Notch signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- notch.bngl + +## Tags + +published, notch, icn, ofut1, fringe, furin, dsl, csl, maml diff --git a/Published/notch/metadata.yaml b/Published/notch/metadata.yaml new file mode 100644 index 00000000..df047f78 --- /dev/null +++ b/Published/notch/metadata.yaml @@ -0,0 +1,22 @@ +id: "notch" +name: "Notch" +description: "Notch signaling" +tags: ["published", "notch", "icn", "ofut1", "fringe", "furin", "dsl", "csl", "maml"] +category: "regulation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/cell-regulation/notch.bngl" +playground: + visible: false + gallery_category: "regulation" + featured: false + difficulty: "advanced" diff --git a/Published/notch/notch.bngl b/Published/notch/notch.bngl new file mode 100644 index 00000000..217961ff --- /dev/null +++ b/Published/notch/notch.bngl @@ -0,0 +1,90 @@ +# This model follows Figure 2 of Grabner et al. (Nat. Rev. Cancer 6:347-359). +# It model describes formation of a signaling complex in a nucleus. All signaling steps are very sketchy, but +# it's easy to add additional biomolecules and their components. The model includes several compartments but +# does not consider any spatial effects. It predicts translocation of ICN to nucleus and formation of ICN-CSL-MAML complex. + + +begin parameters # These are unchanged during simulation: initial concentrations and rate constants +ICN_tot 100 +Notch_tot 100 +Fringe_tot 100 +Furin_tot 100 +OFUT1_tot 100 +DSL_tot 100 + +CSL_tot 100 +MAML_tot 100 + +kp1 0.1 +km1 0.1 +end parameters + +begin molecules +Notch(location~ER~G~M,DSLbind,Ibind) +ICN(location~ER~G~M~N,Nbind,CSLbind,MAMLbind) +OFUT1() +Fringe() +Furin() +DSL(Nbind) +CSL(Ibind,MAMLbind) +MAML(Cbind,Ibind) +end molecules + + +begin species # Species that exist before simulation + +# I divide Notch receptor into 2 molecules: Notch and ICN. Both have location attribute and several binding sites. + +Notch(location~ER,DSLbind,Ibind) Notch_tot # Initial concentration before simulation + + +# Translocation, fucosalisation, cleavage and heterodimerization +# are lumped into translocation steps. These details can be restored +# if any need arises, say to include Fringe and Furin explicitely. + +ICN(location~ER,Nbind,CSLbind,MAMLbind) ICN_tot + +OFUT1() OFUT1_tot +Fringe() Fringe_tot +Furin() Furin_tot +DSL(Nbind) DSL_tot + +CSL(Ibind,MAMLbind) CSL_tot +MAML(Cbind,Ibind) MAML_tot + +end species + +begin reaction rules + +1 Fucosylation and translocation from ER to Golgi (G):\ +Notch(location~ER,Ibind) + ICN(location~ER,Nbind,CSLbind) + OFUT1 -> Notch(location~G,Ibind!1).ICN(location~G,Nbind!1,CSLbind) + OFUT1 kp1 + +2 Glycosylation, S1 cleavage, translocation from Golgi to Membrane (M) and heterodimerization:\ +Notch(location~G).ICN(location~G,CSLbind) + Furin + Fringe -> Notch(location~M).ICN(location~M,CSLbind) + Furin + Fringe kp1 + +3 DSL binding:\ +Notch(location~M,DSLbind) + DSL(Nbind) <-> Notch(location~M,DSLbind!1).DSL(Nbind!1) kp1,km1 + +4 S2, S3 cleavage, ICN dissociation and translocation to Nucleus (N):\ +Notch(location~M,DSLbind!2,Ibind!3).ICN(location~M,Nbind!3) -> Notch(location~M,DSLbind!2,Ibind) + ICN(location~N,Nbind) kp1 + +5 Binding CSL to ICN:\ +ICN(location~N,CSLbind,MAMLbind) + CSL(Ibind,MAMLbind) <-> ICN(location~N,CSLbind!1,MAMLbind).CSL(Ibind!1,MAMLbind) kp1,km1 + +5 Binding MAML to CSL-ICN:\ +ICN(location~N,CSLbind!1,MAMLbind).CSL(Ibind!1,MAMLbind) + MAML(Cbind,Ibind) <-> \ +ICN(location~N,CSLbind!1,MAMLbind!2).CSL(Ibind!1,MAMLbind!3).MAML(Cbind!3,Ibind!2) kp1,km1 + +end reaction rules + + + +begin observables + +Notch_ICN_Complex Notch.ICN +Nucleus_complex ICN.CSL.MAML + +end observables + + +generate_network({overwrite=>1}); \ No newline at end of file diff --git a/Published/tlbr/README.md b/Published/tlbr/README.md new file mode 100644 index 00000000..12fc394b --- /dev/null +++ b/Published/tlbr/README.md @@ -0,0 +1,21 @@ +# TLBR Tutorial + +Ligand binding + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- tlbr.bngl + +## Tags + +published, immunology, tlbr, l, r, simulate_rm diff --git a/Published/tlbr/metadata.yaml b/Published/tlbr/metadata.yaml new file mode 100644 index 00000000..51725229 --- /dev/null +++ b/Published/tlbr/metadata.yaml @@ -0,0 +1,22 @@ +id: "tlbr" +name: "TLBR Tutorial" +description: "Ligand binding" +tags: ["published", "immunology", "tlbr", "l", "r", "simulate_rm"] +category: "immunology" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/immune-signaling/tlbr.bngl" +playground: + visible: false + gallery_category: "immunology" + featured: false + difficulty: "advanced" diff --git a/Published/tlbr/tlbr.bngl b/Published/tlbr/tlbr.bngl new file mode 100644 index 00000000..d0544500 --- /dev/null +++ b/Published/tlbr/tlbr.bngl @@ -0,0 +1,42 @@ +# Trivalent ligand - bivalent receptor +# Used to perform scaling and validation tests +# No rings +# Colvin et al., (2009) Bioinformatics + +begin parameters +t_end 1000 +n_steps 1000 + +Fx 1.0 + +Lig_tot 4200/Fx +Rec_tot 300/Fx +kp1 Fx*3.0e-07 +km1 0.01 +kp2 Fx*3.0e-03 +km2 0.01 +end parameters + +begin molecule types +L(r,r,r) +R(l,l) +end molecule types + +begin species +L(r,r,r) Lig_tot +R(l,l) Rec_tot +end species + +begin reaction rules +L(r,r,r) + R(l) <-> L(r!1,r,r).R(l!1) kp1,km1 +L(r,r,r!+) + R(l) <-> L(r!1,r,r!+).R(l!1) kp2,km2 +L(r,r!+,r!+) + R(l) <-> L(r!1,r!+,r!+).R(l!1) kp2,km2 +end reaction rules + +begin observables +Species Ligfree L(r,r,r) +Species Ligbnd1 L(r!+,r,r) +Species Ligbnd2 L(r!+,r!+,r) +Molecules Ligbnd3 L(r!+,r!+,r!+) +end observables +simulate_rm({t_end=>t_end,n_steps=>n_steps}); \ No newline at end of file diff --git a/Published/vilar2002/README.md b/Published/vilar2002/README.md new file mode 100644 index 00000000..5e99b9d4 --- /dev/null +++ b/Published/vilar2002/README.md @@ -0,0 +1,21 @@ +# Vilar 2002 + +Genetic oscillator + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- vilar_2002.bngl + +## Tags + +published, vilar, 2002, dna, a, r diff --git a/Published/vilar2002/metadata.yaml b/Published/vilar2002/metadata.yaml new file mode 100644 index 00000000..519238f6 --- /dev/null +++ b/Published/vilar2002/metadata.yaml @@ -0,0 +1,22 @@ +id: "vilar_2002" +name: "Vilar 2002" +description: "Genetic oscillator" +tags: ["published", "vilar", "2002", "dna", "a", "r"] +category: "regulation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/cell-regulation/vilar_2002.bngl" +playground: + visible: false + gallery_category: "regulation" + featured: false + difficulty: "advanced" diff --git a/Published/vilar2002/vilar_2002.bngl b/Published/vilar2002/vilar_2002.bngl new file mode 100644 index 00000000..5b6f7602 --- /dev/null +++ b/Published/vilar2002/vilar_2002.bngl @@ -0,0 +1,73 @@ +begin model +begin parameters + k1 0.01 + k2 0.2 + k3 0.5 + k4 1 + k5 2 + k6 10 + k7 50 + k8 100 + k9 500 + k10 5 + +end parameters +begin molecular types # define molecules present in the simulation + + DNA(p,r) + AmRNA + RmRNA + A(b) + R(a) + C + trash + +end molecular types +begin seed species # initial conditions + + DNA(p,r) 1 + AmRNA 0 + RmRNA 0 + A(b) 0 + R(a) 0 + C 0 + trash 0 + +end seed species +begin observables # model outputs + + Molecules A A + Molecules R R + +end observables +begin reaction rules + + 1 DNA(p) -> DNA(p) + AmRNA k7 + DNA(r) -> DNA(r) + RmRNA k1 + DNA(p!1).A(b!1) -> DNA(p!1).A(b!1) + AmRNA k9 + DNA(r!1).A(b!1) -> DNA(r!1).A(b!1) + RmRNA k7 + DNA(p,r) + A(b) <-> DNA(p!1,r).A(b!1) k4, k7 + DNA(p,r) + A(b) <-> DNA(p,r!1).A(b!1) k4, k8 + AmRNA ->AmRNA + A(b) k7 #if missing AmRNA on product side, result is off by order of magnitude + RmRNA -> RmRNA + R(a) k10 #if missing RmRNA on product side, result is off by order of magnitude + AmRNA -> trash k6 + RmRNA -> trash k3 + A(b) -> trash k4 + R(a) -> trash k2 + A(b) + R(a) -> C k5 + C -> R(a) k4 + +end reaction rules +end model + +## model ACTIONS +# generate network of all species and reactions +generate_network({overwrite=>1,max_iter=>12,max_agg=>12}); + +saveConcentrations(); # Save concentrations (in memory) for later use. +simulate_ode({suffix=>"ode",t_start=>0,t_end=>400,n_steps=>1200}); + +# resetConcentrations(); # reset concentrations to last saved values. +# simulate_ssa({suffix=>ssa,t_start=>0,t_end=>12,n_steps=>120}); + +writeSBML(); # Output file as SBML. \ No newline at end of file diff --git a/Published/vilar2002b/README.md b/Published/vilar2002b/README.md new file mode 100644 index 00000000..916cfc3f --- /dev/null +++ b/Published/vilar2002b/README.md @@ -0,0 +1,21 @@ +# Vilar 2002b + +Gene oscillator + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- vilar_2002b.bngl + +## Tags + +published, vilar, 2002b, dna, a, r diff --git a/Published/vilar2002b/metadata.yaml b/Published/vilar2002b/metadata.yaml new file mode 100644 index 00000000..b18425c7 --- /dev/null +++ b/Published/vilar2002b/metadata.yaml @@ -0,0 +1,22 @@ +id: "vilar_2002b" +name: "Vilar 2002b" +description: "Gene oscillator" +tags: ["published", "vilar", "2002b", "dna", "a", "r"] +category: "regulation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/cell-regulation/vilar_2002b.bngl" +playground: + visible: true + gallery_category: "regulation" + featured: false + difficulty: "intermediate" diff --git a/Published/vilar2002b/vilar_2002b.bngl b/Published/vilar2002b/vilar_2002b.bngl new file mode 100644 index 00000000..74b3e47e --- /dev/null +++ b/Published/vilar2002b/vilar_2002b.bngl @@ -0,0 +1,75 @@ +begin model +begin parameters + + k1 0.01 + k2 0.2 + k3 0.5 + k4 1 + k5 2 + k6 10 + k7 50 + k8 100 + k9 500 + k10 5 + +end parameters +begin molecule types # define molecules present in the simulation + + DNA(p,r) + AmRNA + RmRNA + A(b) + R(a) + C + trash + +end molecule types +begin seed species # initial conditions + + DNA(p,r) 1 + AmRNA 0 + RmRNA 0 + A(b) 0 + R(a) 0 + C 0 + trash 0 + +end seed species +begin observables # model outputs + + Molecules A A + Molecules R R + +end observables +begin reaction rules + + DNA(p) -> DNA(p) + AmRNA k7 + DNA(r) -> DNA(r) + RmRNA k1 + DNA(p!1).A(b!1) -> DNA(p!1).A(b!1) + AmRNA k9 + DNA(r!1).A(b!1) -> DNA(r!1).A(b!1) + RmRNA k7 + DNA(p) + A(b) <-> DNA(p!1).A(b!1) k4, k7 + DNA(r) + A(b) <-> DNA(r!1).A(b!1) k4, k8 + AmRNA ->AmRNA + A(b) k7 #if missing AmRNA on product side, result is off by order of magnitude + RmRNA -> RmRNA + R(a) k10 #if missing RmRNA on product side, result is off by order of magnitude + AmRNA -> trash k6 + RmRNA -> trash k3 + A(b) -> trash k4 + R(a) -> trash k2 + A(b) + R(a) -> C k5 + C -> R(a) k4 + +end reaction rules +end model + +## model ACTIONS + +# generate network of all species and reactions +generate_network({overwrite=>1,max_iter=>12,max_agg=>12}); + +saveConcentrations(); # Save concentrations (in memory) for later use. +simulate_ode({suffix=>"ode",t_start=>0,t_end=>400,n_steps=>1200}); + +# resetConcentrations(); # reset concentrations to last saved values. +# simulate_ssa({suffix=>ssa,t_start=>0,t_end=>12,n_steps=>120}); + +writeSBML(); # Output file as SBML. \ No newline at end of file diff --git a/Published/vilar2002c/README.md b/Published/vilar2002c/README.md new file mode 100644 index 00000000..e372f107 --- /dev/null +++ b/Published/vilar2002c/README.md @@ -0,0 +1,21 @@ +# Vilar 2002c + +Gene oscillator + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- vilar_2002c.bngl + +## Tags + +published, vilar, 2002c, dna, a, r diff --git a/Published/vilar2002c/metadata.yaml b/Published/vilar2002c/metadata.yaml new file mode 100644 index 00000000..5bc378b9 --- /dev/null +++ b/Published/vilar2002c/metadata.yaml @@ -0,0 +1,22 @@ +id: "vilar_2002c" +name: "Vilar 2002c" +description: "Gene oscillator" +tags: ["published", "vilar", "2002c", "dna", "a", "r"] +category: "regulation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/cell-regulation/vilar_2002c.bngl" +playground: + visible: true + gallery_category: "regulation" + featured: false + difficulty: "intermediate" diff --git a/Published/vilar2002c/vilar_2002c.bngl b/Published/vilar2002c/vilar_2002c.bngl new file mode 100644 index 00000000..2d7139b8 --- /dev/null +++ b/Published/vilar2002c/vilar_2002c.bngl @@ -0,0 +1,85 @@ +## BNGL simple model -- demonstrate core BNG features +## OUTPUT files for ODE simulation (analogous file created for SSA simulation): + ## simple.net : species reaction network file. +## simple_ode.cdat : ODE simulation state trajectory. +## simple_ode.gdat : ODE simulation observables trajectory (units of molecules/simcell). +## simple_ode_end.net : network file set to end-of-simulation concentrations. + +begin model +begin parameters + + NA 6.02e23 # Avogadro's number (molecules/mole) + f 0.01 # fraction of cell to simulate + V 3e-12*f # cytoplasmic volume of cell simulation (liters) + + k1 0.01 + k2 0.2 + k3 0.5 + k4 1 + k5 2 + k6 10 + k7 50 + k8 100 + k9 500 + k10 5 + +end parameters +begin molecule types # define molecules present in the simulation + + DNA(p,p,r) + AmRNA + RmRNA + A(b) + R(a) + C + trash + +end molecule types +begin seed species # initial conditions + + DNA(p,p,r) 1 + AmRNA 0 + RmRNA 0 + A(b) 0 + R(a) 0 + C 0 + trash 0 + +end seed species +begin observables # model outputs + + Molecules A A + Molecules R R + +end observables +begin reaction rules + + DNA(p) -> DNA(p) + AmRNA k7 + DNA(r) -> DNA(r) + RmRNA k1 + DNA(p!1).A(b!1) -> DNA(p!1).A(b!1) + AmRNA k9 + DNA(r!1).A(b!1) -> DNA(r!1).A(b!1) + RmRNA k7 + DNA(p) + A(b) <-> DNA(p!1).A(b!1) k4, k7 + DNA(r) + A(b) <-> DNA(r!1).A(b!1) k4, k8 + AmRNA ->AmRNA + A(b) k7 #if missing AmRNA on product side, result is off by order of magnitude + RmRNA -> RmRNA + R(a) k10 #if missing RmRNA on product side, result is off by order of magnitude + AmRNA -> trash k6 + RmRNA -> trash k3 + A(b) -> trash k4 + R(a) -> trash k2 + A(b) + R(a) -> C k5 + C -> R(a) k4 + +end reaction rules +end model + +## model ACTIONS +# generate network of all species and reactions +generate_network({overwrite=>1,max_iter=>12,max_agg=>12}); + +saveConcentrations(); # Save concentrations (in memory) for later use. +simulate_ode({suffix=>"ode",t_start=>0,t_end=>400,n_steps=>1200}); + +# resetConcentrations(); # reset concentrations to last saved values. +# simulate_ssa({suffix=>ssa,t_start=>0,t_end=>12,n_steps=>120}); + +writeSBML(); # Output file as SBML. \ No newline at end of file diff --git a/Published/wnt/README.md b/Published/wnt/README.md new file mode 100644 index 00000000..63a6c011 --- /dev/null +++ b/Published/wnt/README.md @@ -0,0 +1,21 @@ +# Wnt Signaling + +Wnt signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- wnt.bngl + +## Tags + +published, wnt, dsh, axc, frz, lrp5, bcat diff --git a/Published/wnt/metadata.yaml b/Published/wnt/metadata.yaml new file mode 100644 index 00000000..f850063f --- /dev/null +++ b/Published/wnt/metadata.yaml @@ -0,0 +1,22 @@ +id: "wnt" +name: "Wnt Signaling" +description: "Wnt signaling" +tags: ["published", "wnt", "dsh", "axc", "frz", "lrp5", "bcat"] +category: "regulation" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/cell-regulation/wnt.bngl" +playground: + visible: false + gallery_category: "regulation" + featured: false + difficulty: "advanced" diff --git a/Published/wnt/wnt.bngl b/Published/wnt/wnt.bngl new file mode 100644 index 00000000..b1582f9e --- /dev/null +++ b/Published/wnt/wnt.bngl @@ -0,0 +1,73 @@ +begin parameters +wnt_tot 1.2e3 +DSH_tot 1.8e2 +AxC_init 1.0e2 +frz_tot 2.7e2 +lrp5_tot 1.3e2 +bcat_init 0 +ABcomplex 4.94e1 + +kp1 0.006 +km1 0.0006 +kd 0.006 + +end parameters + +begin molecules +wnt(r) +DSH(f,AxC) +AxC(l,d,b) +frz(w,l,d) +lrp5(l1,l2,l3,l4,l5,f,AD) +bcat(a) +end molecules + +begin species + +wnt(r) wnt_tot +DSH(f,AxC) DSH_tot +AxC(l,d,b) AxC_init +frz(w,l,d) frz_tot +lrp5(l1,l2,l3,l4,l5,f,AD) lrp5_tot +bcat(a) bcat_init +AxC(l,d,b!1).bcat(a!1) ABcomplex + +end species + + +begin reaction_rules + +# Ligand-receptor binding +frz(w) + wnt(r) <-> frz(w!1).wnt(r!1) kp1, km1 + +# Recruitment of DSH +frz(w!1,d) + DSH(f,AxC) <-> frz(w!1,d!2).DSH(f!2,AxC) kp1, km1 + +# Recruitment of AxC +DSH(f!1,AxC) + AxC(d) <-> DSH(f!1,AxC!2).AxC(d!2) kp1, km1 + +# Aggregation of frz and lpr5 +frz(w!1,l,d!2).DSH(f!2,AxC!3).AxC(d!3,l) + lrp5(f,AD) <-> frz(w!1,l!5,d!2).DSH(f!2,AxC!3).AxC(d!3,l!4).lrp5(f!5,AD!4) kp1,km1 + +#Release of Bcat when in complex +frz(w!1,l!5,d!2).DSH(f!2,AxC!3).AxC(d!3,l!4,b!6).lrp5(f!5,AD!4).bcat(a!6) -> frz(w!1,l!5,d!2).DSH(f!2,AxC!3).AxC(d!3,l!4,b).lrp5(f!5,AD!4) + bcat(a) kd + + +end reaction_rules + +begin observables +Molecules Bcat bcat(a) +Molecules C1 DSH(f!1,AxC!2).AxC(d!2) +Molecules C2 frz(w!1,l,d!2).DSH(f!2,AxC!3).AxC(d!3,l) +Molecules C3 frz(w!1,l!5,d!2).DSH(f!2,AxC!3).AxC(d!3,l!4,b!6).lrp5(f!5,AD!4).bcat(a!6) + +Molecules frzTest frz +Molecules bcatTest bcat +Molecules AxCTest AxC +Molecules lrp5Test lrp5 +Molecules DSHTest DSH +end observables + + +generate_network({overwrite=>1}); +simulate_ode({t_end=>10,n_steps=>10,atol=>1e-8,rtol=>1e-8,sparse=>1}); \ No newline at end of file diff --git a/PyBioNetGen/HIVdynamics/pt303/README.md b/PyBioNetGen/HIVdynamics/pt303/README.md new file mode 100644 index 00000000..d822f735 --- /dev/null +++ b/PyBioNetGen/HIVdynamics/pt303/README.md @@ -0,0 +1,21 @@ +# pt303 + +c = 0.20 /d t_1/2 = 3.5 d (inferred) + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- pt303.bngl + +## Tags + +pt303, counter, v, lnv, s, c, half_life, lnv_tangent diff --git a/PyBioNetGen/HIVdynamics/pt303/metadata.yaml b/PyBioNetGen/HIVdynamics/pt303/metadata.yaml new file mode 100644 index 00000000..45302f87 --- /dev/null +++ b/PyBioNetGen/HIVdynamics/pt303/metadata.yaml @@ -0,0 +1,22 @@ +id: "pt303" +name: "pt303" +description: "c = 0.20 /d t_1/2 = 3.5 d (inferred)" +tags: ["pt303", "counter", "v", "lnv", "s", "c", "half_life", "lnv_tangent"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/HIVdynamics_aMCMC/pt303/pt303.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/HIVdynamics/pt303/pt303.bngl b/PyBioNetGen/HIVdynamics/pt303/pt303.bngl new file mode 100644 index 00000000..ca5e25d5 --- /dev/null +++ b/PyBioNetGen/HIVdynamics/pt303/pt303.bngl @@ -0,0 +1,58 @@ +begin model +# pt303 +# c = 0.20 /d t_1/2 = 3.5 d (inferred) +# c = 0.21 /d t_1/2 = 3.3 d (published estimates) +begin parameters + +########################################## +A A__FREE # dimensionless +d1 d1__FREE # /d +d2 d2__FREE # /d +V0 V0__FREE # copies per mL +sigma sigma__FREE +end parameters +begin molecule types +counter() +end molecule types +begin seed species +counter() 0 +end seed species +begin observables +Molecules t counter() +end observables +begin functions +V()=if(t>=7,if(d2=7,if(d2=7,if(d2counter() 1 +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +simulate({suffix=>"pt303",method=>"ode",t_end=>36,n_steps=>36,print_functions=>1}) +end actions \ No newline at end of file diff --git a/PyBioNetGen/HIVdynamics/pt403/README.md b/PyBioNetGen/HIVdynamics/pt403/README.md new file mode 100644 index 00000000..d4053e4c --- /dev/null +++ b/PyBioNetGen/HIVdynamics/pt403/README.md @@ -0,0 +1,21 @@ +# pt403 + +c = 0.23 /d t_1/2 = 3.0 d (inferred) + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- pt403.bngl + +## Tags + +pt403, counter, v, lnv, s, c, half_life, lnv_tangent diff --git a/PyBioNetGen/HIVdynamics/pt403/metadata.yaml b/PyBioNetGen/HIVdynamics/pt403/metadata.yaml new file mode 100644 index 00000000..9ea6825e --- /dev/null +++ b/PyBioNetGen/HIVdynamics/pt403/metadata.yaml @@ -0,0 +1,22 @@ +id: "pt403" +name: "pt403" +description: "c = 0.23 /d t_1/2 = 3.0 d (inferred)" +tags: ["pt403", "counter", "v", "lnv", "s", "c", "half_life", "lnv_tangent"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/HIVdynamics_aMCMC/pt403/pt403.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/HIVdynamics/pt403/pt403.bngl b/PyBioNetGen/HIVdynamics/pt403/pt403.bngl new file mode 100644 index 00000000..048facc9 --- /dev/null +++ b/PyBioNetGen/HIVdynamics/pt403/pt403.bngl @@ -0,0 +1,58 @@ +begin model +# pt403 +# c = 0.23 /d t_1/2 = 3.0 d (inferred) +# c = 0.32 /d t_1/2 = 2.2 d (published estimates) +begin parameters + +########################################## +A A__FREE # dimensionless +d1 d1__FREE # /d +d2 d2__FREE # /d +V0 V0__FREE # copies per mL +sigma sigma__FREE +end parameters +begin molecule types +counter() +end molecule types +begin seed species +counter() 0 +end seed species +begin observables +Molecules t counter() +end observables +begin functions +V()=if(t>=7,if(d2=7,if(d2=7,if(d2counter() 1 +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +simulate({suffix=>"pt403",method=>"ode",t_end=>36,n_steps=>36,print_functions=>1}) +end actions \ No newline at end of file diff --git a/PyBioNetGen/HIVdynamics/pt409/README.md b/PyBioNetGen/HIVdynamics/pt409/README.md new file mode 100644 index 00000000..c60f3256 --- /dev/null +++ b/PyBioNetGen/HIVdynamics/pt409/README.md @@ -0,0 +1,21 @@ +# pt409 + +c = 0.39 /d t_1/2 = 1.8 d (inferred) + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- pt409.bngl + +## Tags + +pt409, counter, v, lnv, s, c, half_life, lnv_tangent diff --git a/PyBioNetGen/HIVdynamics/pt409/metadata.yaml b/PyBioNetGen/HIVdynamics/pt409/metadata.yaml new file mode 100644 index 00000000..ef7cde20 --- /dev/null +++ b/PyBioNetGen/HIVdynamics/pt409/metadata.yaml @@ -0,0 +1,22 @@ +id: "pt409" +name: "pt409" +description: "c = 0.39 /d t_1/2 = 1.8 d (inferred)" +tags: ["pt409", "counter", "v", "lnv", "s", "c", "half_life", "lnv_tangent"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/HIVdynamics_aMCMC/pt409/pt409.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/HIVdynamics/pt409/pt409.bngl b/PyBioNetGen/HIVdynamics/pt409/pt409.bngl new file mode 100644 index 00000000..cc5ebaf9 --- /dev/null +++ b/PyBioNetGen/HIVdynamics/pt409/pt409.bngl @@ -0,0 +1,58 @@ +begin model +# pt409 +# c = 0.39 /d t_1/2 = 1.8 d (inferred) +# c = 0.47 /d t_1/2 = 1.5 d (published estimates) +begin parameters + +########################################## +A A__FREE # dimensionless +d1 d1__FREE # /d +d2 d2__FREE # /d +V0 V0__FREE # copies per mL +sigma sigma__FREE +end parameters +begin molecule types +counter() +end molecule types +begin seed species +counter() 0 +end seed species +begin observables +Molecules t counter() +end observables +begin functions +V()=if(t>=7,if(d2=7,if(d2=7,if(d2counter() 1 +end reaction rules +end model +begin actions +generate_network({overwrite=>1}) +simulate({suffix=>"pt409",method=>"ode",t_end=>36,n_steps=>36,print_functions=>1}) +end actions \ No newline at end of file diff --git a/PyBioNetGen/core/IGF1RModelreceptoractivationbnf/IGF1R_Model_receptor_activation_bnf.bngl b/PyBioNetGen/core/IGF1RModelreceptoractivationbnf/IGF1R_Model_receptor_activation_bnf.bngl new file mode 100644 index 00000000..3747377a --- /dev/null +++ b/PyBioNetGen/core/IGF1RModelreceptoractivationbnf/IGF1R_Model_receptor_activation_bnf.bngl @@ -0,0 +1,346 @@ +================================================ + +# Author: William S. Hlavacek +# Affiliation: Theoretical Division, Los Alamos National Laboratory + +# list of free parameters: +# K1__FREE +# K2__FREE +# K1prime__FREE + +begin model + +# Model for IGF1 interaction with IGF1R + +# References: +# Kiselyov VV, ..., De Meyts P (2009) Mol Syst Biol 5:243 [PMID:19225456] + +begin parameters + +# fraction of cell to be considered in a simulation +# The scaling factor f should multiply volumes, copy numbers, +# and rate constants for zero-order processes. +f 1.0 # [=] dimensionless, 0IGF1(ds!1,hs).IGF1R(S1!1,C!0).IGF1R(S2,C!0) a1,d1 +# This rules stipulates that ligand binds S1 in R1 only if S2 in R2 is free, because +# a steric constraint prevents simultaneous occupation of S1 in R1 and S2 in R2 by two different ligands. +# In other words, the ligand binding pocket comprising S1 in R1 and S2 in R2 can only accomodate a single ligand. +# Free IGF1 reversibly binds a free copy of Site 2 in dimeric IGF1R. + +IGF1(ds,hs)+IGF1R(S2,C!0).IGF1R(S1,C!0)<->IGF1(ds,hs!1).IGF1R(S2!1,C!0).IGF1R(S1,C!0) a2,d2 +# This rules stipulates that ligand binds S2 in R1 only if S1 in R2 is free, because +# a steric constraint prevents simultaneous occupation of S2 in R1 and S1 in R2 by two different ligands. +# In other words, the ligand binding pocket comprising S2 in R1 and S1 in R2 can only accomodate a single ligand. + +# IGF1 bound at Site 1 in R1 reversibly crosslinks Site 1 in R1 and Site 2 in R2. +# Crosslinking is contingent on absence of a crosslink connecting Site 2 in R1 and Site 1 in R2. +IGF1R(S1!1,C!0).IGF1R(S1,S2,C!0).IGF1(ds!1,hs)<->\ +IGF1R(S1!1,C!0).IGF1R(S1,S2!2,C!0).IGF1(ds!1,hs!2) a2prime,d2prime +IGF1R(S1!1,S2,C!0).IGF1R(S1!+,S2,C!0).IGF1(ds!1,hs)<->\ +IGF1R(S1!1,S2,C!0).IGF1R(S1!+,S2!2,C!0).IGF1(ds!1,hs!2) a2prime,d2prime + +# IGF1 bound at Site 2 in R1 reversibly crosslinks Site 2 in R1 and Site 1 in R2. +# Crosslinking is contingent on absence of a crosslink connecting Site 1 in R1 and Site 2 in R2. +IGF1R(S2!1,C!0).IGF1R(S1,S2,C!0).IGF1(ds,hs!1)<->\ +IGF1R(S2!1,C!0).IGF1R(S1!2,S2,C!0).IGF1(ds!2,hs!1) a1prime,d1prime +IGF1R(S1,S2!1,C!0).IGF1R(S1,S2!+,C!0).IGF1(ds,hs!1)<->\ +IGF1R(S1,S2!1,C!0).IGF1R(S1!2,S2!+,C!0).IGF1(ds!2,hs!1) a1prime,d1prime + +end reaction rules + +end model + +# actions + +generate_network({overwrite=>1}) + +# dissociation experiments - generate time courses + +saveConcentrations("t=0") +# # Expt 1 +# # preincubation with hot ligand +# # settings in parameters block should be consistent with: +# # [hot ligand] = 24 pM, [cold ligand] = 0.0 <= make sure this is true +# # incubate for 2 hours +# resetConcentrations("t=0") +# simulate({suffix=>"expt1",method=>"ode",t_start=>0,t_end=>7200,n_steps=>1}) +# # wash +# setConcentration("IGF1(ds,hs,label~hot)",0.0) +# # add cold ligand +# # 0.001 nM => 12,65 copies per cell (at 1X dilution or after 40X dilution with f=1/40) +# setConcentration("IGF1(ds,hs,label~cold",1265) +# saveConcentrations("start_competition") +# # incubate for 20 min +# simulate({suffix=>"expt1",continue=>1,method=>"ode",t_start=>7200,t_end=>8400,n_steps=>1}) +# # repeat, with an incubation time of 60 min +# resetConcentrations("start_competition") +# simulate({suffix=>"expt1",continue=>1,method=>"ode",t_start=>8400,t_end=>10800,n_steps=>1}) + +# # Expt 2 +# # preincubation with hot ligand +# # settings in parameters block should be consistent with: +# # [hot ligand] = 24 pM, [cold ligand] = 0.0 <= make sure this is true +# # incubate for 2 hours +# resetConcentrations("t=0") +# simulate({suffix=>"expt2",method=>"ode",t_start=>0,t_end=>7200,n_steps=>1}) +# # wash +# setConcentration("IGF1(ds,hs,label~hot)",0.0) +# # add cold ligand +# # 0.01 nM => 12,646 copies per cell (at 1X dilution or after 40X dilution with f=1/40) +# setConcentration("IGF1(ds,hs,label~cold",12646) +# saveConcentrations("start_competition") +# # incubate for 20 min +# simulate({suffix=>"expt2",continue=>1,method=>"ode",t_start=>7200,t_end=>8400,n_steps=>1}) +# # repeat, with an incubation time of 60 min +# resetConcentrations("start_competition") +# simulate({suffix=>"expt2",continue=>1,method=>"ode",t_start=>8400,t_end=>10800,n_steps=>1}) + +# # Expt 3 +# # preincubation with hot ligand +# # settings in parameters block should be consistent with: +# # [hot ligand] = 24 pM, [cold ligand] = 0.0 <= make sure this is true +# # incubate for 2 hours +# resetConcentrations("t=0") +# simulate({suffix=>"expt3",method=>"ode",t_start=>0,t_end=>7200,n_steps=>1}) +# # wash +# setConcentration("IGF1(ds,hs,label~hot)",0.0) +# # add cold ligand +# # 0.1 nM => 126,465 copies per cell (at 1X dilution or after 40X dilution with f=1/40) +# setConcentration("IGF1(ds,hs,label~cold",126465) +# saveConcentrations("start_competition") +# # incubate for 20 min +# simulate({suffix=>"expt3",continue=>1,method=>"ode",t_start=>7200,t_end=>8400,n_steps=>1}) +# # repeat, with an incubation time of 60 min +# resetConcentrations("start_competition") +# simulate({suffix=>"expt3",continue=>1,method=>"ode",t_start=>8400,t_end=>10800,n_steps=>1}) + +# # Expt 4 +# # preincubation with hot ligand +# # settings in parameters block should be consistent with: +# # [hot ligand] = 24 pM, [cold ligand] = 0.0 <= make sure this is true +# # incubate for 2 hours +# resetConcentrations("t=0") +# simulate({suffix=>"expt4",method=>"ode",t_start=>0,t_end=>7200,n_steps=>1}) +# # wash +# setConcentration("IGF1(ds,hs,label~hot)",0.0) +# # add cold ligand +# # 1 nM => 1,264,649 copies per cell (at 1X dilution or after 40X dilution with f=1/40) +# setConcentration("IGF1(ds,hs,label~cold",1264649) +# saveConcentrations("start_competition") +# # incubate for 20 min +# simulate({suffix=>"expt4",continue=>1,method=>"ode",t_start=>7200,t_end=>8400,n_steps=>1}) +# # repeat, with an incubation time of 60 min +# resetConcentrations("start_competition") +# simulate({suffix=>"expt4",continue=>1,method=>"ode",t_start=>8400,t_end=>10800,n_steps=>1}) + +# # Expt 5 +# # preincubation with hot ligand +# # settings in parameters block should be consistent with: +# # [hot ligand] = 24 pM, [cold ligand] = 0.0 <= make sure this is true +# # incubate for 2 hours +# resetConcentrations("t=0") +# simulate({suffix=>"expt5",method=>"ode",t_start=>0,t_end=>7200,n_steps=>1}) +# # wash +# setConcentration("IGF1(ds,hs,label~hot)",0.0) +# # add cold ligand +# # 10 nM => 12,646,494 copies per cell (at 1X dilution or after 40X dilution with f=1/40) +# setConcentration("IGF1(ds,hs,label~cold",12646494) +# saveConcentrations("start_competition") +# # incubate for 20 min +# simulate({suffix=>"expt5",continue=>1,method=>"ode",t_start=>7200,t_end=>8400,n_steps=>1}) +# # repeat, with an incubation time of 60 min +# resetConcentrations("start_competition") +# simulate({suffix=>"expt5",continue=>1,method=>"ode",t_start=>8400,t_end=>10800,n_steps=>1}) + +# # Expt 6 +# # preincubation with hot ligand +# # settings in parameters block should be consistent with: +# # [hot ligand] = 24 pM, [cold ligand] = 0.0 <= make sure this is true +# # incubate for 2 hours +# resetConcentrations("t=0") +# simulate({suffix=>"expt6",method=>"ode",t_start=>0,t_end=>7200,n_steps=>1}) +# # wash +# setConcentration("IGF1(ds,hs,label~hot)",0.0) +# # add cold ligand +# # 100 nM => 126,464,940 copies per cell (at 1X dilution or after 40X dilution with f=1/40) +# setConcentration("IGF1(ds,hs,label~cold",126464940) +# saveConcentrations("start_competition") +# # incubate for 20 min +# simulate({suffix=>"expt6",continue=>1,method=>"ode",t_start=>7200,t_end=>8400,n_steps=>1}) +# # repeat, with an incubation time of 60 min +# resetConcentrations("start_competition") +# simulate({suffix=>"expt6",continue=>1,method=>"ode",t_start=>8400,t_end=>10800,n_steps=>1}) + +# # Expt 7 +# # preincubation with hot ligand +# # settings in parameters block should be consistent with: +# # [hot ligand] = 24 pM, [cold ligand] = 0.0 <= make sure this is true +# # incubate for 2 hours +# resetConcentrations("t=0") +# simulate({suffix=>"expt7",method=>"ode",t_start=>0,t_end=>7200,n_steps=>1}) +# # wash +# setConcentration("IGF1(ds,hs,label~hot)",0.0) +# # add cold ligand +# # 1000 nM => 1,264,649,400 copies per cell (at 1X dilution or after 40X dilution with f=1/40) +# setConcentration("IGF1(ds,hs,label~cold",1264649400) +# saveConcentrations("start_competition") +# # incubate for 20 min +# simulate({suffix=>"expt7",continue=>1,method=>"ode",t_start=>7200,t_end=>8400,n_steps=>1}) +# # repeat, with an incubation time of 60 min +# resetConcentrations("start_competition") +# simulate({suffix=>"expt7",continue=>1,method=>"ode",t_start=>8400,t_end=>10800,n_steps=>1}) + +# steady-state competition experiments - generate steady-state dose-response curve + +resetConcentrations("t=0") + +# 7 pM = 8852 copies per cell +setConcentration("IGF1(ds,hs,label~hot)",8852) + +parameter_scan({suffix=>"F5B",parameter=>"IGF1_cold_conc",par_scan_vals=>[\ + 2.5822e-12,\ + 6.9016e-12,\ + 1.3065e-11,\ + 1.3178e-12,\ + 2.6498e-11,\ + 6.6104e-11,\ + 1.2953e-10,\ + 2.5822e-10,\ + 6.5536e-10,\ + 1.2841e-9,\ + 2.6498e-9,\ + 6.7254e-9,\ + 1.3178e-8,\ + 2.5822e-8,\ + 6.5536e-8,\ + 1.2841e-7,\ + 2.6498e-7,\ + 6.6104e-7,\ + 1.2841e-7],\ + method=>"ode",t_start=>0,t_end=>14400,n_steps=>10,print_functions=>1}) + + + +================================================ diff --git a/PyBioNetGen/core/IGF1RModelreceptoractivationbnf/README.md b/PyBioNetGen/core/IGF1RModelreceptoractivationbnf/README.md new file mode 100644 index 00000000..398976df --- /dev/null +++ b/PyBioNetGen/core/IGF1RModelreceptoractivationbnf/README.md @@ -0,0 +1,21 @@ +# IGF1R Model receptor activation bnf + +Author: William S. Hlavacek + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- IGF1R_Model_receptor_activation_bnf.bngl + +## Tags + +igf1r, model, receptor, activation, bnf, igf1 diff --git a/PyBioNetGen/core/IGF1RModelreceptoractivationbnf/metadata.yaml b/PyBioNetGen/core/IGF1RModelreceptoractivationbnf/metadata.yaml new file mode 100644 index 00000000..e4a09811 --- /dev/null +++ b/PyBioNetGen/core/IGF1RModelreceptoractivationbnf/metadata.yaml @@ -0,0 +1,22 @@ +id: "IGF1R_Model_receptor_activation_bnf" +name: "IGF1R Model receptor activation bnf" +description: "Author: William S. Hlavacek" +tags: ["igf1r", "model", "receptor", "activation", "bnf", "igf1"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/igf1r/IGF1R_Model_receptor_activation_bnf.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/RAFi/RAFi.bngl b/PyBioNetGen/core/RAFi/RAFi.bngl new file mode 100644 index 00000000..ce9f2e2e --- /dev/null +++ b/PyBioNetGen/core/RAFi/RAFi.bngl @@ -0,0 +1,120 @@ +begin model + +begin parameters + +K1 0.04 # /uM +K2 20 # /uM +K3 K3__FREE # /uM +K5 K5__FREE # /uM + +K4=K1*K3/K2 # /uM +K6=K4*K5/K2 # /uM + +kf1 1 # /uM/s +kf2 10 # /uM/s +kf3 10 # /uM/s +kf4 1 # /uM/s +kf5 10 # /uM/s +kf6 1 # /uM/s + +kr1=((1/2)*kf1)/K1 # /s +kr2=kf2/K2 # /s +kr3=(2*kf3)/K3 # /s +kr4=kf4/K4 # /s +kr5=(kf5/K5)/2 # /s +kr6=((1/2)*kf6)/K6 # /s + +Rtot 50 # uM + +Ifree 1 # uM, Ifree \in [1e-4,1e2] uM +Itot = \ +Ifree*(8*Ifree^4*K1*K3^2*K5^2+8*Ifree^3*K1*K3^2*K5^2*Rtot+16*Ifree^3*K1*K3^2*K5+12*Ifree^2*K1*K3^2*K5*Rtot+8*Ifree^2*K1*K3^2+16*Ifree^2*K1*K3*K5-Ifree^2*K2^2*K3+2*Ifree^2*K2*K3*K5+4*Ifree*K1*K3^2*Rtot+8*Ifree*K1*K3*K5*Rtot+16*Ifree*K1*K3-2*Ifree*K2^2+Ifree*K2*K3*sqrt(8*Ifree^2*K1*K3*K5*Rtot+Ifree^2*K2^2+8*Ifree*K1*K3*Rtot+2*Ifree*K2+8*K1*Rtot+1)-2*Ifree*K3*K5*sqrt(8*Ifree^2*K1*K3*K5*Rtot+Ifree^2*K2^2+8*Ifree*K1*K3*Rtot+2*Ifree*K2+8*K1*Rtot+1)+2*Ifree*K3*K5+4*K1*K3*Rtot+8*K1+2*K2*sqrt(8*Ifree^2*K1*K3*K5*Rtot+Ifree^2*K2^2+8*Ifree*K1*K3*Rtot+2*Ifree*K2+8*K1*Rtot+1)-2*K2-K3*sqrt(8*Ifree^2*K1*K3*K5*Rtot+Ifree^2*K2^2+8*Ifree*K1*K3*Rtot+2*Ifree*K2+8*K1*Rtot+1)+K3)/(8*K1*(Ifree^4*K3^2*K5^2+2*Ifree^3*K3^2*K5+Ifree^2*K3^2+2*Ifree^2*K3*K5+2*Ifree*K3+1)) + +end parameters + +begin molecule types + +R(r,i) +I(r) + +#I +#R +#RR +#RI +#RIR +#RIRI + +end molecule types + +begin seed species + +R(r,i) Rtot +I(r) Itot + +#R Rtot +#RR 0 +#RI 0 +#RIR 0 +#RIRI 0 +#I Itot + +end seed species + +begin observables + +Species I I(r) +Species RI R(r,i!1).I(r!1) +Species RIR R(r!1,i!2).I(r!2).R(r!1,i) +Species RIRI R(r!1,i!2).I(r!2).R(r!1,i!3).I(r!3) +Species RR R(r!1,i).R(r!1,i) + +#Species xI I +#Species xRI RI +#Species xRIR RIR +#Species xRIRI RIRI +#Species xRR RR + +end observables + +begin functions + +Ybar()=(RI+RIR+2*RIRI)/Rtot +Activity()=RR+RIR + +#Ybar()=(xRI+xRIR+2*xRIRI)/Rtot +#Activity()=xRR+xRIR + +end functions + +begin reaction rules + +R(r,i)+R(r,i)<->R(r!1,i).R(r!1,i) kf1,kr1 +R(r,i)+I(r)<->R(r,i!1).I(r!1) kf2,kr2 +R(r!1,i).R(r!1,i)+I(r)<->R(r!1,i!2).R(r!1,i).I(r!2) kf3,kr3 +R(r,i!1).I(r!1)+R(r,i)<->R(r!2,i!1).I(r!1).R(r!2,i) kf4,kr4 +R(r!2,i!1).I(r!1).R(r!2,i)+I(r)<->R(r!2,i!1).I(r!1).R(r!2,i!3).I(r!3) kf5,kr5 +R(r,i!1).I(r!1)+R(r,i!2).I(r!2)<->R(r!3,i!1).I(r!1).R(r!3,i!2).I(r!2) kf6,kr6 + +#R+R<->RR kf1,kr1 +#R+I<->RI kf2,kr2 +#RR+I<->RIR kf3,kr3 +#RI+R<->RIR kf4,kr4 +#RIR+I<->RIRI kf5,kr5 +#RI+RI<->RIRI kf6,kr6 + +end reaction rules + +end model + +begin actions + +generate_network({overwrite=>1}) +#simulate({method=>"ode",t_start=>0,t_end=>10000,n_steps=>100,print_functions=>1}) +parameter_scan({parameter=>"Ifree",par_scan_vals=>[0.000100372016637506,0.000314491602654335,0.000985383889389087,0.00318698147548864,0.00998564087315122,0.0312876069140816,0.101192057959632,0.317061005145963,0.993434494871831,3.1126883457236,10.0672237527048,31.5432272692313,98.833125298427],\ + method=>"ode",t_start=>0,t_end=>100000,n_steps=>100,steady_state=>1,\ + print_functions=>1, suffix=>"raf"}) + +# Fig. 2B: Plot Ybar() vs. Ifree +# Fig. 2C: Plot Activity() vs. Ifree + +end actions \ No newline at end of file diff --git a/PyBioNetGen/core/RAFi/README.md b/PyBioNetGen/core/RAFi/README.md new file mode 100644 index 00000000..3531a1c6 --- /dev/null +++ b/PyBioNetGen/core/RAFi/README.md @@ -0,0 +1,21 @@ +# RAFi + +BioNetGen model: RAFi + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- RAFi.bngl + +## Tags + +rafi, r, i, ybar, activity diff --git a/PyBioNetGen/core/RAFi/metadata.yaml b/PyBioNetGen/core/RAFi/metadata.yaml new file mode 100644 index 00000000..0593a0f4 --- /dev/null +++ b/PyBioNetGen/core/RAFi/metadata.yaml @@ -0,0 +1,22 @@ +id: "RAFi" +name: "RAFi" +description: "BioNetGen model: RAFi" +tags: ["rafi", "r", "i", "ybar", "activity"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/constraint_raf/RAFi.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/RAFiground/RAFi_ground.bngl b/PyBioNetGen/core/RAFiground/RAFi_ground.bngl new file mode 100644 index 00000000..df4e4d0b --- /dev/null +++ b/PyBioNetGen/core/RAFiground/RAFi_ground.bngl @@ -0,0 +1,120 @@ +begin model + +begin parameters + +K1 0.04 # /uM +K2 20 # /uM +K3 4000 # /uM +K5 0.1 # /uM + +K4=K1*K3/K2 # /uM +K6=K4*K5/K2 # /uM + +kf1 1 # /uM/s +kf2 10 # /uM/s +kf3 10 # /uM/s +kf4 1 # /uM/s +kf5 10 # /uM/s +kf6 1 # /uM/s + +kr1=((1/2)*kf1)/K1 # /s +kr2=kf2/K2 # /s +kr3=(2*kf3)/K3 # /s +kr4=kf4/K4 # /s +kr5=(kf5/K5)/2 # /s +kr6=((1/2)*kf6)/K6 # /s + +Rtot 50 # uM + +Ifree 1 # uM, Ifree \in [1e-4,1e2] uM +Itot = \ +Ifree*(8*Ifree^4*K1*K3^2*K5^2+8*Ifree^3*K1*K3^2*K5^2*Rtot+16*Ifree^3*K1*K3^2*K5+12*Ifree^2*K1*K3^2*K5*Rtot+8*Ifree^2*K1*K3^2+16*Ifree^2*K1*K3*K5-Ifree^2*K2^2*K3+2*Ifree^2*K2*K3*K5+4*Ifree*K1*K3^2*Rtot+8*Ifree*K1*K3*K5*Rtot+16*Ifree*K1*K3-2*Ifree*K2^2+Ifree*K2*K3*sqrt(8*Ifree^2*K1*K3*K5*Rtot+Ifree^2*K2^2+8*Ifree*K1*K3*Rtot+2*Ifree*K2+8*K1*Rtot+1)-2*Ifree*K3*K5*sqrt(8*Ifree^2*K1*K3*K5*Rtot+Ifree^2*K2^2+8*Ifree*K1*K3*Rtot+2*Ifree*K2+8*K1*Rtot+1)+2*Ifree*K3*K5+4*K1*K3*Rtot+8*K1+2*K2*sqrt(8*Ifree^2*K1*K3*K5*Rtot+Ifree^2*K2^2+8*Ifree*K1*K3*Rtot+2*Ifree*K2+8*K1*Rtot+1)-2*K2-K3*sqrt(8*Ifree^2*K1*K3*K5*Rtot+Ifree^2*K2^2+8*Ifree*K1*K3*Rtot+2*Ifree*K2+8*K1*Rtot+1)+K3)/(8*K1*(Ifree^4*K3^2*K5^2+2*Ifree^3*K3^2*K5+Ifree^2*K3^2+2*Ifree^2*K3*K5+2*Ifree*K3+1)) + +end parameters + +begin molecule types + +R(r,i) +I(r) + +#I +#R +#RR +#RI +#RIR +#RIRI + +end molecule types + +begin seed species + +R(r,i) Rtot +I(r) Itot + +#R Rtot +#RR 0 +#RI 0 +#RIR 0 +#RIRI 0 +#I Itot + +end seed species + +begin observables + +Species I I(r) +Species RI R(r,i!1).I(r!1) +Species RIR R(r!1,i!2).I(r!2).R(r!1,i) +Species RIRI R(r!1,i!2).I(r!2).R(r!1,i!3).I(r!3) +Species RR R(r!1,i).R(r!1,i) + +#Species xI I +#Species xRI RI +#Species xRIR RIR +#Species xRIRI RIRI +#Species xRR RR + +end observables + +begin functions + +Ybar()=(RI+RIR+2*RIRI)/Rtot +Activity()=RR+RIR + +#Ybar()=(xRI+xRIR+2*xRIRI)/Rtot +#Activity()=xRR+xRIR + +end functions + +begin reaction rules + +R(r,i)+R(r,i)<->R(r!1,i).R(r!1,i) kf1,kr1 +R(r,i)+I(r)<->R(r,i!1).I(r!1) kf2,kr2 +R(r!1,i).R(r!1,i)+I(r)<->R(r!1,i!2).R(r!1,i).I(r!2) kf3,kr3 +R(r,i!1).I(r!1)+R(r,i)<->R(r!2,i!1).I(r!1).R(r!2,i) kf4,kr4 +R(r!2,i!1).I(r!1).R(r!2,i)+I(r)<->R(r!2,i!1).I(r!1).R(r!2,i!3).I(r!3) kf5,kr5 +R(r,i!1).I(r!1)+R(r,i!2).I(r!2)<->R(r!3,i!1).I(r!1).R(r!3,i!2).I(r!2) kf6,kr6 + +#R+R<->RR kf1,kr1 +#R+I<->RI kf2,kr2 +#RR+I<->RIR kf3,kr3 +#RI+R<->RIR kf4,kr4 +#RIR+I<->RIRI kf5,kr5 +#RI+RI<->RIRI kf6,kr6 + +end reaction rules + +end model + +begin actions + +generate_network({overwrite=>1}) +#simulate({method=>"ode",t_start=>0,t_end=>10000,n_steps=>100,print_functions=>1}) +parameter_scan({parameter=>"Ifree",par_min=>1e-4,par_max=>1e2,n_scan_pts=>100,log_scale=>1,\ + method=>"ode",t_start=>0,t_end=>100000,n_steps=>100,steady_state=>1,\ + print_functions=>1, suffix=>"raf"}) + +# Fig. 2B: Plot Ybar() vs. Ifree +# Fig. 2C: Plot Activity() vs. Ifree + +end actions \ No newline at end of file diff --git a/PyBioNetGen/core/RAFiground/README.md b/PyBioNetGen/core/RAFiground/README.md new file mode 100644 index 00000000..55158636 --- /dev/null +++ b/PyBioNetGen/core/RAFiground/README.md @@ -0,0 +1,21 @@ +# RAFi ground + +BioNetGen model: RAFi ground + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- RAFi_ground.bngl + +## Tags + +rafi, ground, r, i, ybar, activity diff --git a/PyBioNetGen/core/RAFiground/metadata.yaml b/PyBioNetGen/core/RAFiground/metadata.yaml new file mode 100644 index 00000000..d852548a --- /dev/null +++ b/PyBioNetGen/core/RAFiground/metadata.yaml @@ -0,0 +1,22 @@ +id: "RAFi_ground" +name: "RAFi ground" +description: "BioNetGen model: RAFi ground" +tags: ["rafi", "ground", "r", "i", "ybar", "activity"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/constraint_raf/RAFi_ground.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/degranulationmodel/README.md b/PyBioNetGen/core/degranulationmodel/README.md new file mode 100644 index 00000000..86ce6a80 --- /dev/null +++ b/PyBioNetGen/core/degranulationmodel/README.md @@ -0,0 +1,21 @@ +# PyBNG: Degranulation model + +Degranulation model + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- degranulation_model.bngl + +## Tags + +published, pybng, degranulation, model, ag, r, syk, ship1, x, pip3, h diff --git a/PyBioNetGen/core/degranulationmodel/degranulation_model.bngl b/PyBioNetGen/core/degranulationmodel/degranulation_model.bngl new file mode 100644 index 00000000..9b75e7d5 --- /dev/null +++ b/PyBioNetGen/core/degranulationmodel/degranulation_model.bngl @@ -0,0 +1,400 @@ +# filename: model.bngl +# date of last edit: 25-Jul-2017 +# authors: Chylek LA, Mitra E, Hlavacek WS (Los Alamos National Laboratory) +# software compatibility: RuleBender (version 2.1.0.8), +# BioNetGen (version 2.2.6) + +begin model + +begin parameters + +# The following parameters were fit to experimental degranulation data using +# BioNetFit 1.0 +# For more information, see the BioNetFit configuration file model_fit.conf + +X_tot__FREE 6.13331088e+00 +k_Xoff__FREE 1.91394890e-06 +k_Xon__FREE 9.39816993e+04 +kase__FREE 3.76143208e+00 +kdegX__FREE 3.19130252e-04 +kdegran__FREE 188893.283626392 +km_Ship1__FREE 1.43154204e-03 +km_Syk__FREE 2.87783197e-01 +km_x__FREE 1.12185442e-01 +koff__FREE 4.45671503e-03 +kp_Ship1__FREE 1.10810534e+04 +kp_Syk__FREE 2.65462642e+05 +kp_x__FREE 7.81553987e+05 +kpten__FREE 0.00995093271320638 +ksynth1__FREE 1.84930114e-02 +pase__FREE 1.60206452e-01 + +# End fit parameters + +# system size scaling factor (>0) +f 1 # cells per reaction compartment + +# Avogadro constant +NA 6.02214e23 # molecules per mol + +# time unit conversion factor +T 60 # s per min + +# channel volume in microfluidic device +Vchannel 500e-9 # L per channel (500 nL) + +# number of cells per channel +Nchannel 1000 # cells per channel + +# volume of extracellular fluid +Vecf=f*(Vchannel/Nchannel) # L per cell (500 pL/cell) + +# cytosolic volume of an RBL-2H3 cell +# This estimate corresponds to the volume of a sphere with a diameter of +# 17.9 microns. +Vcyt f*3e-12 # L per cell (3 pL/cell) + +# multivalent antigen abundance in medium at condition 0 +Ag_tot_0 0 # copies per cell (cpc) + +# multivalent antigen abundance in medium at condition 1 +Ag_conc1 10e-9 # M (10 nM) +Ag_tot_1=Ag_conc1*(NA*Vecf) # cpc + +# antigen receptor abundance +R_tot f*3e5 # cpc (1 nM) + +# Syk abundance +Syk_tot f*3e5 # cpc (0.166 uM) + +# Ship1 abundance +Ship1_tot f*3e5 # cpc (0.166 uM) + +# rate constant for antigen capture +kon 1e7*T/(NA*Vecf) # /M/s converted to /cpc/min +# We assume a diffusion-limited value of 1e7 /M/s + +# rate constant for antigen release +koff koff__FREE*T # 4.46e-3 /s converted to 0.268 /min + +# rate constant for pseudo first-order phosphorylation of antigen-engaged +# receptor +kase kase__FREE*T # 3.76 /s converted to 2.25e+2 /min + +# rate constant for pseuedo first-order dephosphorylation of phosphorylated +# receptor +pase pase__FREE*T # 1.60e-1 /s converted to 9.6 /min + +kp_Syk kp_Syk__FREE*T/(NA*Vcyt) # 2.65e+5 /M/s converted to 8.80e-6 /cpc/min +km_Syk km_Syk__FREE*T # 2.88e-1 /s converted to 17.2 /min + +kp_Ship1 kp_Ship1__FREE*T/(NA*Vcyt) # 1.11e+4 /M/s converted to +# 3.68e-7 /cpc/min +km_Ship1 km_Ship1__FREE*T # 1.43e-3 /s converted to 8.58e-2 /min + +ksynth1 ksynth1__FREE*T # 1.85e-2 /s converted to 1.11 /min +kdeg1 1e7*T/(NA*Vcyt) # /M/s converted to /cpc/min; +# We assume a diffusion-limited value of 1e7 /M/s + +# Rate of basal degradation of PIP3 and/or IP3 +kpten kpten__FREE*T # 9.95e-3 /s converted to 0.597 /min + + +H_tot 1e6 # cpc + +kdegran kdegran__FREE*T/(NA*Vcyt) # 1.89e+5 /M/s converted to 6.27e-6/cpc/min + +# rate constant for degradation of X +# (in one step, including ubiquitination and proteosomal degradation) +kdegX kdegX__FREE*T # 3.19e-4 /s converted to 1.91e-2 /min + + +k_Xon k_Xon__FREE*T/(NA*Vcyt) # 9.40e+4 /M/s converted to 3.12e-6 /cpc/min +k_Xoff k_Xoff__FREE*T # 1.91e-6 /s converted to 1.15e-4 /min + +kp_x kp_x__FREE*T/(NA*Vcyt) # 7.81e+5 /M/s converted to 2.59e-5 /cpc/min +km_x km_x__FREE*T # 1.12e-1 /s converted to 7.26 /min + +# abundance of hypothetical Ship1 cofactor X +X_tot=X_tot__FREE*Ship1_tot # 6.13 times the Ship1 concentration, converted +# to 1.84e6 cpc + +end parameters + +begin molecule types + +# antigen (DNP-conjugated BSA) +# DNP: 2,4-dinitrophenyl groups +Ag(DNP) + +# antigen receptor (anti-DNP IgE bound to FcεRI) +# IgE: anti-DNP IgE +# Yb: tyrosine residues (0, unmodified; P, phosphorylated) +# in the β chain ITAM of FcεRI +# Yg: tyrosine residues (0, unmodified; P, phosphorylated) +# in the γ chain ITAMs of FcεRI +R(IgE,Yb~0~P,Yg~0~P) + +# protein tyrosine kinase Syk +# tSH2: tandem SH2 domains +Syk(tSH2) + +# lipid phosphatase Ship1 +# SH2: Src homology 2 (SH2) domain +# x: binding site for hypothethical Ship1 cofactor X +Ship1(SH2,x) + +# hypothetical Ship1 cofactor X +# s: Ship1 binding site (on, active; off, inactive) +X(s~on~off) + +# phosphatidylinositol (3,4,5)-trisphosphate +PIP3() + + +# β-hexosaminidase +# loc: location (in, inside granules; out, secreted/outside cell) +H(loc~in~out) + +end molecule types + +begin seed species + +# initial conditions + +# initial abundance of free antigen (in medium) per cell +# The $ prefix indicates that this abundance is to be held constant. +$Ag(DNP) Ag_tot_1 + +# initial abundance of free antigen receptor +R(IgE,Yb~0,Yg~0) R_tot + +# initial abundance of (inactive) cytosolic Syk +Syk(tSH2) Syk_tot + +# initial abundance of (inactive) cytosolic Ship1 +Ship1(SH2,x) Ship1_tot + +# initial abundance of PIP3 +PIP3() 0 + +# initial abundance of β-hexosaminidase (stored in cellular granules) +H(loc~in) H_tot + +# initial abundance of inactive hypothetical Ship1 cofactor X +X(s~off) X_tot + +end seed species + +begin observables + +# simulation outputs + +Molecules Ag_total Ag() # This quantity may accumulate because free Ag +# abundance is held fixed. +Molecules Ag_free Ag(DNP) # This quantity is held constant, except for +# adjustments in the actions block. +Molecules R_bound R(IgE!+) # number of antigen-bound receptors per cell +Molecules R_free R(IgE) # number of antigen-free receptors per cell +Molecules RP R(Yg~P!?) # number of phosphorylated receptors per cell +Molecules R0 R(Yg~0) # number of unphosphorylated receptors per cell +Molecules actSyk Syk(tSH2!+) # number of Syk molecules recruited to antigen +# receptors +Molecules actShip1 Ship1(SH2!+,x!+) # number of Ship1 molecules recruited to +# antigen receptors and bound to X +Molecules Ship1_total Ship1() # total abundance of Ship1 +Molecules PIP3_total PIP3() # total abundance of PIP3 +Molecules degranulation H(loc~out) # abundance of secreted β-hexominadase +# (surrogate for secreted mediators of inflammation) +Molecules Xall X() # total abundance of hypothetical Ship1 cofactor X +Molecules X_on_free X(s~on) # abundance of free X in activated state +Molecules X_on_free_or_bound X(s~on!?) # abundance of X (bound or free) in +# activated state +Molecules XShip1 X(s~on!1).Ship1(x!1) # abundance of Ship1 bound to (activated) +# cofactor X + +end observables + +begin reaction rules + +# ligand-receptor binding +# As a simplification, we consider a one-step binding mechanism. +# Thus, the rate constants are effective parameters that reflect +# capture and release of (multivalent) antigen as well as the effects +# of antigen-mediated receptor aggregation on the residence time of antigen +# on the cell surface. Recall that the antigen receptor is a long-lived 1:1 +# complex of antigen-specific IgE and FcεRI, the high-affinity Fc +# receptor for IgE. +Ag(DNP)+R(IgE)<->Ag(DNP!1).R(IgE!1) kon,koff + +# ligand-dependent receptor phosphorylation +# We assume that bound receptors are competent for (Lyn-mediated) +# phosphorylation of the tyrosines in β and γ ITAMs. +# As a simplification, we assume that the β and γ sites are +# phosphorylated simultaneously as part of a single process. +# The effective rate constant for phosphorylation is assumed to capture +# associaton of Lyn with receptors and the relationship between the abundance +# of cell-associated antigen and the extent of antigen-mediated receptor +# crosslinking. +R(IgE!+,Yb~0,Yg~0)->R(IgE!+,Yb~P,Yg~P) kase + +# receptor dephosphorylation +# # As a simplification, we assume that the β and γ sites are +# dephosphorylated simultaneously as part of a single process. +# As an additional simplification, we consider a pseudo first-order mechanism. +# Thus, the effective rate constant for phosphorylation can be viewed +# as the Vmax/KM ratio for phosphatases. We expect phosphatase activity to be +# high. +R(Yb~P,Yg~P)->R(Yb~0,Yg~0) pase + +# recruitment of Syk to the γ subunit of the phosphorylated receptor +# As a simplification, we consider a one-step binding mechanism. +# We expect this simplification to be accurate even though the tandem +# SH2 domains of Syk dock to a doubly phosphorylated γ ITAM via a +# two-step mechanism because isomerization reactions are expected to be fast. +R(Yg~P)+Syk(tSH2)<->R(Yg~P!1).Syk(tSH2!1) kp_Syk,km_Syk + +# recruitment of Ship1 to the β subunit of the phosphorylated receptor +# The SH2 domain Ship1 interacts with the phosphorylated β ITAM. +R(Yb~P)+Ship1(SH2)<->R(Yb~P!1).Ship1(SH2!1) kp_Ship1,km_Ship1 + +# receptor-mediated activation of hypothetical Ship1 cofactor X +# As a simplification, we consider a pseudo second-order mechanism. +# The rate constant for activation of X can be viewed as the kcat/KM ratio for +# a receptor-associated kinase responsible for activating phosphorylation of X. +# Note that our choice to check the phosphorylation state of R(Yb) rather than +# R(Yg) is arbitrary, as within the simplifications of this model, the two +# sites are phosphorylated and dephosphorylated simultaneously. +R(Yb~P!?)+X(s~off)->R(Yb~P!?)+X(s~on) k_Xon + +# decativation of X +# As a simplification, we consider a pseudo first-order mechanism. +X(s~on)->X(s~off) k_Xoff + +# activated Syk-dependent synthesis of PIP3 +# PI3K is recruited to phosphorylated LAT, a key substrate of Syk and plasma +# membrane protein, and there generates PI(3,4,5)P3 from PI(4,5)P2. +# As a simplification, we assume that PI3K activity (and PIP3 generation) is +# proportional to the abundance of receptor-recruited Syk. Thus, we assume that +# the rate constant for PIP3 generation captures the relationship between Syk +# recruitment/activation and PI3K recruitment/activation enabled by +# Syk-mediated phosphorylation of LAT. +Syk(tSH2!+)->Syk(tSH2!+)+PIP3() ksynth1 + +# interaction of activated X with Ship1 +# We assume that X-Ship1 interaction requires prior receptor-mediated +# activation of X. Thus, only X with a Ship1 binding site "s" in the "on" state +# is allowed to associate with Ship1. +X(s~on)+Ship1(x)<->X(s~on!1).Ship1(x!1) kp_x,km_x + + +# activated Ship1-dependent clearance of PIP3 +# We assume that membrane-associated Ship1, when bound to both the receptor and +# a cofactor (X), is mainly responsible for clearance of PIP3. Ship1 catalyzes +# the conversion of PI(3,4,5)P3 to PI(3,4)P2. +Ship1(SH2!+,x!+)+PIP3()->Ship1(SH2!+,x!+) kdeg1 + +# clearance of PIP3 +# PIP3 is degraded to PI(4,5)P2 by PTEN. +# We assume that all degradation of PIP3 can be simplified into a single +# pseudo first-order process. +PIP3()->0 kpten + + +# Degradation of activated X +# We assume that activated X is subject to ubiquitination, followed by +# degradation in the proteosome +# We take this to occur via a pseudo first-order process +# X bound to Ship1 is also subject to proteosomal degradation, which is assumed +# to liberate Ship1. +# We assume that synthesis and degradation of *inactive* X are sufficiently +# slow to not be relevant on the time scales studied. +X(s~on)->0 kdegX +X(s~on!1).Ship1(x!1)->Ship1(x) kdegX + +# Degranulation due to the presence of PIP3 +# PIP3 serves as a PLCγ substrate, leading to the production of IP3, +# stimulating store-operated calcium release followed by degranulation +# We assume this occurs as a pseudo second order process. +PIP3()+H(loc~in)->PIP3()+H(loc~out) kdegran + +end reaction rules + +end model + +begin actions + +# The command below instructs BioNetGen to derive a reaction network from the +# model's rules. +# The output is sent to a file that has a .net filename extension. +# The .net file can be further processed to generate the ordinary differential +# equations corresponding to the reaction network and the rate laws associated +# with the model's rules. +generate_network({overwrite=>1}) + +# The commands below illustrate how we simulated +# 1) an initial period of multivalent antigen-stimulated IgE receptor +# signaling, +# 2) an intermediate period of monovalent antigen-induced IgE receptor +# signaling quiescence, and +# 3) a second and final period of multivalent antigen-stimulated IgE receptor +# signaling. + +# For the purposes of fitting to experimental data, we repeat the series of 3 +# simulations for each time delay that was tested experimentally +# For each one, a .exp file was saved containing the appropriate experimental +# data point from Fig. 4 +# BioNetFit was used to fit the model to the .exp files. + +# first 5-min period of multivalent antigen stimulation +setConcentration("Ag(DNP)","Ag_tot_1") +simulate({suffix=>"p1_5",method=>"ode",t_end=>5,n_steps=>50}) +# Remember these concentrations, so we can go back for each interval tested +saveConcentrations() + +# treatment with monovalent antigen to rapidly induce signaling quiescence +setConcentration("Ag(DNP)","Ag_tot_0") +# Interval is 5 min +simulate({suffix=>"p2_5",method=>"ode",t_end=>5,n_steps=>50}) + +# second 5-min period of multivalent antigen stimulation +setConcentration("Ag(DNP)","Ag_tot_1") +# Remove all existing secreted β hex, in order to measure only what is +# secreted during this interval +setConcentration("H(loc~out)",0) +simulate({suffix=>"p3_5",method=>"ode",t_end=>5,n_steps=>50}) + +# Repeat for an interval of 30 min +resetConcentrations() # Revert to the state after simulation 1 +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}) + + +# Repeat for an interval of 60 min +resetConcentrations() # Revert to the state after simulation 1 +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}) + +# Repeat for an interval of 120 min +resetConcentrations() # Revert to the state after simulation 1 +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}) + +# Repeat for an interval of 240 min +resetConcentrations() # Revert to the state after simulation 1 +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/PyBioNetGen/core/degranulationmodel/metadata.yaml b/PyBioNetGen/core/degranulationmodel/metadata.yaml new file mode 100644 index 00000000..ebae83bd --- /dev/null +++ b/PyBioNetGen/core/degranulationmodel/metadata.yaml @@ -0,0 +1,22 @@ +id: "degranulation_model" +name: "PyBNG: Degranulation model" +description: "Degranulation model" +tags: ["published", "pybng", "degranulation", "model", "ag", "r", "syk", "ship1", "x", "pip3", "h"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/degranulation_model.bngl" +playground: + visible: true + gallery_category: "other" + featured: false + difficulty: "intermediate" diff --git a/PyBioNetGen/core/egfr/README.md b/PyBioNetGen/core/egfr/README.md new file mode 100644 index 00000000..8597da25 --- /dev/null +++ b/PyBioNetGen/core/egfr/README.md @@ -0,0 +1,21 @@ +# egfr + +Blinov et al. 2006. Biosystems, 83:136 + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- egfr.bngl + +## Tags + +egfr, egf, grb2, shc, sos diff --git a/PyBioNetGen/core/egfr/egfr.bngl b/PyBioNetGen/core/egfr/egfr.bngl new file mode 100644 index 00000000..b6dcc976 --- /dev/null +++ b/PyBioNetGen/core/egfr/egfr.bngl @@ -0,0 +1,162 @@ +# EGFR model +# Blinov et al. 2006. Biosystems, 83:136 + +begin parameters +egf_tot 1.2e6 +egfr_tot 1.8e5 +Grb2_tot 1.0e5 +Shc_tot 2.7e5 +Sos_tot 1.3e4 +Grb2_Sos_tot 4.9e4 + +kp1 kp1__FREE # ligand-monomer binding (scaled) +km1 km1__FREE # ligand-monomer dissociation + +kp2 kp2__FREE # aggregation of bound monomers (scaled) +km2 km2__FREE # dissociation of bound monomers + +kp3 kp3__FREE # dimer transphosphorylation +km3 km3__FREE # dimer dephosphorylation + +kp14 kp14__FREE # Shc transphosphorylation +km14 km14__FREE # Shc dephosphorylation + +km16 km16__FREE # Shc cytosolic dephosphorylation + +kp9 kp9__FREE # binding of Grb2 to receptor (scaled) +km9 km9__FREE # dissociation of Grb2 from receptor + +kp10 kp10__FREE # binding of Sos to receptor (scaled) +km10 km10__FREE # dissociation of Sos from receptor + +kp11 kp11__FREE # binding of Grb2-Sos to receptor (scaled) +km11 km11__FREE # diss. of Grb2-Sos from receptor + +kp13 kp13__FREE # binding of Shc to receptor (scaled) +km13 km13__FREE # diss. of Shc from receptor + +kp15 kp15__FREE # binding of ShcP to receptor (scaled) +km15 km15__FREE # diss. of ShcP from receptor + +kp17 kp17__FREE # binding of Grb2 to RP-ShcP (scaled) +km17 km17__FREE # diss. of Grb2 from RP-ShcP + +kp18 kp18__FREE # binding of ShcP-Grb2 to receptor (scaled) +km18 km18__FREE # diss. of ShcP-Grb2 from receptor + +kp19 kp19__FREE # binding of Sos to RP-ShcP-Grb2 (scaled) +km19 km19__FREE # diss. of Sos from RP-ShcP-Grb2 + +kp20 kp20__FREE # binding of ShcP-Grb2-Sos to receptor (scaled) +km20 km20__FREE # diss. of ShcP-Grb2-Sos from receptor + +kp24 kp24__FREE # binding of Grb2-Sos to RP-ShcP (scaled) +km24 km24__FREE # diss. of Grb2-Sos from RP-ShcP + +kp21 kp21__FREE # binding of ShcP to Grb2 in cytosol (scaled) +km21 km21__FREE # diss. of Grb2 and SchP in cytosol + +kp23 kp23__FREE # binding of ShcP to Grb2-Sos in cytosol (scaled) +km23 km23__FREE # diss. of Grb2-Sos and SchP in cytosol + +kp12 kp12__FREE # binding of Grb2 to Sos in cytosol (scaled) +km12 km12__FREE # diss. of Grb2 and Sos in cytosol + +kp22 kp22__FREE # binding of ShcP-Grb2 to Sos in cytosol (scaled) +km22 km22__FREE # diss. of ShcP-Grb2 and Sos in cytosol + +end parameters + +begin molecule types +egf(r) +Grb2(SH2,SH3) +Shc(PTB,Y317~Y~pY) +Sos(dom) +egfr(l,r,Y1068~Y~pY,Y1148~Y~pY) +end molecule types + + +begin species + +egf(r) egf_tot +Grb2(SH2,SH3) Grb2_tot +Shc(PTB,Y317~Y) Shc_tot +Sos(dom) Sos_tot +egfr(l,r,Y1068~Y,Y1148~Y) egfr_tot +Grb2(SH2,SH3!1).Sos(dom!1) Grb2_Sos_tot +end species + + +begin reaction rules + +# Ligand-receptor binding +egfr(l,r) + egf(r) <-> egfr(l!1,r).egf(r!1) kp1, km1 #ligand-monomer + +# Note changed multiplicity +# Receptor-aggregation +egfr(l!+,r) + egfr(l!+,r) <-> egfr(l!+,r!3).egfr(l!+,r!3) kp2,km2 + +# Transphosphorylation of egfr by RTK + egfr(r!+,Y1068~Y) -> egfr(r!+,Y1068~pY) kp3 + egfr(r!+,Y1148~Y) -> egfr(r!+,Y1148~pY) kp3 + +#Dephosphorylayion + egfr(Y1068~pY) -> egfr(Y1068~Y) km3 + egfr(Y1148~pY) -> egfr(Y1148~Y) km3 + +# Shc transphosph + + egfr(r!+,Y1148~pY!1).Shc(PTB!1,Y317~Y) -> egfr(r!+,Y1148~pY!1).Shc(PTB!1,Y317~pY) kp14 + Shc(PTB!+,Y317~pY) -> Shc(PTB!+,Y317~Y) km14 + + +# Y1068 activity + egfr(Y1068~pY) + Grb2(SH2,SH3) <-> egfr(Y1068~pY!1).Grb2(SH2!1,SH3) kp9,km9 + egfr(Y1068~pY) + Grb2(SH2,SH3!+) <-> egfr(Y1068~pY!1).Grb2(SH2!1,SH3!+) kp11,km11 + egfr(Y1068~pY!1).Grb2(SH2!1,SH3) + Sos(dom) <-> egfr(Y1068~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) kp10,km10 + +# Y1148 activity + + egfr(Y1148~pY) + Shc(PTB,Y317~Y) <-> egfr(Y1148~pY!1).Shc(PTB!1,Y317~Y) kp13,km13 + egfr(Y1148~pY) + Shc(PTB,Y317~pY) <-> egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY) kp15,km15 + egfr(Y1148~pY) + Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3) <-> egfr(Y1148~pY!2).Shc(PTB!2,Y317~pY!1).Grb2(SH2!1,SH3) kp18,km18 + egfr(Y1148~pY) + Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3!3).Sos(dom!3) <-> egfr(Y1148~pY!2).Shc(PTB!2,Y317~pY!1).Grb2(SH2!1,SH3!3).Sos(dom!3) kp20,km20 + + egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY) + Grb2(SH2,SH3) <-> egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY!2).Grb2(SH2!2,SH3) kp17,km17 + + egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY) + Grb2(SH2,SH3!3).Sos(dom!3) <-> egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) kp24,km24 + + Shc(PTB!+,Y317~pY!2).Grb2(SH2!2,SH3) + Sos(dom) <-> Shc(PTB!+,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) kp19,km19 + +# Cytosolic + + Shc(PTB,Y317~pY) + Grb2(SH2,SH3) <-> Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3) kp21,km21 + Shc(PTB,Y317~pY) + Grb2(SH2,SH3!+) <-> Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3!+) kp23,km23 + Shc(PTB,Y317~pY) -> Shc(PTB,Y317~Y) km16 + Grb2(SH2,SH3) + Sos(dom) <-> Grb2(SH2,SH3!1).Sos(dom!1) kp12,km12 + Shc(PTB,Y317~pY!2).Grb2(SH2!2,SH3) + Sos(dom) <-> Shc(PTB,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) kp22,km22 + + +end reaction rules + +begin observables +Molecules Dimers egfr().egfr() +Molecules Sos_act Shc(PTB!+,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) egfr(Y1068~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) +Molecules Y1068 egfr(Y1068~pY) egfr(Y1068~pY!+) +Molecules Y1148 egfr(Y1148~pY) egfr(Y1148~pY!+) +Molecules Shc_Grb Shc(Y317~pY!1).Grb2(SH2!1) +Molecules Shc_Grb_Sos Shc(Y317~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) +Molecules R_Grb2 egfr(Y1068~pY!1).Grb2(SH2!1) +Molecules R_Shc egfr(Y1148~pY!1).Shc(PTB!1,Y317~Y) +Molecules R_ShcP egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY!?) +Molecules ShcP Shc(Y317~pY!?) +Molecules R_G_S egfr(Y1068~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) +Molecules R_S_G_S egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) +Molecules Efgr_tot egfr() +end observables + +#simulate_rm({t_end=>120,n_steps=>120}); +generate_network({overwrite=>1}); +simulate({method=>"ode",t_start=>0,t_end=>100,n_steps=>10,suffix=>"egfr"}); +#writeSBML(); + diff --git a/PyBioNetGen/core/egfr/metadata.yaml b/PyBioNetGen/core/egfr/metadata.yaml new file mode 100644 index 00000000..75bdf5f9 --- /dev/null +++ b/PyBioNetGen/core/egfr/metadata.yaml @@ -0,0 +1,22 @@ +id: "egfr" +name: "egfr" +description: "Blinov et al. 2006. Biosystems, 83:136" +tags: ["egfr", "egf", "grb2", "shc", "sos"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/egfr_benchmark/egfr.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/egfrground/README.md b/PyBioNetGen/core/egfrground/README.md new file mode 100644 index 00000000..5f743c63 --- /dev/null +++ b/PyBioNetGen/core/egfrground/README.md @@ -0,0 +1,21 @@ +# egfr ground + +Blinov et al. 2006. Biosystems, 83:136 + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- egfr_ground.bngl + +## Tags + +egfr, ground, egf, grb2, shc, sos diff --git a/PyBioNetGen/core/egfrground/egfr_ground.bngl b/PyBioNetGen/core/egfrground/egfr_ground.bngl new file mode 100644 index 00000000..f73a3bb0 --- /dev/null +++ b/PyBioNetGen/core/egfrground/egfr_ground.bngl @@ -0,0 +1,162 @@ +# EGFR model +# Blinov et al. 2006. Biosystems, 83:136 + +begin parameters +egf_tot 1.2e6 +egfr_tot 1.8e5 +Grb2_tot 1.0e5 +Shc_tot 2.7e5 +Sos_tot 1.3e4 +Grb2_Sos_tot 4.9e4 + +kp1 1.667e-06 # ligand-monomer binding (scaled) +km1 0.06 # ligand-monomer dissociation + +kp2 5.556e-06 # aggregation of bound monomers (scaled) +km2 0.1 # dissociation of bound monomers + +kp3 0.5 # dimer transphosphorylation +km3 4.505 # dimer dephosphorylation + +kp14 3 # Shc transphosphorylation +km14 0.03 # Shc dephosphorylation + +km16 0.005 # Shc cytosolic dephosphorylation + +kp9 8.333e-07 # binding of Grb2 to receptor (scaled) +km9 0.05 # dissociation of Grb2 from receptor + +kp10 5.556e-06 # binding of Sos to receptor (scaled) +km10 0.06 # dissociation of Sos from receptor + +kp11 1.25e-06 # binding of Grb2-Sos to receptor (scaled) +km11 0.03 # diss. of Grb2-Sos from receptor + +kp13 2.5e-05 # binding of Shc to receptor (scaled) +km13 0.6 # diss. of Shc from receptor + +kp15 2.5e-07 # binding of ShcP to receptor (scaled) +km15 0.3 # diss. of ShcP from receptor + +kp17 1.667e-06 # binding of Grb2 to RP-ShcP (scaled) +km17 0.1 # diss. of Grb2 from RP-ShcP + +kp18 2.5e-07 # binding of ShcP-Grb2 to receptor (scaled) +km18 0.3 # diss. of ShcP-Grb2 from receptor + +kp19 5.556e-06 # binding of Sos to RP-ShcP-Grb2 (scaled) +km19 0.0214 # diss. of Sos from RP-ShcP-Grb2 + +kp20 6.667e-08 # binding of ShcP-Grb2-Sos to receptor (scaled) +km20 0.12 # diss. of ShcP-Grb2-Sos from receptor + +kp24 5e-06 # binding of Grb2-Sos to RP-ShcP (scaled) +km24 0.0429 # diss. of Grb2-Sos from RP-ShcP + +kp21 1.667e-06 # binding of ShcP to Grb2 in cytosol (scaled) +km21 0.01 # diss. of Grb2 and SchP in cytosol + +kp23 1.167e-05 # binding of ShcP to Grb2-Sos in cytosol (scaled) +km23 0.1 # diss. of Grb2-Sos and SchP in cytosol + +kp12 5.556e-08 # binding of Grb2 to Sos in cytosol (scaled) +km12 0.0015 # diss. of Grb2 and Sos in cytosol + +kp22 1.667e-05 # binding of ShcP-Grb2 to Sos in cytosol (scaled) +km22 0.064 # diss. of ShcP-Grb2 and Sos in cytosol + +end parameters + +begin molecule types +egf(r) +Grb2(SH2,SH3) +Shc(PTB,Y317~Y~pY) +Sos(dom) +egfr(l,r,Y1068~Y~pY,Y1148~Y~pY) +end molecule types + + +begin species + +egf(r) egf_tot +Grb2(SH2,SH3) Grb2_tot +Shc(PTB,Y317~Y) Shc_tot +Sos(dom) Sos_tot +egfr(l,r,Y1068~Y,Y1148~Y) egfr_tot +Grb2(SH2,SH3!1).Sos(dom!1) Grb2_Sos_tot +end species + + +begin reaction rules + +# Ligand-receptor binding +egfr(l,r) + egf(r) <-> egfr(l!1,r).egf(r!1) kp1, km1 #ligand-monomer + +# Note changed multiplicity +# Receptor-aggregation +egfr(l!+,r) + egfr(l!+,r) <-> egfr(l!+,r!3).egfr(l!+,r!3) kp2,km2 + +# Transphosphorylation of egfr by RTK + egfr(r!+,Y1068~Y) -> egfr(r!+,Y1068~pY) kp3 + egfr(r!+,Y1148~Y) -> egfr(r!+,Y1148~pY) kp3 + +#Dephosphorylayion + egfr(Y1068~pY) -> egfr(Y1068~Y) km3 + egfr(Y1148~pY) -> egfr(Y1148~Y) km3 + +# Shc transphosph + + egfr(r!+,Y1148~pY!1).Shc(PTB!1,Y317~Y) -> egfr(r!+,Y1148~pY!1).Shc(PTB!1,Y317~pY) kp14 + Shc(PTB!+,Y317~pY) -> Shc(PTB!+,Y317~Y) km14 + + +# Y1068 activity + egfr(Y1068~pY) + Grb2(SH2,SH3) <-> egfr(Y1068~pY!1).Grb2(SH2!1,SH3) kp9,km9 + egfr(Y1068~pY) + Grb2(SH2,SH3!+) <-> egfr(Y1068~pY!1).Grb2(SH2!1,SH3!+) kp11,km11 + egfr(Y1068~pY!1).Grb2(SH2!1,SH3) + Sos(dom) <-> egfr(Y1068~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) kp10,km10 + +# Y1148 activity + + egfr(Y1148~pY) + Shc(PTB,Y317~Y) <-> egfr(Y1148~pY!1).Shc(PTB!1,Y317~Y) kp13,km13 + egfr(Y1148~pY) + Shc(PTB,Y317~pY) <-> egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY) kp15,km15 + egfr(Y1148~pY) + Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3) <-> egfr(Y1148~pY!2).Shc(PTB!2,Y317~pY!1).Grb2(SH2!1,SH3) kp18,km18 + egfr(Y1148~pY) + Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3!3).Sos(dom!3) <-> egfr(Y1148~pY!2).Shc(PTB!2,Y317~pY!1).Grb2(SH2!1,SH3!3).Sos(dom!3) kp20,km20 + + egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY) + Grb2(SH2,SH3) <-> egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY!2).Grb2(SH2!2,SH3) kp17,km17 + + egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY) + Grb2(SH2,SH3!3).Sos(dom!3) <-> egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) kp24,km24 + + Shc(PTB!+,Y317~pY!2).Grb2(SH2!2,SH3) + Sos(dom) <-> Shc(PTB!+,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) kp19,km19 + +# Cytosolic + + Shc(PTB,Y317~pY) + Grb2(SH2,SH3) <-> Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3) kp21,km21 + Shc(PTB,Y317~pY) + Grb2(SH2,SH3!+) <-> Shc(PTB,Y317~pY!1).Grb2(SH2!1,SH3!+) kp23,km23 + Shc(PTB,Y317~pY) -> Shc(PTB,Y317~Y) km16 + Grb2(SH2,SH3) + Sos(dom) <-> Grb2(SH2,SH3!1).Sos(dom!1) kp12,km12 + Shc(PTB,Y317~pY!2).Grb2(SH2!2,SH3) + Sos(dom) <-> Shc(PTB,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) kp22,km22 + + +end reaction rules + +begin observables +Molecules Dimers egfr().egfr() +Molecules Sos_act Shc(PTB!+,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) egfr(Y1068~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) +Molecules Y1068 egfr(Y1068~pY) egfr(Y1068~pY!+) +Molecules Y1148 egfr(Y1148~pY) egfr(Y1148~pY!+) +Molecules Shc_Grb Shc(Y317~pY!1).Grb2(SH2!1) +Molecules Shc_Grb_Sos Shc(Y317~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) +Molecules R_Grb2 egfr(Y1068~pY!1).Grb2(SH2!1) +Molecules R_Shc egfr(Y1148~pY!1).Shc(PTB!1,Y317~Y) +Molecules R_ShcP egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY!?) +Molecules ShcP Shc(Y317~pY!?) +Molecules R_G_S egfr(Y1068~pY!1).Grb2(SH2!1,SH3!2).Sos(dom!2) +Molecules R_S_G_S egfr(Y1148~pY!1).Shc(PTB!1,Y317~pY!2).Grb2(SH2!2,SH3!3).Sos(dom!3) +Molecules Efgr_tot egfr() +end observables + +#simulate_rm({t_end=>120,n_steps=>120}); +generate_network({overwrite=>1}); +simulate({method=>"ode",t_start=>0,t_end=>100,n_steps=>10}); +#writeSBML(); + diff --git a/PyBioNetGen/core/egfrground/metadata.yaml b/PyBioNetGen/core/egfrground/metadata.yaml new file mode 100644 index 00000000..5982fdb6 --- /dev/null +++ b/PyBioNetGen/core/egfrground/metadata.yaml @@ -0,0 +1,22 @@ +id: "egfr_ground" +name: "egfr ground" +description: "Blinov et al. 2006. Biosystems, 83:136" +tags: ["egfr", "ground", "egf", "grb2", "shc", "sos"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/egfr_benchmark/egfr_ground.bngl" +playground: + visible: true + gallery_category: "other" + featured: false + difficulty: "intermediate" diff --git a/PyBioNetGen/core/egfrnf/README.md b/PyBioNetGen/core/egfrnf/README.md new file mode 100644 index 00000000..0ceaddca --- /dev/null +++ b/PyBioNetGen/core/egfrnf/README.md @@ -0,0 +1,21 @@ +# egfr nf + +Filename: example2_starting_point.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: nf +- Imported from: published + +## Files + +- egfr_nf.bngl + +## Tags + +egfr, nf, egf, clusters, pre1_dose, pre2_time diff --git a/PyBioNetGen/core/egfrnf/egfr_nf.bngl b/PyBioNetGen/core/egfrnf/egfr_nf.bngl new file mode 100644 index 00000000..c229a581 --- /dev/null +++ b/PyBioNetGen/core/egfrnf/egfr_nf.bngl @@ -0,0 +1,294 @@ +# Filename: example2_starting_point.bngl +# This plain-text file is a BioNetGen input file. +# It is derived from the supplemental BioNetGen input file of Kozer et al. (2014): +# bi500182x_si_001.txt +# Edits of this file were made by Brandon R. Thomas and William S. Hlavacek for inclusion with BioNetFit 1 +# Further edits were made by Eshan D. Mitra for inclusion in PyBioNetFit. +# Date of last modification: 18 June 2015 + +begin model + +# A model for activation of the epidermal growth factor receptor (EGFR) +# This model is an extension of the model of Kozer et al. (2013). + +# References: +# Elleman TC et al. (2001) Biochemistry 40: 8930–8939. +# Faeder JR et al. (2009) Methods Mol Biol 500: 113-167. +# Kleiman et al. (2011) Mol Cell 43: 723-737. +# Kozer N et al. (2013) Mol BioSyst 9: 1849-1863. +# Kozer N et al. (2014) Biochemistry 53: 2594-2604. +# Low-Nam ST et al. (2011) Nat Struct Mol Biol 18: 1244-1249. +# Macdonald JL, Pike LJ (2008) Proc Natl Acad Sci USA 105: 112-117. +# Thomas BR et al. "GenFit: a fitting tool compatible with BioNetGen, NFsim, and distributed computing environments" + +begin parameters + +NA 6.02214e14 # [=] number of molecules per nmol +f 0.01 # fraction of cell to consider in simulation, dimensionless +cellDen 6.0e8 # [=] number of cells per L +Vo=f/cellDen # volume of fluid surrounding a single cell on average + +# See Table 1 in Kozer et al. (2013) for additional information about parameter values. +# The unit system used here differs from that used in the study of Kozer et al. (2014). +# Here, we are using the unit system used by Kozer et al. (2014) and that recommended by Faeder et al. (2009). +# The two unit systems differ with respect to the unit used for abundance. +# Kozer et al. (2013) used nM, whereas Kozer et al. (2014) used molecules per cell. +# The two unit systems are related as follows: 1 nM = 1e6 molecules per cell. + +# It should be noted that BioNetGen treats rate constants as single-site rate constants. Thus, care must be taken to specify such rate constants, i.e., rate constants that do not incorporate statistical factors (which arise, for example, because a reactant has multiple indistinguishable copies of a reactive site) or factors that arise because of reactions that have the form A+A->product(s). See Faeder et al. (2009) for more details. + +LT_nM 30 # Total ligand concentration (nM). A default concentration of 30 nM was used in cases where the ligand dose was not varied. In dose-response analyses, this concentration is varied in the range 0.001-100 nM. +# convert from nM to molecules per cell +LT=LT_nM*NA*Vo + +RT 0.09*NA*Vo # Total receptor concentration (nM). The value is based on 90,000 EGFR per cell and a density of 6*10^5 cell/mL. + +K11 4.6 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR, which is not crosslinked with other EGFR via the ectodomain.The value is taken from Macdonald and Pike (2008), where it represents EGF binding with monomeric EGFR. +k11r 0.02 # Dissociation constant (/s). This value is taken from Elleman et al. (2001). +k11f K11*k11r/(NA*Vo) # Association constant (/nM/s). The value is derived from k11f = K11*k11r. + +K21 5.3 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR that is crosslinked via ectodomain with a second EGFR, and the crosslinked receptors both are free of EGF. The value is taken from Macdonald and Pike (2008). +k21r 0.02 # Single-site dissociation constaint (/s). We assume k21r to be the same as k11r. +k21f K21*k21r/2/(NA*Vo) # Association constant (/nM/s). The value is derived from k21f = K21*k21r/2. Division by 2 is a correction to obtain the single-site association rate constant (k21f) from the effective equilibrium association constant (K21). + +K22 0.34 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR that is crosslinked via ectodomain with a second EGFR and the second EGFR is occupied by EGF.The value is taken from Macdonald and Pike (2008). +k22r 0.2 # Single-site dissociation constaint (/s). We assume that k22r is 10-fold larger than k11r. This assumption is consistent with the difference between K11 (or K21) and K22. +k22f 2*K22*k22r/(NA*Vo) # Single-site association constant in (/nM/s). The value is erived from k22f = 2*K22*k22r. Multiplication with 2 is applied to get single site association rate constant (k22f) from effective equilibrium association constant (K22). + +L20 212 # Equlibrium crossliinking constaint (/nM). The constant characterizes ectodomain-ectodomain interaction when both receptors are free from EGF. This parameter value is based on the value of 530 dm^2/nmol reported by Macdonald and Pike (2008) and the following assumptions: a receptor surface density of 1.175e-3 nmol/dm^2 (~20 eGFP-EGFR on average for a beam with a radius of 0.3 microns) for a cell line expressing 30,000 copies of EGFR per cell, receptor density is proportional to total receptor copy number, and a total receptor concentration of approximately 0.009 nM in the experiments of Macdonald and Pike (2008) involving cells expressing 87,000 copies of EGFR per cell (from the x-intercept of the Scatchard plot shown in the inset of Fig. 5A in the paper of Macdonald and Pike). In other words, we assume that the dimensionless quantity L20*RT is approximately 1.8 for cells with 87,000 copies of EGFR per cell. Moreover, we assume that the total number of cells used in the experiments of Macdonald and Pike (for a cell line with 87,000 copies of EGFR per cell) was such that the total concentration of EGFR was approximately 0.009 nM. If we further assume that the total number of cells used was the same in all experiments of Macdonald and Pike, then the dimensional value of L20 (in units consistent with those used for total EGF concentration) is 212 /nM (obtained by dividing the dimesionless quantity L20*RT by RT when RT is expressed in the same units as those used for total EGF concentration). +l20r 1.24 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011). +l20f 2*L20*l20r/(NA*Vo) # Association rate constant in (/nM/s). Derived from l20f = 2*L20*l20r. Multiplication factor 2 is applied because the reactant pair are the same species. + +L21 244 # Equilibrium crosslinking constant (/nM). The constant characterizes ectodomain-ectodomain interaction when only one receptor is bound to EGF. The value is derived from the detailed balance relation, L21 = K21*L20/K11. +l21r 0.738 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011). +l21f L21*l21r/(NA*Vo) # Association rate constant (/nM/s). The value is derived from l21f = L21*l21r. + +L22 18.0 # Equilibrium crosslinking constant (/nM). The constant characterizes ectodomain-ectodomain interaction when both receptors are bound to EGF. The value is derived from the detailed balance relation, L22 = K22*L21/K11. +l22r 0.272 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011). +l22f 2*L22*l22r/(NA*Vo) # Association rate constant (/nM/s). The value is derived from l22f = 2*L22*l22r. Multiplication factor 2 is applied because the reactant pair are the same species. + +k_o k_o__FREE # Rate constant for ligand-mediated activating conformation change in the cytosolic tail of EGFR (/s). The value is obtained from fitting. The value k_o__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +k_c k_c__FREE # Rate constant for ligand-independent deactivating conformation change in the cytosolic tail of EGFR (/s). The value is obtained from fitting. The value k_c__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +kaf kaf__FREE/(NA*Vo) # Rate constant for EGFR tail-tail association mediated by EGFR kinase domain and juxtamembrane domains (/s). The value is obtained from fitting. The value kaf__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +kar kar__FREE # Rate constant for EGFR tail-tail dissociation (/s). The value is obtained from model fitting. The value kar__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +kp 1 # EGFR phosphorylation rate constant (/s). The value is consistent with data in Kleiman et al. (2011). +kdp 1 # EGFR dephoshporylation rate constant (/s). The value is consistent with data in Kleiman et al. (2011). + +chi_r chi_r__FREE*(NA*Vo) # Enhancement factor for ring-closure reactions (nM). The value is obtained from fitting. The value chi_r__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +# average of all measurements for dataset 1 (Fig. 2B) +avg1 34.5 # (clusters per square micron) +# average of all measurements for dataset 2 (Fig. 3B) +avg2 25.6 # (clusters per square micron) +# average of all measurements for dataset 3 (Fig. 2D) +avg3 0.578 # (arbitrary units, relative fluorescence intensity) +# average of all measurements for dataset 4 (Fig. 3D) +avg4 0.75 # (arbitrary units, relative fluorescence intensity) + +# scaling factors for preprocessed datasets +# These scaling factors are used to relate model outputs to measurements +# when each dataset has been scaled so that the average of all measurements is 1. +alpha1_pre=alpha1_pre__FREE # /(molecule/cell) The value alpha1_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +alpha2_pre=alpha2_pre__FREE # /(molecule/cell) The value alpha2_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +alpha3_pre=alpha3_pre__FREE # /(molecule/cell) The value alpha3_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +alpha4_pre=alpha4_pre__FREE # /(molecule/cell) The value alpha4_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +# scaling factors for unprocessed datasets 1-4 +# Each scaling factor can be used to relate a model output to a measurement. +# dataset 1 of Fig. 2B (dose-response data; EGFR cluster density vs. EGF dose) +# alpha1*Clusters=measurement value +alpha1=alpha1_pre*avg1 # (clusters per square micron)/(molecule/cell) +# dataset 2 of Fig. 3B (time-series data; EGFR cluster density vs. time, 30 nM EGF) +# alpha2*Clusters=measurement value +alpha2=alpha2_pre*avg2 # (clusters per square micron)/(molecule/cell) +# dataset 3 of Fig. 2D (dose-response data; EGFR phosphorylation vs. EGF dose) +# alpha3*pEGFR=measurement value +alpha3=alpha3_pre*avg3 # (a.u.)/(molecule/cell) +# dataset 4 of Fig. 3D (time-series data; EGFR phosphorylation vs. time, 30 nM EGF) +# alpha4*pEGFR=measurement value +alpha4=alpha4_pre*avg4 # (a.u.)/(molecule/cell) + +# In the absence of ligand there is a monomer-dimer equilibrium. +# Monomer abundance is given by MT, and dimer abundance is given by DT. +KD = 2*l20r/l20f +term = -1 + sqrt(1+8*RT/KD) +MT = term*KD/4 +DT = term*term*KD/16 + +end parameters + +begin molecule types +EGF(rec) +EGFR(back,lig,cd~c~o,Y~u~p) +end molecule types + +begin seed species +EGF(rec) LT +EGFR(back,lig,cd~c,Y~u) MT +EGFR(back!1,lig,cd~c,Y~u).EGFR(back!1,lig,cd~c,Y~u) DT +end seed species + +begin observables + +# NB: observables will report # per subvolume (not # per cell), where subvolume size is determined by f. +# It is necessary to divide by f to obtain # per cell. +# However, observables cannot be scaled directly. +# To scale the value of an observable, it is necessary to define an appropriate function. +# Here's an example: +# scaled_obs()=obs/f # this function converts # per subvolume to # per cell + +# Unbound EGF +Molecules EGFfree EGF(rec) + +# Ligand-free EGFR +Molecules EGFRfree EGFR(lig) + +Molecules all_receptors EGFR() + +# Clusters +# The observable definition below considers EGFR oligomers up to size 20 (i.e., oligomers containing 20 copies of EGFR). +# Oligomers of size 10+ only very rarely form (results not shown). +#Species Clusters EGFR==1 EGFR==2 EGFR==3 EGFR==4 EGFR==5 EGFR==6 EGFR==7 EGFR==8 EGFR==9 EGFR==10 \ +# EGFR==11 EGFR==12 EGFR==13 EGFR==14 EGFR==15 EGFR==16 EGFR==17 EGFR==18 EGFR==19 EGFR==20 + +# EGFR monomer +Species monomer EGFR==1 + +# EGFR dimer +Species dimer EGFR==2 + +# EGFR trimer +Species trimer EGFR==3 + +# EGFR tetramer +Species tetramer EGFR==4 + +# higher-order oligomers up to 20-mers +Species pentamer EGFR==5 +Species hexamer EGFR==6 +Species heptamer EGFR==7 +Species octamer EGFR==8 +Species nonamer EGFR==9 +Species decamer EGFR==10 +Species undecamer EGFR==11 +Species dodecamer EGFR==12 +Species tridecamer EGFR==13 +Species tetradecamer EGFR==14 +Species pentadecamer EGFR==15 +Species hexadecamer EGFR==16 +Species heptadecamer EGFR==17 +Species octadecamer EGFR==18 +Species nonadecamer EGFR==19 +Species icosadecamer EGFR==20 + +# Phosphorylated-EGFR +Molecules pEGFR EGFR(Y~p) + +end observables + +begin functions + +Clusters()=monomer+dimer+trimer+tetramer+pentamer+hexamer+heptamer+octamer+nonamer+decamer+undecamer+dodecamer+tridecamer+tetradecamer+pentadecamer+hexadecamer+heptadecamer+octadecamer+nonadecamer+icosadecamer + +# The functions below generate outputs that can be directly compared to +# preprocessed data of Kozer et al. (2013). +# We need to divide observables by f to obtain quantities with units of # per cell rather than units of # per subvolume. +pre1_dose()=alpha1_pre*Clusters()/f # .scan file output (Fig. 2B) +pre2_time()=alpha2_pre*Clusters()/f # .gdat file output (Fig. 3B) +pre3_dose()=alpha3_pre*pEGFR/f # .scan file output (Fig. 2D) +pre4_time()=alpha4_pre*pEGFR/f # .gdat file output (Fig. 3D) + +# The functions below generate outputs that can be directly compared to +# the (unprocessed) data reported by Kozer et al. (2013). +# We need to divide observables by f to obtain quantities with units of # per cell rather than units of # per subvolume. +out1_cDens_dose()=alpha1*Clusters()/f # .scan file output (Fig. 2B) +out2_cDens_time()=alpha2*Clusters()/f # .gdat file output (Fig. 3B) +out3_pEGFR_dose()=alpha3*pEGFR/f # .scan file output (Fig. 2D) +out4_pEGFR_time()=alpha4*pEGFR/f # .gdat file output (Fig. 3D) + +receptors_in_small_oligo()=(1*monomer+2*dimer+3*trimer+4*tetramer)/f +receptors_in_large_oligo()=(5*pentamer+6*hexamer+7*heptamer+8*octamer+9*nonamer+10*decamer\ + +11*undecamer+12*dodecamer+13*tridecamer+14*tetradecamer\ + +15*pentadecamer+16*hexadecamer+17*heptadecamer+18*octadecamer\ + +19*nonadecamer+20*icosadecamer)/f + +end functions + +begin reaction rules + +# EGF binding to EGFR not crosslinked via the ectodomain. +EGF(rec) + EGFR(back,lig) <-> EGF(rec!1).EGFR(back,lig!1) k11f,k11r + +# EGF binding to EGFR that is crosslinked via the ectodomain to a second EGFR and both crosslinked EGFR are free of EGF. +EGF(rec) + EGFR(back!1,lig).EGFR(back!1,lig) <-> EGF(rec!2).EGFR(back!1,lig!2).EGFR(back!1,lig) k21f,k21r + +# EGF binding to EGFR that is crosslinked via the ectodomain to a second EGFR and the second EGFR is bound to EGF. +EGF(rec) + EGF(rec!1).EGFR(back!2,lig!1).EGFR(back!2,lig) <-> EGF(rec!3).EGF(rec!1).EGFR(back!2,lig!1).EGFR(back!2,lig!3) k22f,k22r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and both EGFR are free of EGF. +EGFR(back,lig) + EGFR(back,lig) <-> EGFR(back!1,lig).EGFR(back!1,lig) l20f,l20r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and only one EGFR is free of EGF. +EGFR(back,lig) + EGF(rec!1).EGFR(back,lig!1) <-> EGFR(back!2,lig).EGF(rec!1).EGFR(back!2,lig!1) l21f,l21r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and both EGFR are occupied by EGF. +EGF(rec!1).EGFR(back,lig!1) + EGF(rec!2).EGFR(back,lig!2) <-> EGF(rec!1).EGFR(back!3,lig!1).EGF(rec!2).EGFR(back!3,lig!2) l22f,l22r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and both EGFR are free of EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig).EGFR(cd~o!2,back,lig).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig).EGFR(cd~o!2,back!1,lig).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l20f, l20r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and only one EGFR is free of EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig).EGFR(cd~o!2,back,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig).EGFR(cd~o!2,back!1,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l21f, l21r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and both EGFR are occuplied by EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig!+).EGFR(cd~o!2,back,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig!+).EGFR(cd~o!2,back!1,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l22f, l22r + +# EGF-induced activating conformation change of EGFR cytosolic tail +EGFR(lig!+,cd~c) -> EGFR(lig!+,cd~o) k_o + +# EGF-independent deactivating conformatoin change of EGFR cytosolic tail +EGFR(cd~o) -> EGFR(cd~c) k_c + +# Crosslinking of conformationally-modified cytosolic tails of EGFR that are not tethered +EGFR(cd~o) + EGFR(cd~o) <-> EGFR(cd~o!1).EGFR(cd~o!1) kaf, kar + +# Crosslinking of conformationally-modified cytosolic tails of EGFR that are tethered (ring-closure reaction) +EGFR(cd~o,back!1).EGFR(cd~o!3,back!1).EGFR(cd~o!3,back!2).EGFR(cd~o,back!2) <-> EGFR(cd~o!4,back!1).EGFR(cd~o!3,back!1).EGFR(cd~o!3,back!2).EGFR(cd~o!4,back!2) chi_r*kaf, kar + +# EGFR phosphorylation +EGFR(cd~o!1).EGFR(cd~o!1,Y~u) -> EGFR(cd~o!1).EGFR(cd~o!1,Y~p) kp + +# EGFR dephosphorylation +EGFR(Y~p) -> EGFR(Y~u) kdp + +end reaction rules + +end model + +begin actions + +# Save parameters and concentrations since we will need to reset to the saved +# values after the parameter_scan +saveConcentrations() +saveParameters() + +# The output of the simulation call below will be sent to a .scan file. +parameter_scan({suffix=>"doseresponse",\ + parameter=>"LT_nM",par_min=>0.001,par_max=>100,n_scan_pts=>6,log_scale=>1,\ + method=>"nf",complex=>1,get_final_state=>0,gml=>1000000,\ + t_start=>0,t_end=>600,n_steps=>1,\ + print_functions=>1}) + +# Reset parameters and concentrations to saved values before the time series simulation +resetConcentrations() +resetParameters() + +# The output of the simulation call below will be sent to a .gdat file. +simulate({suffix=>"timecourse",\ + method=>"nf",complex=>1,get_final_state=>0,gml=>1000000,\ + t_start=>0,t_end=>600,n_steps=>20,\ + print_functions=>1}) + +end actions diff --git a/PyBioNetGen/core/egfrnf/metadata.yaml b/PyBioNetGen/core/egfrnf/metadata.yaml new file mode 100644 index 00000000..01155ea1 --- /dev/null +++ b/PyBioNetGen/core/egfrnf/metadata.yaml @@ -0,0 +1,22 @@ +id: "egfr_nf" +name: "egfr nf" +description: "Filename: example2_starting_point.bngl" +tags: ["egfr", "nf", "egf", "clusters", "pre1_dose", "pre2_time"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["nf"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/egfr_nf/egfr_nf.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/egfrode/README.md b/PyBioNetGen/core/egfrode/README.md new file mode 100644 index 00000000..ec053333 --- /dev/null +++ b/PyBioNetGen/core/egfrode/README.md @@ -0,0 +1,21 @@ +# egfr ode + +Filename: example1.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- egfr_ode.bngl + +## Tags + +egfr, ode, egf, pre1_dose, pre2_time, pre3_dose diff --git a/PyBioNetGen/core/egfrode/egfr_ode.bngl b/PyBioNetGen/core/egfrode/egfr_ode.bngl new file mode 100644 index 00000000..d73463a3 --- /dev/null +++ b/PyBioNetGen/core/egfrode/egfr_ode.bngl @@ -0,0 +1,249 @@ +# Filename: example1.bngl +# This plain-text file is a BioNetGen input file. +# It is derived from File S1 of Kozer et al. (2013). +# Edits of File S1 were made by Brandon R. Thomas and William S. Hlavacek for inclusion in BioNetFit 1 +# Further edits were made by Eshan D. Mitra for inclusion in PyBioNetFit. +# Date of last modification: 15 May 2018 + + +begin model + +# A model for activation of the epidermal growth factor receptor (EGFR) +# This model is the model of Kozer et al. (2013). + +# References: +# Elleman TC et al. (2001) Biochemistry 40: 8930–8939. +# Faeder JR et al. (2009) Methods Mol Biol 500: 113-167. +# Kleiman et al. (2011) Mol Cell 43: 723-737. +# Kozer N et al. (2013) Mol BioSyst 9: 1849-1863. +# Low-Nam ST et al. (2011) Nat Struct Mol Biol 18: 1244-1249. +# Macdonald JL, Pike LJ (2008) Proc Natl Acad Sci USA 105: 112-117. +# Thomas BR et al. "GenFit: a fitting tool compatible with BioNetGen, NFsim, and distributed computing environments" + +begin parameters + +#See Table 1 in Kozer et al. (2013) for additional information about parameter values. +#It should be noted that BioNetGen treats rate constants as single-site rate constants. Thus, care must be taken to specify such rate constants, i.e., rate constants that do not incorporate statistical factors (which arise, for example, because a reactant has multiple indistinguishable copies of a reactive site) or factors that arise because of reactions that have the form A+A->product(s). See Faeder et al. (2009) for more details. + +LT 30 # Total ligand concentration (nM). A default concentration of 30 nM was used in cases where the ligand dose was not varied. In dose-response analyses, this concentration is varied in the range 0.001-100 nM. +RT 0.09 # Total receptor concentration (nM). The value is based on 90,000 EGFR per cell and a density of 6*10^6 cell/mL. + +K11 4.6 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR, which is not crosslinked with other EGFR via the ectodomain.The value is taken from Macdonald and Pike (2008), where it represents EGF binding with monomeric EGFR. +k11r 0.02 # Dissociation constant (/s). This value is taken from Elleman et al. (2001). +k11f 0.09 # Association constant (/nM/s). The value is derived from k11f = K11*k11r. + +K21 5.3 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR that is crosslinked via ectodomain with a second EGFR, and the crosslinked receptors both are free of EGF.The value is taken from Macdonald and Pike (2008). +k21r 0.02 # Single-site dissociation constaint (/s). We assume k21r to be the same as k11r. +k21f 0.053 # Association constant (/nM/s). The value is derived from k21f = K21*k21r/2. Division by 2 is a correction to obtain the single-site association rate constant (k21f) from the effective equilibrium association constant (K21). + +K22 0.34 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR that is crosslinked via ectodomain with a second EGFR and the second EGFR is occupied by EGF.The value is taken from Macdonald and Pike (2008). +k22r 0.2 # Single-site dissociation constaint (/s). We assume that k22r is 10-fold larger than k11r. This assumption is consistent with the difference between K11 (or K21) and K22. +k22f 0.136 # Single-site association constant in (/nM/s). The value is erived from k22f = 2*K22*k22r. Multiplication with 2 is applied to get single site association rate constant (k22f) from effective equilibrium association constant (K22). + +L20 212 # Equlibrium crossliinking constaint (/nM). The constant characterizes ectodomain-ectodomain interaction when both receptors are free from EGF. This parameter value is based on the value of 530 dm^2/nmol reported by Macdonald and Pike (2008) and the following assumptions: a receptor surface density of 1.175e-3 nmol/dm^2 (~20 eGFP-EGFR on average for a beam with a radius of 0.3 microns) for a cell line expressing 30,000 copies of EGFR per cell, receptor density is proportional to total receptor copy number, and a total receptor concentration of approximately 0.009 nM in the experiments of Macdonald and Pike (2008) involving cells expressing 87,000 copies of EGFR per cell (from the x-intercept of the Scatchard plot shown in the inset of Fig. 5A in the paper of Macdonald and Pike). In other words, we assume that the dimensionless quantity L20*RT is approximately 1.8 for cells with 87,000 copies of EGFR per cell. Moreover, we assume that the total number of cells used in the experiments of Macdonald and Pike (for a cell line with 87,000 copies of EGFR per cell) was such that the total concentration of EGFR was approximately 0.009 nM. If we further assume that the total number of cells used was the same in all experiments of Macdonald and Pike, then the dimensional value of L20 (in units consistent with those used for total EGF concentration) is 212 /nM (obtained by dividing the dimesionless quantity L20*RT by RT when RT is expressed in the same units as those used for total EGF concentration). +l20r 1.24 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011). +l20f 526 # Association rate constant in (/nM/s). Derived from l20f = 2*L20*l20r. Multiplication factor 2 is applied because the reactant pair are the same species (Fig.1). + +L21 244 # Equilibrium crosslinking constant (/nM). The constant characterizes ectodomain-ectodomain interaction when only one receptor is bound to EGF. The value is derived from the detailed balance relation, L21 = K21*L20/K11. +l21r 0.738 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011). +l21f 180 # Association rate constant (/nM/s). The value is derived from l21f = L21*l21r. + +L22 18.0 # Equilibrium crosslinking constant (/nM). The constant characterizes ectodomain-ectodomain interaction when both receptors are bound to EGF. The value is derived from the detailed balance relation, L22 = K22*L21/K11. +l22r 0.272 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011). +l22f 9.79 # Association rate constant (/nM/s). The value is derived from l22f = 2*L22*l22r. Multiplication factor 2 is applied because the reactant pair are the same species (Fig.1). + +k_o k_o__FREE # Rate constant for ligand-mediated activating conformation change in the cytosolic tail of EGFR (/s). The value is obtained from fitting. The value k_o__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +k_c k_c__FREE # Rate constant for ligand-independent deactivating conformation change in the cytosolic tail of EGFR (/s). The value is obtained from fitting. The value k_c__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +kaf kaf__FREE # Rate constant for EGFR tail-tail association mediated by EGFR kinase domain and juxtamembrane domains (/s). The value is obtained from fitting. The value kaf__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +kar kar__FREE # Rate constant for EGFR tail-tail dissociation (/s). The value is obtained from model fitting. The value kar__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +kp 1 # EGFR phosphorylation rate constant (/s). The value is consistent with data in Kleiman et al. (2011). +kdp 1 # EGFR dephoshporylation rate constant (/s). The value is consistent with data in Kleiman et al. (2011). + +chi_r chi_r__FREE # Enhancement factor for ring-closure reactions (nM). The value is obtained from fitting. The value chi_r__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +# average of all measurements for dataset 1 (Fig. 2B) +avg1 34.5 # (clusters per square micron) +# average of all measurements for dataset 2 (Fig. 3B) +avg2 25.6 # (clusters per square micron) +# average of all measurements for dataset 3 (Fig. 2D) +avg3 0.578 # (arbitrary units, relative fluorescence intensity) +# average of all measurements for dataset 4 (Fig. 3D) +avg4 0.75 # (arbitrary units, relative fluorescence intensity) + +# scaling factors for preprocessed datasets +# These scaling factors are used to relate model outputs to measurements +# when each dataset has been scaled so that the average of all measurements is 1. +alpha1_pre=alpha1_pre__FREE # /nM The value alpha1_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +alpha2_pre=alpha2_pre__FREE # /nM The value alpha2_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +alpha3_pre=alpha3_pre__FREE # /nM The value alpha3_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +alpha4_pre=alpha4_pre__FREE # /nM The value alpha4_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +# scaling factors for unprocessed datasets 1-4 +# Each scaling factor can be used to relate a model output to a measurement. +# dataset 1 of Fig. 2B (dose-response data; EGFR cluster density vs. EGF dose) +# alpha1*Clusters=measurement value +alpha1 alpha1_pre*avg1 # (clusters per square micron)/nM +# dataset 2 of Fig. 3B (time-series data; EGFR cluster density vs. time, 30 nM EGF) +# alpha2*Clusters=measurement value +alpha2 alpha2_pre*avg2 # (clusters per square micron)/nM +# dataset 3 of Fig. 2D (dose-response data; EGFR phosphorylation vs. EGF dose) +# alpha3*pEGFR=measurement value +alpha3 alpha3_pre*avg3 # (a.u.)/nM +# dataset 4 of Fig. 3D (time-series data; EGFR phosphorylation vs. time, 30 nM EGF) +# alpha4*pEGFR=measurement value +alpha4 alpha4_pre*avg4 # (a.u.)/nM + +# KD for ligand-independent receptor dimerization +KD = 2*l20r/l20f +# Find MT (monomer abundance) and DT (dimer abundance), +# which define the monomer-dimer equilibrium in the absence of ligand. +term = -1 + sqrt(1+8*RT/KD) +MT = term*KD/4 +DT = term*term*KD/16 + +end parameters + +begin molecule types +EGF(rec) +EGFR(back,lig,cd~c~o,Y~u~p) +end molecule types + +begin seed species +EGF(rec) LT +EGFR(back,lig,cd~c,Y~u) MT +EGFR(back!1,lig,cd~c,Y~u).EGFR(back!1,lig,cd~c,Y~u) DT +end seed species + +begin observables + +# Unbound EGF +Molecules EGFfree EGF(rec) + +# Ligand-free EGFR +Molecules EGFRfree EGFR(lig) + +# Clusters +Species Clusters EGFR==1 EGFR==2 EGFR==3 EGFR==4 + +# EGFR monomer +Species monomer EGFR==1 + +# EGFR dimer +Species dimer EGFR==2 + +# EGFR trimer +Species trimer EGFR==3 + +# EGFR tetramer +Species tetramer EGFR>3 # The pattern 'EGFR>3' can be used because the model does not permit oligomers larger than size 4. + +# Phosphorylated-EGFR +Molecules pEGFR EGFR(Y~p) + +end observables + +begin functions + +# The functions below generate outputs that can be directly compared to +# preprocessed data of Kozer et al. (2013). +pre1_dose()=alpha1_pre*Clusters # .scan file output (Fig. 2B) +pre2_time()=alpha2_pre*Clusters # .gdat file output (Fig. 3B) +pre3_dose()=alpha3_pre*pEGFR # .scan file output (Fig. 2D) +pre4_time()=alpha4_pre*pEGFR # .gdat file output (Fig. 3D) + +# The functions below generate outputs that can be directly compared to +# the (unprocessed) data reported by Kozer et al. (2013). +out1_cDens_dose()=alpha1*Clusters # .scan file output (Fig. 2B) +out2_cDens_time()=alpha2*Clusters # .gdat file output (Fig. 3B) +out3_pEGFR_dose()=alpha3*pEGFR # .scan file output (Fig. 2D) +out4_pEGFR_time()=alpha4*pEGFR # .gdat file output (Fig. 3D) + +end functions + +begin reaction rules + +# EGF binding to EGFR not crosslinked via the ectodomain. +EGF(rec) + EGFR(back,lig) <-> EGF(rec!1).EGFR(back,lig!1) k11f,k11r + +# EGF binding to EGFR that is crosslinked via the ectodomain to a second EGFR and both crosslinked EGFR are free of EGF. +EGF(rec) + EGFR(back!1,lig).EGFR(back!1,lig) <-> EGF(rec!2).EGFR(back!1,lig!2).EGFR(back!1,lig) k21f,k21r + +# EGF binding to EGFR that is crosslinked via the ectodomain to a second EGFR and the second EGFR is bound to EGF. +EGF(rec) + EGF(rec!1).EGFR(back!2,lig!1).EGFR(back!2,lig) <-> EGF(rec!3).EGF(rec!1).EGFR(back!2,lig!1).EGFR(back!2,lig!3) k22f,k22r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and both EGFR are free of EGF. +EGFR(back,lig) + EGFR(back,lig) <-> EGFR(back!1,lig).EGFR(back!1,lig) l20f,l20r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and only one EGFR is free of EGF. +EGFR(back,lig) + EGF(rec!1).EGFR(back,lig!1) <-> EGFR(back!2,lig).EGF(rec!1).EGFR(back!2,lig!1) l21f,l21r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and both EGFR are occupied by EGF. +EGF(rec!1).EGFR(back,lig!1) + EGF(rec!2).EGFR(back,lig!2) <-> EGF(rec!1).EGFR(back!3,lig!1).EGF(rec!2).EGFR(back!3,lig!2) l22f,l22r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and both EGFR are free of EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig).EGFR(cd~o!2,back,lig).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig).EGFR(cd~o!2,back!1,lig).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l20f, l20r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and only one EGFR is free of EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig).EGFR(cd~o!2,back,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig).EGFR(cd~o!2,back!1,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l21f, l21r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and both EGFR are occuplied by EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig!+).EGFR(cd~o!2,back,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig!+).EGFR(cd~o!2,back!1,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l22f, l22r + +# EGF-induced activating conformation change of EGFR cytosolic tail +EGFR(lig!+,cd~c) -> EGFR(lig!+,cd~o) k_o + +# EGF-independent deactivating conformatoin change of EGFR cytosolic tail +EGFR(cd~o) -> EGFR(cd~c) k_c + +# Crosslinking of conformationally-modified cytosolic tails of EGFR that are not tethered +EGFR(cd~o) + EGFR(cd~o) <-> EGFR(cd~o!1).EGFR(cd~o!1) kaf, kar + +# Crosslinking of conformationally-modified cytosolic tails of EGFR that are tethered (ring-closure reaction) +EGFR(cd~o,back!1).EGFR(cd~o!3,back!1).EGFR(cd~o!3,back!2).EGFR(cd~o,back!2) <-> EGFR(cd~o!4,back!1).EGFR(cd~o!3,back!1).EGFR(cd~o!3,back!2).EGFR(cd~o!4,back!2) chi_r*kaf, kar + +# EGFR phosphorylation +EGFR(cd~o!1).EGFR(cd~o!1,Y~u) -> EGFR(cd~o!1).EGFR(cd~o!1,Y~p) kp + +# EGFR dephosphorylation +EGFR(Y~p) -> EGFR(Y~u) kdp + +end reaction rules + +end model + +begin actions + +# find the reaction network implied by rules of the model +# The max_stoich setting below prohibits oligomers larger than tetramers. +generate_network({overwrite=>1,max_stoich=>{EGF=>4,EGFR=>4}}) + +# The generate_network command can be bypassed if a .net file is available +# (i.e., if a reaction network has already been derived from the rules of the model +# by calling generate_network). +# To bypass the generate_network command, comment it out (by placing a '#' character +# at the start of the line above). Then... create a new .bngl file (name.bngl) that +# starts with a line of the following form: +#readFile({file=>"path/example1.net"}) +# (Do not include the '#' character.) +# Then add simulation commands (such as those below). +# From the command line, type BNG2.pl name.bngl to run without network generation. +# If you need to change parameter values, you can edit parameter values in the .net file +# using a text editor. The .net file is a plain-text file. + +saveConcentrations() # save initial conditions specified in the seed species block +saveParameters() # save parameter values specified in the parameters block +# perform a parameter scan; outputs will be sent to .scan file +parameter_scan({parameter=>"LT",par_min=>0.001,par_max=>100,n_scan_pts=>6,log_scale=>1,\ + method=>"ode",t_start=>0,t_end=>1200,n_steps=>20,get_final_state=>0,\ + print_functions=>1,suffix=>"doseresponse"}) + +resetConcentrations() # reset to initial conditions specified in seed species block +resetParameters() # reset to parameter values specified in the parameters block +# perform a forward simulation; outputs will be sent to .gdat file +# report results at 30 s intervals +simulate({method=>"ode",t_start=>0,t_end=>600,n_steps=>20,\ + suffix=>"timecourse",print_functions=>1}) + +end actions diff --git a/PyBioNetGen/core/egfrode/metadata.yaml b/PyBioNetGen/core/egfrode/metadata.yaml new file mode 100644 index 00000000..33962a5b --- /dev/null +++ b/PyBioNetGen/core/egfrode/metadata.yaml @@ -0,0 +1,22 @@ +id: "egfr_ode" +name: "egfr ode" +description: "Filename: example1.bngl" +tags: ["egfr", "ode", "egf", "pre1_dose", "pre2_time", "pre3_dose"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/egfr_ode/egfr_ode.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/egfrode_published-models_PyBNG/README.md b/PyBioNetGen/core/egfrode_published-models_PyBNG/README.md new file mode 100644 index 00000000..33eb7819 --- /dev/null +++ b/PyBioNetGen/core/egfrode_published-models_PyBNG/README.md @@ -0,0 +1,21 @@ +# PyBNG: EGFR ODE + +EGFR ODE + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: published + +## Files + +- egfr_ode.bngl + +## Tags + +published, pybng, egfr, ode, egf, pre1_dose, pre2_time, pre3_dose diff --git a/PyBioNetGen/core/egfrode_published-models_PyBNG/egfr_ode.bngl b/PyBioNetGen/core/egfrode_published-models_PyBNG/egfr_ode.bngl new file mode 100644 index 00000000..d73463a3 --- /dev/null +++ b/PyBioNetGen/core/egfrode_published-models_PyBNG/egfr_ode.bngl @@ -0,0 +1,249 @@ +# Filename: example1.bngl +# This plain-text file is a BioNetGen input file. +# It is derived from File S1 of Kozer et al. (2013). +# Edits of File S1 were made by Brandon R. Thomas and William S. Hlavacek for inclusion in BioNetFit 1 +# Further edits were made by Eshan D. Mitra for inclusion in PyBioNetFit. +# Date of last modification: 15 May 2018 + + +begin model + +# A model for activation of the epidermal growth factor receptor (EGFR) +# This model is the model of Kozer et al. (2013). + +# References: +# Elleman TC et al. (2001) Biochemistry 40: 8930–8939. +# Faeder JR et al. (2009) Methods Mol Biol 500: 113-167. +# Kleiman et al. (2011) Mol Cell 43: 723-737. +# Kozer N et al. (2013) Mol BioSyst 9: 1849-1863. +# Low-Nam ST et al. (2011) Nat Struct Mol Biol 18: 1244-1249. +# Macdonald JL, Pike LJ (2008) Proc Natl Acad Sci USA 105: 112-117. +# Thomas BR et al. "GenFit: a fitting tool compatible with BioNetGen, NFsim, and distributed computing environments" + +begin parameters + +#See Table 1 in Kozer et al. (2013) for additional information about parameter values. +#It should be noted that BioNetGen treats rate constants as single-site rate constants. Thus, care must be taken to specify such rate constants, i.e., rate constants that do not incorporate statistical factors (which arise, for example, because a reactant has multiple indistinguishable copies of a reactive site) or factors that arise because of reactions that have the form A+A->product(s). See Faeder et al. (2009) for more details. + +LT 30 # Total ligand concentration (nM). A default concentration of 30 nM was used in cases where the ligand dose was not varied. In dose-response analyses, this concentration is varied in the range 0.001-100 nM. +RT 0.09 # Total receptor concentration (nM). The value is based on 90,000 EGFR per cell and a density of 6*10^6 cell/mL. + +K11 4.6 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR, which is not crosslinked with other EGFR via the ectodomain.The value is taken from Macdonald and Pike (2008), where it represents EGF binding with monomeric EGFR. +k11r 0.02 # Dissociation constant (/s). This value is taken from Elleman et al. (2001). +k11f 0.09 # Association constant (/nM/s). The value is derived from k11f = K11*k11r. + +K21 5.3 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR that is crosslinked via ectodomain with a second EGFR, and the crosslinked receptors both are free of EGF.The value is taken from Macdonald and Pike (2008). +k21r 0.02 # Single-site dissociation constaint (/s). We assume k21r to be the same as k11r. +k21f 0.053 # Association constant (/nM/s). The value is derived from k21f = K21*k21r/2. Division by 2 is a correction to obtain the single-site association rate constant (k21f) from the effective equilibrium association constant (K21). + +K22 0.34 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR that is crosslinked via ectodomain with a second EGFR and the second EGFR is occupied by EGF.The value is taken from Macdonald and Pike (2008). +k22r 0.2 # Single-site dissociation constaint (/s). We assume that k22r is 10-fold larger than k11r. This assumption is consistent with the difference between K11 (or K21) and K22. +k22f 0.136 # Single-site association constant in (/nM/s). The value is erived from k22f = 2*K22*k22r. Multiplication with 2 is applied to get single site association rate constant (k22f) from effective equilibrium association constant (K22). + +L20 212 # Equlibrium crossliinking constaint (/nM). The constant characterizes ectodomain-ectodomain interaction when both receptors are free from EGF. This parameter value is based on the value of 530 dm^2/nmol reported by Macdonald and Pike (2008) and the following assumptions: a receptor surface density of 1.175e-3 nmol/dm^2 (~20 eGFP-EGFR on average for a beam with a radius of 0.3 microns) for a cell line expressing 30,000 copies of EGFR per cell, receptor density is proportional to total receptor copy number, and a total receptor concentration of approximately 0.009 nM in the experiments of Macdonald and Pike (2008) involving cells expressing 87,000 copies of EGFR per cell (from the x-intercept of the Scatchard plot shown in the inset of Fig. 5A in the paper of Macdonald and Pike). In other words, we assume that the dimensionless quantity L20*RT is approximately 1.8 for cells with 87,000 copies of EGFR per cell. Moreover, we assume that the total number of cells used in the experiments of Macdonald and Pike (for a cell line with 87,000 copies of EGFR per cell) was such that the total concentration of EGFR was approximately 0.009 nM. If we further assume that the total number of cells used was the same in all experiments of Macdonald and Pike, then the dimensional value of L20 (in units consistent with those used for total EGF concentration) is 212 /nM (obtained by dividing the dimesionless quantity L20*RT by RT when RT is expressed in the same units as those used for total EGF concentration). +l20r 1.24 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011). +l20f 526 # Association rate constant in (/nM/s). Derived from l20f = 2*L20*l20r. Multiplication factor 2 is applied because the reactant pair are the same species (Fig.1). + +L21 244 # Equilibrium crosslinking constant (/nM). The constant characterizes ectodomain-ectodomain interaction when only one receptor is bound to EGF. The value is derived from the detailed balance relation, L21 = K21*L20/K11. +l21r 0.738 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011). +l21f 180 # Association rate constant (/nM/s). The value is derived from l21f = L21*l21r. + +L22 18.0 # Equilibrium crosslinking constant (/nM). The constant characterizes ectodomain-ectodomain interaction when both receptors are bound to EGF. The value is derived from the detailed balance relation, L22 = K22*L21/K11. +l22r 0.272 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011). +l22f 9.79 # Association rate constant (/nM/s). The value is derived from l22f = 2*L22*l22r. Multiplication factor 2 is applied because the reactant pair are the same species (Fig.1). + +k_o k_o__FREE # Rate constant for ligand-mediated activating conformation change in the cytosolic tail of EGFR (/s). The value is obtained from fitting. The value k_o__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +k_c k_c__FREE # Rate constant for ligand-independent deactivating conformation change in the cytosolic tail of EGFR (/s). The value is obtained from fitting. The value k_c__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +kaf kaf__FREE # Rate constant for EGFR tail-tail association mediated by EGFR kinase domain and juxtamembrane domains (/s). The value is obtained from fitting. The value kaf__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +kar kar__FREE # Rate constant for EGFR tail-tail dissociation (/s). The value is obtained from model fitting. The value kar__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +kp 1 # EGFR phosphorylation rate constant (/s). The value is consistent with data in Kleiman et al. (2011). +kdp 1 # EGFR dephoshporylation rate constant (/s). The value is consistent with data in Kleiman et al. (2011). + +chi_r chi_r__FREE # Enhancement factor for ring-closure reactions (nM). The value is obtained from fitting. The value chi_r__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +# average of all measurements for dataset 1 (Fig. 2B) +avg1 34.5 # (clusters per square micron) +# average of all measurements for dataset 2 (Fig. 3B) +avg2 25.6 # (clusters per square micron) +# average of all measurements for dataset 3 (Fig. 2D) +avg3 0.578 # (arbitrary units, relative fluorescence intensity) +# average of all measurements for dataset 4 (Fig. 3D) +avg4 0.75 # (arbitrary units, relative fluorescence intensity) + +# scaling factors for preprocessed datasets +# These scaling factors are used to relate model outputs to measurements +# when each dataset has been scaled so that the average of all measurements is 1. +alpha1_pre=alpha1_pre__FREE # /nM The value alpha1_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +alpha2_pre=alpha2_pre__FREE # /nM The value alpha2_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +alpha3_pre=alpha3_pre__FREE # /nM The value alpha3_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +alpha4_pre=alpha4_pre__FREE # /nM The value alpha4_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +# scaling factors for unprocessed datasets 1-4 +# Each scaling factor can be used to relate a model output to a measurement. +# dataset 1 of Fig. 2B (dose-response data; EGFR cluster density vs. EGF dose) +# alpha1*Clusters=measurement value +alpha1 alpha1_pre*avg1 # (clusters per square micron)/nM +# dataset 2 of Fig. 3B (time-series data; EGFR cluster density vs. time, 30 nM EGF) +# alpha2*Clusters=measurement value +alpha2 alpha2_pre*avg2 # (clusters per square micron)/nM +# dataset 3 of Fig. 2D (dose-response data; EGFR phosphorylation vs. EGF dose) +# alpha3*pEGFR=measurement value +alpha3 alpha3_pre*avg3 # (a.u.)/nM +# dataset 4 of Fig. 3D (time-series data; EGFR phosphorylation vs. time, 30 nM EGF) +# alpha4*pEGFR=measurement value +alpha4 alpha4_pre*avg4 # (a.u.)/nM + +# KD for ligand-independent receptor dimerization +KD = 2*l20r/l20f +# Find MT (monomer abundance) and DT (dimer abundance), +# which define the monomer-dimer equilibrium in the absence of ligand. +term = -1 + sqrt(1+8*RT/KD) +MT = term*KD/4 +DT = term*term*KD/16 + +end parameters + +begin molecule types +EGF(rec) +EGFR(back,lig,cd~c~o,Y~u~p) +end molecule types + +begin seed species +EGF(rec) LT +EGFR(back,lig,cd~c,Y~u) MT +EGFR(back!1,lig,cd~c,Y~u).EGFR(back!1,lig,cd~c,Y~u) DT +end seed species + +begin observables + +# Unbound EGF +Molecules EGFfree EGF(rec) + +# Ligand-free EGFR +Molecules EGFRfree EGFR(lig) + +# Clusters +Species Clusters EGFR==1 EGFR==2 EGFR==3 EGFR==4 + +# EGFR monomer +Species monomer EGFR==1 + +# EGFR dimer +Species dimer EGFR==2 + +# EGFR trimer +Species trimer EGFR==3 + +# EGFR tetramer +Species tetramer EGFR>3 # The pattern 'EGFR>3' can be used because the model does not permit oligomers larger than size 4. + +# Phosphorylated-EGFR +Molecules pEGFR EGFR(Y~p) + +end observables + +begin functions + +# The functions below generate outputs that can be directly compared to +# preprocessed data of Kozer et al. (2013). +pre1_dose()=alpha1_pre*Clusters # .scan file output (Fig. 2B) +pre2_time()=alpha2_pre*Clusters # .gdat file output (Fig. 3B) +pre3_dose()=alpha3_pre*pEGFR # .scan file output (Fig. 2D) +pre4_time()=alpha4_pre*pEGFR # .gdat file output (Fig. 3D) + +# The functions below generate outputs that can be directly compared to +# the (unprocessed) data reported by Kozer et al. (2013). +out1_cDens_dose()=alpha1*Clusters # .scan file output (Fig. 2B) +out2_cDens_time()=alpha2*Clusters # .gdat file output (Fig. 3B) +out3_pEGFR_dose()=alpha3*pEGFR # .scan file output (Fig. 2D) +out4_pEGFR_time()=alpha4*pEGFR # .gdat file output (Fig. 3D) + +end functions + +begin reaction rules + +# EGF binding to EGFR not crosslinked via the ectodomain. +EGF(rec) + EGFR(back,lig) <-> EGF(rec!1).EGFR(back,lig!1) k11f,k11r + +# EGF binding to EGFR that is crosslinked via the ectodomain to a second EGFR and both crosslinked EGFR are free of EGF. +EGF(rec) + EGFR(back!1,lig).EGFR(back!1,lig) <-> EGF(rec!2).EGFR(back!1,lig!2).EGFR(back!1,lig) k21f,k21r + +# EGF binding to EGFR that is crosslinked via the ectodomain to a second EGFR and the second EGFR is bound to EGF. +EGF(rec) + EGF(rec!1).EGFR(back!2,lig!1).EGFR(back!2,lig) <-> EGF(rec!3).EGF(rec!1).EGFR(back!2,lig!1).EGFR(back!2,lig!3) k22f,k22r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and both EGFR are free of EGF. +EGFR(back,lig) + EGFR(back,lig) <-> EGFR(back!1,lig).EGFR(back!1,lig) l20f,l20r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and only one EGFR is free of EGF. +EGFR(back,lig) + EGF(rec!1).EGFR(back,lig!1) <-> EGFR(back!2,lig).EGF(rec!1).EGFR(back!2,lig!1) l21f,l21r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and both EGFR are occupied by EGF. +EGF(rec!1).EGFR(back,lig!1) + EGF(rec!2).EGFR(back,lig!2) <-> EGF(rec!1).EGFR(back!3,lig!1).EGF(rec!2).EGFR(back!3,lig!2) l22f,l22r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and both EGFR are free of EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig).EGFR(cd~o!2,back,lig).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig).EGFR(cd~o!2,back!1,lig).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l20f, l20r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and only one EGFR is free of EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig).EGFR(cd~o!2,back,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig).EGFR(cd~o!2,back!1,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l21f, l21r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and both EGFR are occuplied by EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig!+).EGFR(cd~o!2,back,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig!+).EGFR(cd~o!2,back!1,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l22f, l22r + +# EGF-induced activating conformation change of EGFR cytosolic tail +EGFR(lig!+,cd~c) -> EGFR(lig!+,cd~o) k_o + +# EGF-independent deactivating conformatoin change of EGFR cytosolic tail +EGFR(cd~o) -> EGFR(cd~c) k_c + +# Crosslinking of conformationally-modified cytosolic tails of EGFR that are not tethered +EGFR(cd~o) + EGFR(cd~o) <-> EGFR(cd~o!1).EGFR(cd~o!1) kaf, kar + +# Crosslinking of conformationally-modified cytosolic tails of EGFR that are tethered (ring-closure reaction) +EGFR(cd~o,back!1).EGFR(cd~o!3,back!1).EGFR(cd~o!3,back!2).EGFR(cd~o,back!2) <-> EGFR(cd~o!4,back!1).EGFR(cd~o!3,back!1).EGFR(cd~o!3,back!2).EGFR(cd~o!4,back!2) chi_r*kaf, kar + +# EGFR phosphorylation +EGFR(cd~o!1).EGFR(cd~o!1,Y~u) -> EGFR(cd~o!1).EGFR(cd~o!1,Y~p) kp + +# EGFR dephosphorylation +EGFR(Y~p) -> EGFR(Y~u) kdp + +end reaction rules + +end model + +begin actions + +# find the reaction network implied by rules of the model +# The max_stoich setting below prohibits oligomers larger than tetramers. +generate_network({overwrite=>1,max_stoich=>{EGF=>4,EGFR=>4}}) + +# The generate_network command can be bypassed if a .net file is available +# (i.e., if a reaction network has already been derived from the rules of the model +# by calling generate_network). +# To bypass the generate_network command, comment it out (by placing a '#' character +# at the start of the line above). Then... create a new .bngl file (name.bngl) that +# starts with a line of the following form: +#readFile({file=>"path/example1.net"}) +# (Do not include the '#' character.) +# Then add simulation commands (such as those below). +# From the command line, type BNG2.pl name.bngl to run without network generation. +# If you need to change parameter values, you can edit parameter values in the .net file +# using a text editor. The .net file is a plain-text file. + +saveConcentrations() # save initial conditions specified in the seed species block +saveParameters() # save parameter values specified in the parameters block +# perform a parameter scan; outputs will be sent to .scan file +parameter_scan({parameter=>"LT",par_min=>0.001,par_max=>100,n_scan_pts=>6,log_scale=>1,\ + method=>"ode",t_start=>0,t_end=>1200,n_steps=>20,get_final_state=>0,\ + print_functions=>1,suffix=>"doseresponse"}) + +resetConcentrations() # reset to initial conditions specified in seed species block +resetParameters() # reset to parameter values specified in the parameters block +# perform a forward simulation; outputs will be sent to .gdat file +# report results at 30 s intervals +simulate({method=>"ode",t_start=>0,t_end=>600,n_steps=>20,\ + suffix=>"timecourse",print_functions=>1}) + +end actions diff --git a/PyBioNetGen/core/egfrode_published-models_PyBNG/metadata.yaml b/PyBioNetGen/core/egfrode_published-models_PyBNG/metadata.yaml new file mode 100644 index 00000000..94925b97 --- /dev/null +++ b/PyBioNetGen/core/egfrode_published-models_PyBNG/metadata.yaml @@ -0,0 +1,22 @@ +id: "egfr_ode" +name: "PyBNG: EGFR ODE" +description: "EGFR ODE" +tags: ["published", "pybng", "egfr", "ode", "egf", "pre1_dose", "pre2_time", "pre3_dose"] +category: "other" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/egfr_ode.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/example1/README.md b/PyBioNetGen/core/example1/README.md new file mode 100644 index 00000000..33d8699c --- /dev/null +++ b/PyBioNetGen/core/example1/README.md @@ -0,0 +1,21 @@ +# example1 + +Filename: example1.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- example1.bngl + +## Tags + +example1, egf, egfr, pre1_dose, pre2_time, pre3_dose diff --git a/PyBioNetGen/core/example1/example1.bngl b/PyBioNetGen/core/example1/example1.bngl new file mode 100644 index 00000000..7c15092b --- /dev/null +++ b/PyBioNetGen/core/example1/example1.bngl @@ -0,0 +1,254 @@ +================================================ +# Filename: example1.bngl +# This plain-text file is a BioNetGen input file. +# It is derived from File S1 of Kozer et al. (2013). +# Edits of File S1 were made by Brandon R. Thomas and William S. Hlavacek for inclusion in BioNetFit 1 +# Further edits were made by Eshan D. Mitra for inclusion in PyBioNetFit. +# Date of last modification: 15 May 2018 + + +begin model + +# A model for activation of the epidermal growth factor receptor (EGFR) +# This model is the model of Kozer et al. (2013). + +# References: +# Elleman TC et al. (2001) Biochemistry 40: 8930–8939. +# Faeder JR et al. (2009) Methods Mol Biol 500: 113-167. +# Kleiman et al. (2011) Mol Cell 43: 723-737. +# Kozer N et al. (2013) Mol BioSyst 9: 1849-1863. +# Low-Nam ST et al. (2011) Nat Struct Mol Biol 18: 1244-1249. +# Macdonald JL, Pike LJ (2008) Proc Natl Acad Sci USA 105: 112-117. +# Thomas BR et al. "GenFit: a fitting tool compatible with BioNetGen, NFsim, and distributed computing environments" + +begin parameters + +#See Table 1 in Kozer et al. (2013) for additional information about parameter values. +#It should be noted that BioNetGen treats rate constants as single-site rate constants. Thus, care must be taken to specify such rate constants, i.e., rate constants that do not incorporate statistical factors (which arise, for example, because a reactant has multiple indistinguishable copies of a reactive site) or factors that arise because of reactions that have the form A+A->product(s). See Faeder et al. (2009) for more details. + +LT 30 # Total ligand concentration (nM). A default concentration of 30 nM was used in cases where the ligand dose was not varied. In dose-response analyses, this concentration is varied in the range 0.001-100 nM. +RT 0.09 # Total receptor concentration (nM). The value is based on 90,000 EGFR per cell and a density of 6*10^6 cell/mL. + +K11 4.6 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR, which is not crosslinked with other EGFR via the ectodomain.The value is taken from Macdonald and Pike (2008), where it represents EGF binding with monomeric EGFR. +k11r 0.02 # Dissociation constant (/s). This value is taken from Elleman et al. (2001). +k11f 0.09 # Association constant (/nM/s). The value is derived from k11f = K11*k11r. + +K21 5.3 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR that is crosslinked via ectodomain with a second EGFR, and the crosslinked receptors both are free of EGF.The value is taken from Macdonald and Pike (2008). +k21r 0.02 # Single-site dissociation constaint (/s). We assume k21r to be the same as k11r. +k21f 0.053 # Association constant (/nM/s). The value is derived from k21f = K21*k21r/2. Division by 2 is a correction to obtain the single-site association rate constant (k21f) from the effective equilibrium association constant (K21). + +K22 0.34 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR that is crosslinked via ectodomain with a second EGFR and the second EGFR is occupied by EGF.The value is taken from Macdonald and Pike (2008). +k22r 0.2 # Single-site dissociation constaint (/s). We assume that k22r is 10-fold larger than k11r. This assumption is consistent with the difference between K11 (or K21) and K22. +k22f 0.136 # Single-site association constant in (/nM/s). The value is erived from k22f = 2*K22*k22r. Multiplication with 2 is applied to get single site association rate constant (k22f) from effective equilibrium association constant (K22). + +L20 212 # Equlibrium crossliinking constaint (/nM). The constant characterizes ectodomain-ectodomain interaction when both receptors are free from EGF. This parameter value is based on the value of 530 dm^2/nmol reported by Macdonald and Pike (2008) and the following assumptions: a receptor surface density of 1.175e-3 nmol/dm^2 (~20 eGFP-EGFR on average for a beam with a radius of 0.3 microns) for a cell line expressing 30,000 copies of EGFR per cell, receptor density is proportional to total receptor copy number, and a total receptor concentration of approximately 0.009 nM in the experiments of Macdonald and Pike (2008) involving cells expressing 87,000 copies of EGFR per cell (from the x-intercept of the Scatchard plot shown in the inset of Fig. 5A in the paper of Macdonald and Pike). In other words, we assume that the dimensionless quantity L20*RT is approximately 1.8 for cells with 87,000 copies of EGFR per cell. Moreover, we assume that the total number of cells used in the experiments of Macdonald and Pike (for a cell line with 87,000 copies of EGFR per cell) was such that the total concentration of EGFR was approximately 0.009 nM. If we further assume that the total number of cells used was the same in all experiments of Macdonald and Pike, then the dimensional value of L20 (in units consistent with those used for total EGF concentration) is 212 /nM (obtained by dividing the dimesionless quantity L20*RT by RT when RT is expressed in the same units as those used for total EGF concentration). +l20r 1.24 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011). +l20f 526 # Association rate constant in (/nM/s). Derived from l20f = 2*L20*l20r. Multiplication factor 2 is applied because the reactant pair are the same species (Fig.1). + +L21 244 # Equilibrium crosslinking constant (/nM). The constant characterizes ectodomain-ectodomain interaction when only one receptor is bound to EGF. The value is derived from the detailed balance relation, L21 = K21*L20/K11. +l21r 0.738 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011). +l21f 180 # Association rate constant (/nM/s). The value is derived from l21f = L21*l21r. + +L22 18.0 # Equilibrium crosslinking constant (/nM). The constant characterizes ectodomain-ectodomain interaction when both receptors are bound to EGF. The value is derived from the detailed balance relation, L22 = K22*L21/K11. +l22r 0.272 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011). +l22f 9.79 # Association rate constant (/nM/s). The value is derived from l22f = 2*L22*l22r. Multiplication factor 2 is applied because the reactant pair are the same species (Fig.1). + +k_o k_o__FREE # Rate constant for ligand-mediated activating conformation change in the cytosolic tail of EGFR (/s). The value is obtained from fitting. The value k_o__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +k_c k_c__FREE # Rate constant for ligand-independent deactivating conformation change in the cytosolic tail of EGFR (/s). The value is obtained from fitting. The value k_c__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +kaf kaf__FREE # Rate constant for EGFR tail-tail association mediated by EGFR kinase domain and juxtamembrane domains (/s). The value is obtained from fitting. The value kaf__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +kar kar__FREE # Rate constant for EGFR tail-tail dissociation (/s). The value is obtained from model fitting. The value kar__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +kp 1 # EGFR phosphorylation rate constant (/s). The value is consistent with data in Kleiman et al. (2011). +kdp 1 # EGFR dephoshporylation rate constant (/s). The value is consistent with data in Kleiman et al. (2011). + +chi_r chi_r__FREE # Enhancement factor for ring-closure reactions (nM). The value is obtained from fitting. The value chi_r__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +# average of all measurements for dataset 1 (Fig. 2B) +avg1 34.5 # (clusters per square micron) +# average of all measurements for dataset 2 (Fig. 3B) +avg2 25.6 # (clusters per square micron) +# average of all measurements for dataset 3 (Fig. 2D) +avg3 0.578 # (arbitrary units, relative fluorescence intensity) +# average of all measurements for dataset 4 (Fig. 3D) +avg4 0.75 # (arbitrary units, relative fluorescence intensity) + +# scaling factors for preprocessed datasets +# These scaling factors are used to relate model outputs to measurements +# when each dataset has been scaled so that the average of all measurements is 1. +alpha1_pre=alpha1_pre__FREE # /nM The value alpha1_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +alpha2_pre=alpha2_pre__FREE # /nM The value alpha2_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +alpha3_pre=alpha3_pre__FREE # /nM The value alpha3_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +alpha4_pre=alpha4_pre__FREE # /nM The value alpha4_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +# scaling factors for unprocessed datasets 1-4 +# Each scaling factor can be used to relate a model output to a measurement. +# dataset 1 of Fig. 2B (dose-response data; EGFR cluster density vs. EGF dose) +# alpha1*Clusters=measurement value +alpha1 alpha1_pre*avg1 # (clusters per square micron)/nM +# dataset 2 of Fig. 3B (time-series data; EGFR cluster density vs. time, 30 nM EGF) +# alpha2*Clusters=measurement value +alpha2 alpha2_pre*avg2 # (clusters per square micron)/nM +# dataset 3 of Fig. 2D (dose-response data; EGFR phosphorylation vs. EGF dose) +# alpha3*pEGFR=measurement value +alpha3 alpha3_pre*avg3 # (a.u.)/nM +# dataset 4 of Fig. 3D (time-series data; EGFR phosphorylation vs. time, 30 nM EGF) +# alpha4*pEGFR=measurement value +alpha4 alpha4_pre*avg4 # (a.u.)/nM + +# KD for ligand-independent receptor dimerization +KD = 2*l20r/l20f +# Find MT (monomer abundance) and DT (dimer abundance), +# which define the monomer-dimer equilibrium in the absence of ligand. +term = -1 + sqrt(1+8*RT/KD) +MT = term*KD/4 +DT = term*term*KD/16 + +end parameters + +begin molecule types +EGF(rec) +EGFR(back,lig,cd~c~o,Y~u~p) +end molecule types + +begin seed species +EGF(rec) LT +EGFR(back,lig,cd~c,Y~u) MT +EGFR(back!1,lig,cd~c,Y~u).EGFR(back!1,lig,cd~c,Y~u) DT +end seed species + +begin observables + +# Unbound EGF +Molecules EGFfree EGF(rec) + +# Ligand-free EGFR +Molecules EGFRfree EGFR(lig) + +# Clusters +Species Clusters EGFR==1 EGFR==2 EGFR==3 EGFR==4 + +# EGFR monomer +Species monomer EGFR==1 + +# EGFR dimer +Species dimer EGFR==2 + +# EGFR trimer +Species trimer EGFR==3 + +# EGFR tetramer +Species tetramer EGFR>3 # The pattern 'EGFR>3' can be used because the model does not permit oligomers larger than size 4. + +# Phosphorylated-EGFR +Molecules pEGFR EGFR(Y~p) + +end observables + +begin functions + +# The functions below generate outputs that can be directly compared to +# preprocessed data of Kozer et al. (2013). +pre1_dose()=alpha1_pre*Clusters # .scan file output (Fig. 2B) +pre2_time()=alpha2_pre*Clusters # .gdat file output (Fig. 3B) +pre3_dose()=alpha3_pre*pEGFR # .scan file output (Fig. 2D) +pre4_time()=alpha4_pre*pEGFR # .gdat file output (Fig. 3D) + +# The functions below generate outputs that can be directly compared to +# the (unprocessed) data reported by Kozer et al. (2013). +out1_cDens_dose()=alpha1*Clusters # .scan file output (Fig. 2B) +out2_cDens_time()=alpha2*Clusters # .gdat file output (Fig. 3B) +out3_pEGFR_dose()=alpha3*pEGFR # .scan file output (Fig. 2D) +out4_pEGFR_time()=alpha4*pEGFR # .gdat file output (Fig. 3D) + +end functions + +begin reaction rules + +# EGF binding to EGFR not crosslinked via the ectodomain. +EGF(rec) + EGFR(back,lig) <-> EGF(rec!1).EGFR(back,lig!1) k11f,k11r + +# EGF binding to EGFR that is crosslinked via the ectodomain to a second EGFR and both crosslinked EGFR are free of EGF. +EGF(rec) + EGFR(back!1,lig).EGFR(back!1,lig) <-> EGF(rec!2).EGFR(back!1,lig!2).EGFR(back!1,lig) k21f,k21r + +# EGF binding to EGFR that is crosslinked via the ectodomain to a second EGFR and the second EGFR is bound to EGF. +EGF(rec) + EGF(rec!1).EGFR(back!2,lig!1).EGFR(back!2,lig) <-> EGF(rec!3).EGF(rec!1).EGFR(back!2,lig!1).EGFR(back!2,lig!3) k22f,k22r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and both EGFR are free of EGF. +EGFR(back,lig) + EGFR(back,lig) <-> EGFR(back!1,lig).EGFR(back!1,lig) l20f,l20r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and only one EGFR is free of EGF. +EGFR(back,lig) + EGF(rec!1).EGFR(back,lig!1) <-> EGFR(back!2,lig).EGF(rec!1).EGFR(back!2,lig!1) l21f,l21r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and both EGFR are occupied by EGF. +EGF(rec!1).EGFR(back,lig!1) + EGF(rec!2).EGFR(back,lig!2) <-> EGF(rec!1).EGFR(back!3,lig!1).EGF(rec!2).EGFR(back!3,lig!2) l22f,l22r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and both EGFR are free of EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig).EGFR(cd~o!2,back,lig).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig).EGFR(cd~o!2,back!1,lig).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l20f, l20r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and only one EGFR is free of EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig).EGFR(cd~o!2,back,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig).EGFR(cd~o!2,back!1,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l21f, l21r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and both EGFR are occuplied by EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig!+).EGFR(cd~o!2,back,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig!+).EGFR(cd~o!2,back!1,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l22f, l22r + +# EGF-induced activating conformation change of EGFR cytosolic tail +EGFR(lig!+,cd~c) -> EGFR(lig!+,cd~o) k_o + +# EGF-independent deactivating conformatoin change of EGFR cytosolic tail +EGFR(cd~o) -> EGFR(cd~c) k_c + +# Crosslinking of conformationally-modified cytosolic tails of EGFR that are not tethered +EGFR(cd~o) + EGFR(cd~o) <-> EGFR(cd~o!1).EGFR(cd~o!1) kaf, kar + +# Crosslinking of conformationally-modified cytosolic tails of EGFR that are tethered (ring-closure reaction) +EGFR(cd~o,back!1).EGFR(cd~o!3,back!1).EGFR(cd~o!3,back!2).EGFR(cd~o,back!2) <-> EGFR(cd~o!4,back!1).EGFR(cd~o!3,back!1).EGFR(cd~o!3,back!2).EGFR(cd~o!4,back!2) chi_r*kaf, kar + +# EGFR phosphorylation +EGFR(cd~o!1).EGFR(cd~o!1,Y~u) -> EGFR(cd~o!1).EGFR(cd~o!1,Y~p) kp + +# EGFR dephosphorylation +EGFR(Y~p) -> EGFR(Y~u) kdp + +end reaction rules + +end model + +begin actions + +# find the reaction network implied by rules of the model +# The max_stoich setting below prohibits oligomers larger than tetramers. +generate_network({overwrite=>1,max_stoich=>{EGF=>4,EGFR=>4}}) + +# The generate_network command can be bypassed if a .net file is available +# (i.e., if a reaction network has already been derived from the rules of the model +# by calling generate_network). +# To bypass the generate_network command, comment it out (by placing a '#' character +# at the start of the line above). Then... create a new .bngl file (name.bngl) that +# starts with a line of the following form: +#readFile({file=>"path/example1.net"}) +# (Do not include the '#' character.) +# Then add simulation commands (such as those below). +# From the command line, type BNG2.pl name.bngl to run without network generation. +# If you need to change parameter values, you can edit parameter values in the .net file +# using a text editor. The .net file is a plain-text file. + +saveConcentrations() # save initial conditions specified in the seed species block +saveParameters() # save parameter values specified in the parameters block +# perform a parameter scan; outputs will be sent to .scan file +parameter_scan({parameter=>"LT",par_min=>0.001,par_max=>100,n_scan_pts=>6,log_scale=>1,\ + method=>"ode",t_start=>0,t_end=>1200,n_steps=>20,get_final_state=>0,\ + print_functions=>1,suffix=>"doseresponse"}) + +resetConcentrations() # reset to initial conditions specified in seed species block +resetParameters() # reset to parameter values specified in the parameters block +# perform a forward simulation; outputs will be sent to .gdat file +# report results at 30 s intervals +simulate({method=>"ode",t_start=>0,t_end=>600,n_steps=>20,\ + suffix=>"timecourse",print_functions=>1}) + +end actions + + + +================================================ diff --git a/PyBioNetGen/core/example1/metadata.yaml b/PyBioNetGen/core/example1/metadata.yaml new file mode 100644 index 00000000..ead4ad06 --- /dev/null +++ b/PyBioNetGen/core/example1/metadata.yaml @@ -0,0 +1,22 @@ +id: "example1" +name: "example1" +description: "Filename: example1.bngl" +tags: ["example1", "egf", "egfr", "pre1_dose", "pre2_time", "pre3_dose"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/egfr_ode/example1.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/example2startingpoint/README.md b/PyBioNetGen/core/example2startingpoint/README.md new file mode 100644 index 00000000..8e0a84e9 --- /dev/null +++ b/PyBioNetGen/core/example2startingpoint/README.md @@ -0,0 +1,21 @@ +# example2 starting point + +Filename: example2_starting_point.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: nf +- Imported from: published + +## Files + +- example2_starting_point.bngl + +## Tags + +example2, starting, point, egf, egfr, clusters, pre1_dose, pre2_time diff --git a/PyBioNetGen/core/example2startingpoint/example2_starting_point.bngl b/PyBioNetGen/core/example2startingpoint/example2_starting_point.bngl new file mode 100644 index 00000000..e1184ae1 --- /dev/null +++ b/PyBioNetGen/core/example2startingpoint/example2_starting_point.bngl @@ -0,0 +1,299 @@ +================================================ +# Filename: example2_starting_point.bngl +# This plain-text file is a BioNetGen input file. +# It is derived from the supplemental BioNetGen input file of Kozer et al. (2014): +# bi500182x_si_001.txt +# Edits of this file were made by Brandon R. Thomas and William S. Hlavacek for inclusion with BioNetFit 1 +# Further edits were made by Eshan D. Mitra for inclusion in PyBioNetFit. +# Date of last modification: 18 June 2015 + +begin model + +# A model for activation of the epidermal growth factor receptor (EGFR) +# This model is an extension of the model of Kozer et al. (2013). + +# References: +# Elleman TC et al. (2001) Biochemistry 40: 8930–8939. +# Faeder JR et al. (2009) Methods Mol Biol 500: 113-167. +# Kleiman et al. (2011) Mol Cell 43: 723-737. +# Kozer N et al. (2013) Mol BioSyst 9: 1849-1863. +# Kozer N et al. (2014) Biochemistry 53: 2594-2604. +# Low-Nam ST et al. (2011) Nat Struct Mol Biol 18: 1244-1249. +# Macdonald JL, Pike LJ (2008) Proc Natl Acad Sci USA 105: 112-117. +# Thomas BR et al. "GenFit: a fitting tool compatible with BioNetGen, NFsim, and distributed computing environments" + +begin parameters + +NA 6.02214e14 # [=] number of molecules per nmol +f 0.01 # fraction of cell to consider in simulation, dimensionless +cellDen 6.0e8 # [=] number of cells per L +Vo=f/cellDen # volume of fluid surrounding a single cell on average + +# See Table 1 in Kozer et al. (2013) for additional information about parameter values. +# The unit system used here differs from that used in the study of Kozer et al. (2014). +# Here, we are using the unit system used by Kozer et al. (2014) and that recommended by Faeder et al. (2009). +# The two unit systems differ with respect to the unit used for abundance. +# Kozer et al. (2013) used nM, whereas Kozer et al. (2014) used molecules per cell. +# The two unit systems are related as follows: 1 nM = 1e6 molecules per cell. + +# It should be noted that BioNetGen treats rate constants as single-site rate constants. Thus, care must be taken to specify such rate constants, i.e., rate constants that do not incorporate statistical factors (which arise, for example, because a reactant has multiple indistinguishable copies of a reactive site) or factors that arise because of reactions that have the form A+A->product(s). See Faeder et al. (2009) for more details. + +LT_nM 30 # Total ligand concentration (nM). A default concentration of 30 nM was used in cases where the ligand dose was not varied. In dose-response analyses, this concentration is varied in the range 0.001-100 nM. +# convert from nM to molecules per cell +LT=LT_nM*NA*Vo + +RT 0.09*NA*Vo # Total receptor concentration (nM). The value is based on 90,000 EGFR per cell and a density of 6*10^5 cell/mL. + +K11 4.6 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR, which is not crosslinked with other EGFR via the ectodomain.The value is taken from Macdonald and Pike (2008), where it represents EGF binding with monomeric EGFR. +k11r 0.02 # Dissociation constant (/s). This value is taken from Elleman et al. (2001). +k11f K11*k11r/(NA*Vo) # Association constant (/nM/s). The value is derived from k11f = K11*k11r. + +K21 5.3 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR that is crosslinked via ectodomain with a second EGFR, and the crosslinked receptors both are free of EGF. The value is taken from Macdonald and Pike (2008). +k21r 0.02 # Single-site dissociation constaint (/s). We assume k21r to be the same as k11r. +k21f K21*k21r/2/(NA*Vo) # Association constant (/nM/s). The value is derived from k21f = K21*k21r/2. Division by 2 is a correction to obtain the single-site association rate constant (k21f) from the effective equilibrium association constant (K21). + +K22 0.34 # Equilibrium association constant (/nM). The constant characterizes binding of EGF with EGFR that is crosslinked via ectodomain with a second EGFR and the second EGFR is occupied by EGF.The value is taken from Macdonald and Pike (2008). +k22r 0.2 # Single-site dissociation constaint (/s). We assume that k22r is 10-fold larger than k11r. This assumption is consistent with the difference between K11 (or K21) and K22. +k22f 2*K22*k22r/(NA*Vo) # Single-site association constant in (/nM/s). The value is erived from k22f = 2*K22*k22r. Multiplication with 2 is applied to get single site association rate constant (k22f) from effective equilibrium association constant (K22). + +L20 212 # Equlibrium crossliinking constaint (/nM). The constant characterizes ectodomain-ectodomain interaction when both receptors are free from EGF. This parameter value is based on the value of 530 dm^2/nmol reported by Macdonald and Pike (2008) and the following assumptions: a receptor surface density of 1.175e-3 nmol/dm^2 (~20 eGFP-EGFR on average for a beam with a radius of 0.3 microns) for a cell line expressing 30,000 copies of EGFR per cell, receptor density is proportional to total receptor copy number, and a total receptor concentration of approximately 0.009 nM in the experiments of Macdonald and Pike (2008) involving cells expressing 87,000 copies of EGFR per cell (from the x-intercept of the Scatchard plot shown in the inset of Fig. 5A in the paper of Macdonald and Pike). In other words, we assume that the dimensionless quantity L20*RT is approximately 1.8 for cells with 87,000 copies of EGFR per cell. Moreover, we assume that the total number of cells used in the experiments of Macdonald and Pike (for a cell line with 87,000 copies of EGFR per cell) was such that the total concentration of EGFR was approximately 0.009 nM. If we further assume that the total number of cells used was the same in all experiments of Macdonald and Pike, then the dimensional value of L20 (in units consistent with those used for total EGF concentration) is 212 /nM (obtained by dividing the dimesionless quantity L20*RT by RT when RT is expressed in the same units as those used for total EGF concentration). +l20r 1.24 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011). +l20f 2*L20*l20r/(NA*Vo) # Association rate constant in (/nM/s). Derived from l20f = 2*L20*l20r. Multiplication factor 2 is applied because the reactant pair are the same species. + +L21 244 # Equilibrium crosslinking constant (/nM). The constant characterizes ectodomain-ectodomain interaction when only one receptor is bound to EGF. The value is derived from the detailed balance relation, L21 = K21*L20/K11. +l21r 0.738 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011). +l21f L21*l21r/(NA*Vo) # Association rate constant (/nM/s). The value is derived from l21f = L21*l21r. + +L22 18.0 # Equilibrium crosslinking constant (/nM). The constant characterizes ectodomain-ectodomain interaction when both receptors are bound to EGF. The value is derived from the detailed balance relation, L22 = K22*L21/K11. +l22r 0.272 # Dissociation rate constant in (/s). The value is taken from Low-Nam et al. (2011). +l22f 2*L22*l22r/(NA*Vo) # Association rate constant (/nM/s). The value is derived from l22f = 2*L22*l22r. Multiplication factor 2 is applied because the reactant pair are the same species. + +k_o k_o__FREE # Rate constant for ligand-mediated activating conformation change in the cytosolic tail of EGFR (/s). The value is obtained from fitting. The value k_o__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +k_c k_c__FREE # Rate constant for ligand-independent deactivating conformation change in the cytosolic tail of EGFR (/s). The value is obtained from fitting. The value k_c__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +kaf kaf__FREE/(NA*Vo) # Rate constant for EGFR tail-tail association mediated by EGFR kinase domain and juxtamembrane domains (/s). The value is obtained from fitting. The value kaf__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +kar kar__FREE # Rate constant for EGFR tail-tail dissociation (/s). The value is obtained from model fitting. The value kar__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +kp 1 # EGFR phosphorylation rate constant (/s). The value is consistent with data in Kleiman et al. (2011). +kdp 1 # EGFR dephoshporylation rate constant (/s). The value is consistent with data in Kleiman et al. (2011). + +chi_r chi_r__FREE*(NA*Vo) # Enhancement factor for ring-closure reactions (nM). The value is obtained from fitting. The value chi_r__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +# average of all measurements for dataset 1 (Fig. 2B) +avg1 34.5 # (clusters per square micron) +# average of all measurements for dataset 2 (Fig. 3B) +avg2 25.6 # (clusters per square micron) +# average of all measurements for dataset 3 (Fig. 2D) +avg3 0.578 # (arbitrary units, relative fluorescence intensity) +# average of all measurements for dataset 4 (Fig. 3D) +avg4 0.75 # (arbitrary units, relative fluorescence intensity) + +# scaling factors for preprocessed datasets +# These scaling factors are used to relate model outputs to measurements +# when each dataset has been scaled so that the average of all measurements is 1. +alpha1_pre=alpha1_pre__FREE # /(molecule/cell) The value alpha1_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +alpha2_pre=alpha2_pre__FREE # /(molecule/cell) The value alpha2_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +alpha3_pre=alpha3_pre__FREE # /(molecule/cell) The value alpha3_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. +alpha4_pre=alpha4_pre__FREE # /(molecule/cell) The value alpha4_pre__FREE is specified in the GenFit configuration file and will be replaced by a value generated by GenFit. + +# scaling factors for unprocessed datasets 1-4 +# Each scaling factor can be used to relate a model output to a measurement. +# dataset 1 of Fig. 2B (dose-response data; EGFR cluster density vs. EGF dose) +# alpha1*Clusters=measurement value +alpha1=alpha1_pre*avg1 # (clusters per square micron)/(molecule/cell) +# dataset 2 of Fig. 3B (time-series data; EGFR cluster density vs. time, 30 nM EGF) +# alpha2*Clusters=measurement value +alpha2=alpha2_pre*avg2 # (clusters per square micron)/(molecule/cell) +# dataset 3 of Fig. 2D (dose-response data; EGFR phosphorylation vs. EGF dose) +# alpha3*pEGFR=measurement value +alpha3=alpha3_pre*avg3 # (a.u.)/(molecule/cell) +# dataset 4 of Fig. 3D (time-series data; EGFR phosphorylation vs. time, 30 nM EGF) +# alpha4*pEGFR=measurement value +alpha4=alpha4_pre*avg4 # (a.u.)/(molecule/cell) + +# In the absence of ligand there is a monomer-dimer equilibrium. +# Monomer abundance is given by MT, and dimer abundance is given by DT. +KD = 2*l20r/l20f +term = -1 + sqrt(1+8*RT/KD) +MT = term*KD/4 +DT = term*term*KD/16 + +end parameters + +begin molecule types +EGF(rec) +EGFR(back,lig,cd~c~o,Y~u~p) +end molecule types + +begin seed species +EGF(rec) LT +EGFR(back,lig,cd~c,Y~u) MT +EGFR(back!1,lig,cd~c,Y~u).EGFR(back!1,lig,cd~c,Y~u) DT +end seed species + +begin observables + +# NB: observables will report # per subvolume (not # per cell), where subvolume size is determined by f. +# It is necessary to divide by f to obtain # per cell. +# However, observables cannot be scaled directly. +# To scale the value of an observable, it is necessary to define an appropriate function. +# Here's an example: +# scaled_obs()=obs/f # this function converts # per subvolume to # per cell + +# Unbound EGF +Molecules EGFfree EGF(rec) + +# Ligand-free EGFR +Molecules EGFRfree EGFR(lig) + +Molecules all_receptors EGFR() + +# Clusters +# The observable definition below considers EGFR oligomers up to size 20 (i.e., oligomers containing 20 copies of EGFR). +# Oligomers of size 10+ only very rarely form (results not shown). +#Species Clusters EGFR==1 EGFR==2 EGFR==3 EGFR==4 EGFR==5 EGFR==6 EGFR==7 EGFR==8 EGFR==9 EGFR==10 \ +# EGFR==11 EGFR==12 EGFR==13 EGFR==14 EGFR==15 EGFR==16 EGFR==17 EGFR==18 EGFR==19 EGFR==20 + +# EGFR monomer +Species monomer EGFR==1 + +# EGFR dimer +Species dimer EGFR==2 + +# EGFR trimer +Species trimer EGFR==3 + +# EGFR tetramer +Species tetramer EGFR==4 + +# higher-order oligomers up to 20-mers +Species pentamer EGFR==5 +Species hexamer EGFR==6 +Species heptamer EGFR==7 +Species octamer EGFR==8 +Species nonamer EGFR==9 +Species decamer EGFR==10 +Species undecamer EGFR==11 +Species dodecamer EGFR==12 +Species tridecamer EGFR==13 +Species tetradecamer EGFR==14 +Species pentadecamer EGFR==15 +Species hexadecamer EGFR==16 +Species heptadecamer EGFR==17 +Species octadecamer EGFR==18 +Species nonadecamer EGFR==19 +Species icosadecamer EGFR==20 + +# Phosphorylated-EGFR +Molecules pEGFR EGFR(Y~p) + +end observables + +begin functions + +Clusters()=monomer+dimer+trimer+tetramer+pentamer+hexamer+heptamer+octamer+nonamer+decamer+undecamer+dodecamer+tridecamer+tetradecamer+pentadecamer+hexadecamer+heptadecamer+octadecamer+nonadecamer+icosadecamer + +# The functions below generate outputs that can be directly compared to +# preprocessed data of Kozer et al. (2013). +# We need to divide observables by f to obtain quantities with units of # per cell rather than units of # per subvolume. +pre1_dose()=alpha1_pre*Clusters()/f # .scan file output (Fig. 2B) +pre2_time()=alpha2_pre*Clusters()/f # .gdat file output (Fig. 3B) +pre3_dose()=alpha3_pre*pEGFR/f # .scan file output (Fig. 2D) +pre4_time()=alpha4_pre*pEGFR/f # .gdat file output (Fig. 3D) + +# The functions below generate outputs that can be directly compared to +# the (unprocessed) data reported by Kozer et al. (2013). +# We need to divide observables by f to obtain quantities with units of # per cell rather than units of # per subvolume. +out1_cDens_dose()=alpha1*Clusters()/f # .scan file output (Fig. 2B) +out2_cDens_time()=alpha2*Clusters()/f # .gdat file output (Fig. 3B) +out3_pEGFR_dose()=alpha3*pEGFR/f # .scan file output (Fig. 2D) +out4_pEGFR_time()=alpha4*pEGFR/f # .gdat file output (Fig. 3D) + +receptors_in_small_oligo()=(1*monomer+2*dimer+3*trimer+4*tetramer)/f +receptors_in_large_oligo()=(5*pentamer+6*hexamer+7*heptamer+8*octamer+9*nonamer+10*decamer\ + +11*undecamer+12*dodecamer+13*tridecamer+14*tetradecamer\ + +15*pentadecamer+16*hexadecamer+17*heptadecamer+18*octadecamer\ + +19*nonadecamer+20*icosadecamer)/f + +end functions + +begin reaction rules + +# EGF binding to EGFR not crosslinked via the ectodomain. +EGF(rec) + EGFR(back,lig) <-> EGF(rec!1).EGFR(back,lig!1) k11f,k11r + +# EGF binding to EGFR that is crosslinked via the ectodomain to a second EGFR and both crosslinked EGFR are free of EGF. +EGF(rec) + EGFR(back!1,lig).EGFR(back!1,lig) <-> EGF(rec!2).EGFR(back!1,lig!2).EGFR(back!1,lig) k21f,k21r + +# EGF binding to EGFR that is crosslinked via the ectodomain to a second EGFR and the second EGFR is bound to EGF. +EGF(rec) + EGF(rec!1).EGFR(back!2,lig!1).EGFR(back!2,lig) <-> EGF(rec!3).EGF(rec!1).EGFR(back!2,lig!1).EGFR(back!2,lig!3) k22f,k22r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and both EGFR are free of EGF. +EGFR(back,lig) + EGFR(back,lig) <-> EGFR(back!1,lig).EGFR(back!1,lig) l20f,l20r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and only one EGFR is free of EGF. +EGFR(back,lig) + EGF(rec!1).EGFR(back,lig!1) <-> EGFR(back!2,lig).EGF(rec!1).EGFR(back!2,lig!1) l21f,l21r + +# Ectodomain-ectodomain crosslinking of two EGFR that are not tethered and both EGFR are occupied by EGF. +EGF(rec!1).EGFR(back,lig!1) + EGF(rec!2).EGFR(back,lig!2) <-> EGF(rec!1).EGFR(back!3,lig!1).EGF(rec!2).EGFR(back!3,lig!2) l22f,l22r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and both EGFR are free of EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig).EGFR(cd~o!2,back,lig).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig).EGFR(cd~o!2,back!1,lig).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l20f, l20r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and only one EGFR is free of EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig).EGFR(cd~o!2,back,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig).EGFR(cd~o!2,back!1,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l21f, l21r + +# Ectodomain-ectodomain crosslinking of two EGFR that are tethered and both EGFR are occuplied by EGF (ring-closure reaction) +EGFR(cd~o!4,back,lig!+).EGFR(cd~o!2,back,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) <-> EGFR(cd~o!4,back!1,lig!+).EGFR(cd~o!2,back!1,lig!+).EGFR(cd~o!2,back!3).EGFR(cd~o!4,back!3) chi_r*l22f, l22r + +# EGF-induced activating conformation change of EGFR cytosolic tail +EGFR(lig!+,cd~c) -> EGFR(lig!+,cd~o) k_o + +# EGF-independent deactivating conformatoin change of EGFR cytosolic tail +EGFR(cd~o) -> EGFR(cd~c) k_c + +# Crosslinking of conformationally-modified cytosolic tails of EGFR that are not tethered +EGFR(cd~o) + EGFR(cd~o) <-> EGFR(cd~o!1).EGFR(cd~o!1) kaf, kar + +# Crosslinking of conformationally-modified cytosolic tails of EGFR that are tethered (ring-closure reaction) +EGFR(cd~o,back!1).EGFR(cd~o!3,back!1).EGFR(cd~o!3,back!2).EGFR(cd~o,back!2) <-> EGFR(cd~o!4,back!1).EGFR(cd~o!3,back!1).EGFR(cd~o!3,back!2).EGFR(cd~o!4,back!2) chi_r*kaf, kar + +# EGFR phosphorylation +EGFR(cd~o!1).EGFR(cd~o!1,Y~u) -> EGFR(cd~o!1).EGFR(cd~o!1,Y~p) kp + +# EGFR dephosphorylation +EGFR(Y~p) -> EGFR(Y~u) kdp + +end reaction rules + +end model + +begin actions + +# Save parameters and concentrations since we will need to reset to the saved +# values after the parameter_scan +saveConcentrations() +saveParameters() + +# The output of the simulation call below will be sent to a .scan file. +parameter_scan({suffix=>"doseresponse",\ + parameter=>"LT_nM",par_min=>0.001,par_max=>100,n_scan_pts=>6,log_scale=>1,\ + method=>"nf",complex=>1,get_final_state=>0,gml=>1000000,\ + t_start=>0,t_end=>600,n_steps=>1,\ + print_functions=>1}) + +# Reset parameters and concentrations to saved values before the time series simulation +resetConcentrations() +resetParameters() + +# The output of the simulation call below will be sent to a .gdat file. +simulate({suffix=>"timecourse",\ + method=>"nf",complex=>1,get_final_state=>0,gml=>1000000,\ + t_start=>0,t_end=>600,n_steps=>20,\ + print_functions=>1}) + +end actions + + + +================================================ diff --git a/PyBioNetGen/core/example2startingpoint/metadata.yaml b/PyBioNetGen/core/example2startingpoint/metadata.yaml new file mode 100644 index 00000000..d94f6e2b --- /dev/null +++ b/PyBioNetGen/core/example2startingpoint/metadata.yaml @@ -0,0 +1,22 @@ +id: "example2_starting_point" +name: "example2 starting point" +description: "Filename: example2_starting_point.bngl" +tags: ["example2", "starting", "point", "egf", "egfr", "clusters", "pre1_dose", "pre2_time"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["nf"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/egfr_nf/example2_starting_point.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/fcerigamma2/README.md b/PyBioNetGen/core/fcerigamma2/README.md new file mode 100644 index 00000000..b9bb7c74 --- /dev/null +++ b/PyBioNetGen/core/fcerigamma2/README.md @@ -0,0 +1,21 @@ +# fceri gamma2 + +BioNetGen model: fceri gamma2 + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ssa +- Imported from: published + +## Files + +- fceri_gamma2.bngl + +## Tags + +fceri, gamma2, lig, lyn, syk, rec diff --git a/PyBioNetGen/core/fcerigamma2/fceri_gamma2.bngl b/PyBioNetGen/core/fcerigamma2/fceri_gamma2.bngl new file mode 100644 index 00000000..6379151c --- /dev/null +++ b/PyBioNetGen/core/fcerigamma2/fceri_gamma2.bngl @@ -0,0 +1,129 @@ +================================================ +begin parameters +Lig_tot 6000 +Rec_tot 400 +Lyn_tot 28 +Syk_tot 400 + + kp1 kp1__FREE + km1 0 + kp2 kp2__FREE + km2 0 + kpL kpL__FREE + kmL kmL__FREE +kpLs kpLs__FREE +kmLs kmLs__FREE + kpS kps__FREE + kmS kmS__FREE +kpSs kpSs__FREE +kmSs kmSs__FREE + pLb pLb__FREE +pLbs pLbs__FREE + pLg pLg__FREE +pLgs pLgs__FREE + pLS pLS__FREE +pLSs pLSs__FREE + pSS pSS__FREE +pSSs pSSs__FREE + dm dm__FREE + dc dc__FREE +end parameters + + +# Added molecule type definition block so that the +# xml properly defines all extra possible states for +# each component - sneddon +begin molecule types +Lig(l,l) +Lyn(U,SH2) +Syk(tSH2,l~Y~pY,a~Y~pY) +Rec(a,b~Y~pY,g~Y~pY,g~Y~pY) +end molecule types + +begin species +Lig(l,l) Lig_tot +Lyn(U,SH2) Lyn_tot +Syk(tSH2,l~Y,a~Y) Syk_tot +Rec(a,b~Y,g~Y,g~Y) Rec_tot +end species + + +begin observables +Molecules LynFree Lyn(U,SH2) +Molecules RecMon Rec(a) Rec(a!1).Lig(l!1,l) +Molecules RecPbeta Rec(b~pY!?) +Molecules RecPgamma Rec(g~pY) Rec(g~pY!+) +Molecules RecSyk Rec(g~pY!1).Syk(tSH2!1) +Molecules RecSykPS Rec(g~pY!1).Syk(tSH2!1,a~pY) + +end observables + + +begin reaction rules +# Ligand-receptor binding +Rec(a) + Lig(l,l) <-> Rec(a!1).Lig(l!1,l) kp1, km1 + +# Receptor-aggregation +Rec(a) + Lig(l,l!+) <-> Rec(a!2).Lig(l!2,l!+) kp2,km2 + +# Constitutive Lyn-receptor binding +Rec(b~Y) + Lyn(U,SH2) <-> Rec(b~Y!1).Lyn(U!1,SH2) kpL, kmL + +# Transphosphorylation of beta by constitutive Lyn +Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~Y) -> Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~pY) pLb + +# Transphosphorylation of gamma by constitutive Lyn +Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~Y) -> Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY) pLg + +# Lyn-receptor binding through SH2 domain +Rec(b~pY) + Lyn(U,SH2) <-> Rec(b~pY!1).Lyn(U,SH2!1) kpLs, kmLs + +# Transphosphorylation of beta by SH2-bound Lyn +Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,b~Y) -> Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,b~pY) pLbs + +# Transphosphorylation of gamma by SH2-bound Lyn +Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~Y) -> Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY) pLgs + +# Syk-receptor binding through tSH2 domain +Rec(g~pY) + Syk(tSH2) <-> Rec(g~pY!1).Syk(tSH2!1) kpS, kmS + +# Transphosphorylation of Syk by constitutive Lyn +Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~Y) -> \ +Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~pY) pLS + +# Transphosphorylation of Syk by SH2-bound Lyn +Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~Y) -> \ +Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~pY) pLSs + +# Transphosphorylation of Syk by Syk not phosphorylated on aloop +Lig(l!1,l!2).Syk(tSH2!3,a~Y).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~Y) -> \ +Lig(l!1,l!2).Syk(tSH2!3,a~Y).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~pY) pSS + +# Transphosphorylation of Syk by Syk phosphorylated on aloop +Lig(l!1,l!2).Syk(tSH2!3,a~pY).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~Y) -> \ +Lig(l!1,l!2).Syk(tSH2!3,a~pY).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~pY) pSSs + +# Dephosphorylation of Rec beta +Rec(b~pY)-> Rec(b~Y) dm + +# Dephosphorylation of Rec gamma +Rec(g~pY)-> Rec(g~Y) dm + +# Dephosphorylation of Syk at membrane +Syk(tSH2!+,l~pY)-> Syk(tSH2!+,l~Y) dm +Syk(tSH2!+,a~pY)-> Syk(tSH2!+,a~Y) dm + +# Dephosphorylation of Syk in cytosol +Syk(tSH2,l~pY)-> Syk(tSH2,l~Y) dc +Syk(tSH2,a~pY)-> Syk(tSH2,a~Y) dc + +end reaction rules + +generate_network({max_iter=>100, overwrite=>0}); +simulate({method=>"ssa", t_start=>0, t_end=>100, n_steps=>10, suffix=>"fceri_gamma2"}) +# generate_network({overwrite=>1}); +# writeSBML(); + + + +================================================ diff --git a/PyBioNetGen/core/fcerigamma2/metadata.yaml b/PyBioNetGen/core/fcerigamma2/metadata.yaml new file mode 100644 index 00000000..2f6e283c --- /dev/null +++ b/PyBioNetGen/core/fcerigamma2/metadata.yaml @@ -0,0 +1,22 @@ +id: "fceri_gamma2" +name: "fceri gamma2" +description: "BioNetGen model: fceri gamma2" +tags: ["fceri", "gamma2", "lig", "lyn", "syk", "rec"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ssa"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/fceri_gamma/fceri_gamma2.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/fcerigamma2groundtruth/README.md b/PyBioNetGen/core/fcerigamma2groundtruth/README.md new file mode 100644 index 00000000..a5178008 --- /dev/null +++ b/PyBioNetGen/core/fcerigamma2groundtruth/README.md @@ -0,0 +1,21 @@ +# fceri gamma2 ground truth + +BioNetGen model: fceri gamma2 ground truth + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ssa +- Imported from: published + +## Files + +- fceri_gamma2_ground_truth.bngl + +## Tags + +fceri, gamma2, ground, truth, lig, lyn, syk, rec diff --git a/PyBioNetGen/core/fcerigamma2groundtruth/fceri_gamma2_ground_truth.bngl b/PyBioNetGen/core/fcerigamma2groundtruth/fceri_gamma2_ground_truth.bngl new file mode 100644 index 00000000..ba5e1ea4 --- /dev/null +++ b/PyBioNetGen/core/fcerigamma2groundtruth/fceri_gamma2_ground_truth.bngl @@ -0,0 +1,129 @@ +================================================ +begin parameters +Lig_tot 6000 +Rec_tot 400 +Lyn_tot 28 +Syk_tot 400 + + kp1 1.328452377888242e-6 + km1 0 + kp2 2.5e-1 + km2 0 + kpL 5e-2 + kmL 20 +kpLs 5e-2 +kmLs 0.12 + kpS 6e-2 + kmS 0.13 +kpSs 6e-2 +kmSs 0.13 + pLb 30 +pLbs 100 + pLg 1 +pLgs 3 + pLS 30 +pLSs 100 + pSS 100 +pSSs 200 + dm 20 + dc 20 +end parameters + + +# Added molecule type definition block so that the +# xml properly defines all extra possible states for +# each component - sneddon +begin molecule types +Lig(l,l) +Lyn(U,SH2) +Syk(tSH2,l~Y~pY,a~Y~pY) +Rec(a,b~Y~pY,g~Y~pY,g~Y~pY) +end molecule types + +begin species +Lig(l,l) Lig_tot +Lyn(U,SH2) Lyn_tot +Syk(tSH2,l~Y,a~Y) Syk_tot +Rec(a,b~Y,g~Y,g~Y) Rec_tot +end species + + +begin observables +Molecules LynFree Lyn(U,SH2) +Molecules RecMon Rec(a) Rec(a!1).Lig(l!1,l) +Molecules RecPbeta Rec(b~pY!?) +Molecules RecPgamma Rec(g~pY) Rec(g~pY!+) +Molecules RecSyk Rec(g~pY!1).Syk(tSH2!1) +Molecules RecSykPS Rec(g~pY!1).Syk(tSH2!1,a~pY) + +end observables + + +begin reaction rules +# Ligand-receptor binding +Rec(a) + Lig(l,l) <-> Rec(a!1).Lig(l!1,l) kp1, km1 + +# Receptor-aggregation +Rec(a) + Lig(l,l!+) <-> Rec(a!2).Lig(l!2,l!+) kp2,km2 + +# Constitutive Lyn-receptor binding +Rec(b~Y) + Lyn(U,SH2) <-> Rec(b~Y!1).Lyn(U!1,SH2) kpL, kmL + +# Transphosphorylation of beta by constitutive Lyn +Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~Y) -> Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~pY) pLb + +# Transphosphorylation of gamma by constitutive Lyn +Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~Y) -> Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY) pLg + +# Lyn-receptor binding through SH2 domain +Rec(b~pY) + Lyn(U,SH2) <-> Rec(b~pY!1).Lyn(U,SH2!1) kpLs, kmLs + +# Transphosphorylation of beta by SH2-bound Lyn +Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,b~Y) -> Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,b~pY) pLbs + +# Transphosphorylation of gamma by SH2-bound Lyn +Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~Y) -> Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY) pLgs + +# Syk-receptor binding through tSH2 domain +Rec(g~pY) + Syk(tSH2) <-> Rec(g~pY!1).Syk(tSH2!1) kpS, kmS + +# Transphosphorylation of Syk by constitutive Lyn +Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~Y) -> \ +Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~pY) pLS + +# Transphosphorylation of Syk by SH2-bound Lyn +Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~Y) -> \ +Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~pY) pLSs + +# Transphosphorylation of Syk by Syk not phosphorylated on aloop +Lig(l!1,l!2).Syk(tSH2!3,a~Y).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~Y) -> \ +Lig(l!1,l!2).Syk(tSH2!3,a~Y).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~pY) pSS + +# Transphosphorylation of Syk by Syk phosphorylated on aloop +Lig(l!1,l!2).Syk(tSH2!3,a~pY).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~Y) -> \ +Lig(l!1,l!2).Syk(tSH2!3,a~pY).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~pY) pSSs + +# Dephosphorylation of Rec beta +Rec(b~pY)-> Rec(b~Y) dm + +# Dephosphorylation of Rec gamma +Rec(g~pY)-> Rec(g~Y) dm + +# Dephosphorylation of Syk at membrane +Syk(tSH2!+,l~pY)-> Syk(tSH2!+,l~Y) dm +Syk(tSH2!+,a~pY)-> Syk(tSH2!+,a~Y) dm + +# Dephosphorylation of Syk in cytosol +Syk(tSH2,l~pY)-> Syk(tSH2,l~Y) dc +Syk(tSH2,a~pY)-> Syk(tSH2,a~Y) dc + +end reaction rules + +generate_network({max_iter=>100}); +simulate({method=>"ssa", t_start=>0, t_end=>100, n_steps=>10}) +# generate_network({overwrite=>1}); +# writeSBML(); + + + +================================================ diff --git a/PyBioNetGen/core/fcerigamma2groundtruth/metadata.yaml b/PyBioNetGen/core/fcerigamma2groundtruth/metadata.yaml new file mode 100644 index 00000000..058ed46b --- /dev/null +++ b/PyBioNetGen/core/fcerigamma2groundtruth/metadata.yaml @@ -0,0 +1,22 @@ +id: "fceri_gamma2_ground_truth" +name: "fceri gamma2 ground truth" +description: "BioNetGen model: fceri gamma2 ground truth" +tags: ["fceri", "gamma2", "ground", "truth", "lig", "lyn", "syk", "rec"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ssa"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/fceri_gamma/fceri_gamma2_ground_truth.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/model/README.md b/PyBioNetGen/core/model/README.md new file mode 100644 index 00000000..d3ba4073 --- /dev/null +++ b/PyBioNetGen/core/model/README.md @@ -0,0 +1,21 @@ +# model + +filename: model.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- model.bngl + +## Tags + +model, ag, r, syk, ship1, x, pip3, h diff --git a/PyBioNetGen/core/model/metadata.yaml b/PyBioNetGen/core/model/metadata.yaml new file mode 100644 index 00000000..24f9b09c --- /dev/null +++ b/PyBioNetGen/core/model/metadata.yaml @@ -0,0 +1,22 @@ +id: "model" +name: "model" +description: "filename: model.bngl" +tags: ["model", "ag", "r", "syk", "ship1", "x", "pip3", "h"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/degranulation/model.bngl" +playground: + visible: true + gallery_category: "other" + featured: false + difficulty: "intermediate" diff --git a/PyBioNetGen/core/model/model.bngl b/PyBioNetGen/core/model/model.bngl new file mode 100644 index 00000000..509bbf01 --- /dev/null +++ b/PyBioNetGen/core/model/model.bngl @@ -0,0 +1,405 @@ +================================================ +# filename: model.bngl +# date of last edit: 25-Jul-2017 +# authors: Chylek LA, Mitra E, Hlavacek WS (Los Alamos National Laboratory) +# software compatibility: RuleBender (version 2.1.0.8), +# BioNetGen (version 2.2.6) + +begin model + +begin parameters + +# The following parameters were fit to experimental degranulation data using +# BioNetFit 1.0 +# For more information, see the BioNetFit configuration file model_fit.conf + +X_tot__FREE 6.13331088e+00 +k_Xoff__FREE 1.91394890e-06 +k_Xon__FREE 9.39816993e+04 +kase__FREE 3.76143208e+00 +kdegX__FREE 3.19130252e-04 +kdegran__FREE 188893.283626392 +km_Ship1__FREE 1.43154204e-03 +km_Syk__FREE 2.87783197e-01 +km_x__FREE 1.12185442e-01 +koff__FREE 4.45671503e-03 +kp_Ship1__FREE 1.10810534e+04 +kp_Syk__FREE 2.65462642e+05 +kp_x__FREE 7.81553987e+05 +kpten__FREE 0.00995093271320638 +ksynth1__FREE 1.84930114e-02 +pase__FREE 1.60206452e-01 + +# End fit parameters + +# system size scaling factor (>0) +f 1 # cells per reaction compartment + +# Avogadro constant +NA 6.02214e23 # molecules per mol + +# time unit conversion factor +T 60 # s per min + +# channel volume in microfluidic device +Vchannel 500e-9 # L per channel (500 nL) + +# number of cells per channel +Nchannel 1000 # cells per channel + +# volume of extracellular fluid +Vecf=f*(Vchannel/Nchannel) # L per cell (500 pL/cell) + +# cytosolic volume of an RBL-2H3 cell +# This estimate corresponds to the volume of a sphere with a diameter of +# 17.9 microns. +Vcyt f*3e-12 # L per cell (3 pL/cell) + +# multivalent antigen abundance in medium at condition 0 +Ag_tot_0 0 # copies per cell (cpc) + +# multivalent antigen abundance in medium at condition 1 +Ag_conc1 10e-9 # M (10 nM) +Ag_tot_1=Ag_conc1*(NA*Vecf) # cpc + +# antigen receptor abundance +R_tot f*3e5 # cpc (1 nM) + +# Syk abundance +Syk_tot f*3e5 # cpc (0.166 uM) + +# Ship1 abundance +Ship1_tot f*3e5 # cpc (0.166 uM) + +# rate constant for antigen capture +kon 1e7*T/(NA*Vecf) # /M/s converted to /cpc/min +# We assume a diffusion-limited value of 1e7 /M/s + +# rate constant for antigen release +koff koff__FREE*T # 4.46e-3 /s converted to 0.268 /min + +# rate constant for pseudo first-order phosphorylation of antigen-engaged +# receptor +kase kase__FREE*T # 3.76 /s converted to 2.25e+2 /min + +# rate constant for pseuedo first-order dephosphorylation of phosphorylated +# receptor +pase pase__FREE*T # 1.60e-1 /s converted to 9.6 /min + +kp_Syk kp_Syk__FREE*T/(NA*Vcyt) # 2.65e+5 /M/s converted to 8.80e-6 /cpc/min +km_Syk km_Syk__FREE*T # 2.88e-1 /s converted to 17.2 /min + +kp_Ship1 kp_Ship1__FREE*T/(NA*Vcyt) # 1.11e+4 /M/s converted to +# 3.68e-7 /cpc/min +km_Ship1 km_Ship1__FREE*T # 1.43e-3 /s converted to 8.58e-2 /min + +ksynth1 ksynth1__FREE*T # 1.85e-2 /s converted to 1.11 /min +kdeg1 1e7*T/(NA*Vcyt) # /M/s converted to /cpc/min; +# We assume a diffusion-limited value of 1e7 /M/s + +# Rate of basal degradation of PIP3 and/or IP3 +kpten kpten__FREE*T # 9.95e-3 /s converted to 0.597 /min + + +H_tot 1e6 # cpc + +kdegran kdegran__FREE*T/(NA*Vcyt) # 1.89e+5 /M/s converted to 6.27e-6/cpc/min + +# rate constant for degradation of X +# (in one step, including ubiquitination and proteosomal degradation) +kdegX kdegX__FREE*T # 3.19e-4 /s converted to 1.91e-2 /min + + +k_Xon k_Xon__FREE*T/(NA*Vcyt) # 9.40e+4 /M/s converted to 3.12e-6 /cpc/min +k_Xoff k_Xoff__FREE*T # 1.91e-6 /s converted to 1.15e-4 /min + +kp_x kp_x__FREE*T/(NA*Vcyt) # 7.81e+5 /M/s converted to 2.59e-5 /cpc/min +km_x km_x__FREE*T # 1.12e-1 /s converted to 7.26 /min + +# abundance of hypothetical Ship1 cofactor X +X_tot=X_tot__FREE*Ship1_tot # 6.13 times the Ship1 concentration, converted +# to 1.84e6 cpc + +end parameters + +begin molecule types + +# antigen (DNP-conjugated BSA) +# DNP: 2,4-dinitrophenyl groups +Ag(DNP) + +# antigen receptor (anti-DNP IgE bound to FcεRI) +# IgE: anti-DNP IgE +# Yb: tyrosine residues (0, unmodified; P, phosphorylated) +# in the β chain ITAM of FcεRI +# Yg: tyrosine residues (0, unmodified; P, phosphorylated) +# in the γ chain ITAMs of FcεRI +R(IgE,Yb~0~P,Yg~0~P) + +# protein tyrosine kinase Syk +# tSH2: tandem SH2 domains +Syk(tSH2) + +# lipid phosphatase Ship1 +# SH2: Src homology 2 (SH2) domain +# x: binding site for hypothethical Ship1 cofactor X +Ship1(SH2,x) + +# hypothetical Ship1 cofactor X +# s: Ship1 binding site (on, active; off, inactive) +X(s~on~off) + +# phosphatidylinositol (3,4,5)-trisphosphate +PIP3() + + +# β-hexosaminidase +# loc: location (in, inside granules; out, secreted/outside cell) +H(loc~in~out) + +end molecule types + +begin seed species + +# initial conditions + +# initial abundance of free antigen (in medium) per cell +# The $ prefix indicates that this abundance is to be held constant. +$Ag(DNP) Ag_tot_1 + +# initial abundance of free antigen receptor +R(IgE,Yb~0,Yg~0) R_tot + +# initial abundance of (inactive) cytosolic Syk +Syk(tSH2) Syk_tot + +# initial abundance of (inactive) cytosolic Ship1 +Ship1(SH2,x) Ship1_tot + +# initial abundance of PIP3 +PIP3() 0 + +# initial abundance of β-hexosaminidase (stored in cellular granules) +H(loc~in) H_tot + +# initial abundance of inactive hypothetical Ship1 cofactor X +X(s~off) X_tot + +end seed species + +begin observables + +# simulation outputs + +Molecules Ag_total Ag() # This quantity may accumulate because free Ag +# abundance is held fixed. +Molecules Ag_free Ag(DNP) # This quantity is held constant, except for +# adjustments in the actions block. +Molecules R_bound R(IgE!+) # number of antigen-bound receptors per cell +Molecules R_free R(IgE) # number of antigen-free receptors per cell +Molecules RP R(Yg~P!?) # number of phosphorylated receptors per cell +Molecules R0 R(Yg~0) # number of unphosphorylated receptors per cell +Molecules actSyk Syk(tSH2!+) # number of Syk molecules recruited to antigen +# receptors +Molecules actShip1 Ship1(SH2!+,x!+) # number of Ship1 molecules recruited to +# antigen receptors and bound to X +Molecules Ship1_total Ship1() # total abundance of Ship1 +Molecules PIP3_total PIP3() # total abundance of PIP3 +Molecules degranulation H(loc~out) # abundance of secreted β-hexominadase +# (surrogate for secreted mediators of inflammation) +Molecules Xall X() # total abundance of hypothetical Ship1 cofactor X +Molecules X_on_free X(s~on) # abundance of free X in activated state +Molecules X_on_free_or_bound X(s~on!?) # abundance of X (bound or free) in +# activated state +Molecules XShip1 X(s~on!1).Ship1(x!1) # abundance of Ship1 bound to (activated) +# cofactor X + +end observables + +begin reaction rules + +# ligand-receptor binding +# As a simplification, we consider a one-step binding mechanism. +# Thus, the rate constants are effective parameters that reflect +# capture and release of (multivalent) antigen as well as the effects +# of antigen-mediated receptor aggregation on the residence time of antigen +# on the cell surface. Recall that the antigen receptor is a long-lived 1:1 +# complex of antigen-specific IgE and FcεRI, the high-affinity Fc +# receptor for IgE. +Ag(DNP)+R(IgE)<->Ag(DNP!1).R(IgE!1) kon,koff + +# ligand-dependent receptor phosphorylation +# We assume that bound receptors are competent for (Lyn-mediated) +# phosphorylation of the tyrosines in β and γ ITAMs. +# As a simplification, we assume that the β and γ sites are +# phosphorylated simultaneously as part of a single process. +# The effective rate constant for phosphorylation is assumed to capture +# associaton of Lyn with receptors and the relationship between the abundance +# of cell-associated antigen and the extent of antigen-mediated receptor +# crosslinking. +R(IgE!+,Yb~0,Yg~0)->R(IgE!+,Yb~P,Yg~P) kase + +# receptor dephosphorylation +# # As a simplification, we assume that the β and γ sites are +# dephosphorylated simultaneously as part of a single process. +# As an additional simplification, we consider a pseudo first-order mechanism. +# Thus, the effective rate constant for phosphorylation can be viewed +# as the Vmax/KM ratio for phosphatases. We expect phosphatase activity to be +# high. +R(Yb~P,Yg~P)->R(Yb~0,Yg~0) pase + +# recruitment of Syk to the γ subunit of the phosphorylated receptor +# As a simplification, we consider a one-step binding mechanism. +# We expect this simplification to be accurate even though the tandem +# SH2 domains of Syk dock to a doubly phosphorylated γ ITAM via a +# two-step mechanism because isomerization reactions are expected to be fast. +R(Yg~P)+Syk(tSH2)<->R(Yg~P!1).Syk(tSH2!1) kp_Syk,km_Syk + +# recruitment of Ship1 to the β subunit of the phosphorylated receptor +# The SH2 domain Ship1 interacts with the phosphorylated β ITAM. +R(Yb~P)+Ship1(SH2)<->R(Yb~P!1).Ship1(SH2!1) kp_Ship1,km_Ship1 + +# receptor-mediated activation of hypothetical Ship1 cofactor X +# As a simplification, we consider a pseudo second-order mechanism. +# The rate constant for activation of X can be viewed as the kcat/KM ratio for +# a receptor-associated kinase responsible for activating phosphorylation of X. +# Note that our choice to check the phosphorylation state of R(Yb) rather than +# R(Yg) is arbitrary, as within the simplifications of this model, the two +# sites are phosphorylated and dephosphorylated simultaneously. +R(Yb~P!?)+X(s~off)->R(Yb~P!?)+X(s~on) k_Xon + +# decativation of X +# As a simplification, we consider a pseudo first-order mechanism. +X(s~on)->X(s~off) k_Xoff + +# activated Syk-dependent synthesis of PIP3 +# PI3K is recruited to phosphorylated LAT, a key substrate of Syk and plasma +# membrane protein, and there generates PI(3,4,5)P3 from PI(4,5)P2. +# As a simplification, we assume that PI3K activity (and PIP3 generation) is +# proportional to the abundance of receptor-recruited Syk. Thus, we assume that +# the rate constant for PIP3 generation captures the relationship between Syk +# recruitment/activation and PI3K recruitment/activation enabled by +# Syk-mediated phosphorylation of LAT. +Syk(tSH2!+)->Syk(tSH2!+)+PIP3() ksynth1 + +# interaction of activated X with Ship1 +# We assume that X-Ship1 interaction requires prior receptor-mediated +# activation of X. Thus, only X with a Ship1 binding site "s" in the "on" state +# is allowed to associate with Ship1. +X(s~on)+Ship1(x)<->X(s~on!1).Ship1(x!1) kp_x,km_x + + +# activated Ship1-dependent clearance of PIP3 +# We assume that membrane-associated Ship1, when bound to both the receptor and +# a cofactor (X), is mainly responsible for clearance of PIP3. Ship1 catalyzes +# the conversion of PI(3,4,5)P3 to PI(3,4)P2. +Ship1(SH2!+,x!+)+PIP3()->Ship1(SH2!+,x!+) kdeg1 + +# clearance of PIP3 +# PIP3 is degraded to PI(4,5)P2 by PTEN. +# We assume that all degradation of PIP3 can be simplified into a single +# pseudo first-order process. +PIP3()->0 kpten + + +# Degradation of activated X +# We assume that activated X is subject to ubiquitination, followed by +# degradation in the proteosome +# We take this to occur via a pseudo first-order process +# X bound to Ship1 is also subject to proteosomal degradation, which is assumed +# to liberate Ship1. +# We assume that synthesis and degradation of *inactive* X are sufficiently +# slow to not be relevant on the time scales studied. +X(s~on)->0 kdegX +X(s~on!1).Ship1(x!1)->Ship1(x) kdegX + +# Degranulation due to the presence of PIP3 +# PIP3 serves as a PLCγ substrate, leading to the production of IP3, +# stimulating store-operated calcium release followed by degranulation +# We assume this occurs as a pseudo second order process. +PIP3()+H(loc~in)->PIP3()+H(loc~out) kdegran + +end reaction rules + +end model + +begin actions + +# The command below instructs BioNetGen to derive a reaction network from the +# model's rules. +# The output is sent to a file that has a .net filename extension. +# The .net file can be further processed to generate the ordinary differential +# equations corresponding to the reaction network and the rate laws associated +# with the model's rules. +generate_network({overwrite=>1}) + +# The commands below illustrate how we simulated +# 1) an initial period of multivalent antigen-stimulated IgE receptor +# signaling, +# 2) an intermediate period of monovalent antigen-induced IgE receptor +# signaling quiescence, and +# 3) a second and final period of multivalent antigen-stimulated IgE receptor +# signaling. + +# For the purposes of fitting to experimental data, we repeat the series of 3 +# simulations for each time delay that was tested experimentally +# For each one, a .exp file was saved containing the appropriate experimental +# data point from Fig. 4 +# BioNetFit was used to fit the model to the .exp files. + +# first 5-min period of multivalent antigen stimulation +setConcentration("Ag(DNP)","Ag_tot_1") +simulate({suffix=>"p1_5",method=>"ode",t_end=>5,n_steps=>50}) +# Remember these concentrations, so we can go back for each interval tested +saveConcentrations() + +# treatment with monovalent antigen to rapidly induce signaling quiescence +setConcentration("Ag(DNP)","Ag_tot_0") +# Interval is 5 min +simulate({suffix=>"p2_5",method=>"ode",t_end=>5,n_steps=>50}) + +# second 5-min period of multivalent antigen stimulation +setConcentration("Ag(DNP)","Ag_tot_1") +# Remove all existing secreted β hex, in order to measure only what is +# secreted during this interval +setConcentration("H(loc~out)",0) +simulate({suffix=>"p3_5",method=>"ode",t_end=>5,n_steps=>50}) + +# Repeat for an interval of 30 min +resetConcentrations() # Revert to the state after simulation 1 +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}) + + +# Repeat for an interval of 60 min +resetConcentrations() # Revert to the state after simulation 1 +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}) + +# Repeat for an interval of 120 min +resetConcentrations() # Revert to the state after simulation 1 +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}) + +# Repeat for an interval of 240 min +resetConcentrations() # Revert to the state after simulation 1 +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/PyBioNetGen/core/model_Degranulation_aMCMC/README.md b/PyBioNetGen/core/model_Degranulation_aMCMC/README.md new file mode 100644 index 00000000..a5816691 --- /dev/null +++ b/PyBioNetGen/core/model_Degranulation_aMCMC/README.md @@ -0,0 +1,21 @@ +# model + +A model of IgE receptor signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- model.bngl + +## Tags + +model, ag, r, syk, ship1, x, pip3, h diff --git a/PyBioNetGen/core/model_Degranulation_aMCMC/metadata.yaml b/PyBioNetGen/core/model_Degranulation_aMCMC/metadata.yaml new file mode 100644 index 00000000..b3237498 --- /dev/null +++ b/PyBioNetGen/core/model_Degranulation_aMCMC/metadata.yaml @@ -0,0 +1,22 @@ +id: "model" +name: "model" +description: "A model of IgE receptor signaling" +tags: ["model", "ag", "r", "syk", "ship1", "x", "pip3", "h"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/Degranulation_aMCMC/model.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/model_Degranulation_aMCMC/model.bngl b/PyBioNetGen/core/model_Degranulation_aMCMC/model.bngl new file mode 100644 index 00000000..f69e7df6 --- /dev/null +++ b/PyBioNetGen/core/model_Degranulation_aMCMC/model.bngl @@ -0,0 +1,383 @@ +# A model of IgE receptor signaling + +# Originally published in Harmon et. al., "Timescale Separation of Positive and +# Negative Signaling Creates History-Dependent Responses to IgE Receptor Stimulation" +# Scientific Reports, 2017 + +# filename: model.bngl +# date of last edit: 25-Jul-2017 +# authors: Chylek LA, Mitra E, Hlavacek WS (Los Alamos National Laboratory) +# software compatibility: RuleBender (version 2.1.0.8), +# BioNetGen (version 2.2.6) + +begin model + +begin parameters + +# system size scaling factor (>0) +f 1 # cells per reaction compartment + +# Avogadro constant +NA 6.02214e23 # molecules per mol + +# time unit conversion factor +T 60 # s per min + +# channel volume in microfluidic device +Vchannel 500e-9 # L per channel (500 nL) + +# number of cells per channel +Nchannel 1000 # cells per channel + +# volume of extracellular fluid +Vecf=f*(Vchannel/Nchannel) # L per cell (500 pL/cell) + +# cytosolic volume of an RBL-2H3 cell +# This estimate corresponds to the volume of a sphere with a diameter of +# 17.9 microns. +Vcyt f*3e-12 # L per cell (3 pL/cell) + +# multivalent antigen abundance in medium at condition 0 +Ag_tot_0 0 # copies per cell (cpc) + +# multivalent antigen abundance in medium at condition 1 +Ag_conc1 10e-9 # M (10 nM) +Ag_tot_1=Ag_conc1*(NA*Vecf) # cpc + +# antigen receptor abundance +R_tot f*3e5 # cpc (1 nM) + +# Syk abundance +Syk_tot f*3e5 # cpc (0.166 uM) + +# Ship1 abundance +Ship1_tot f*3e5 # cpc (0.166 uM) + +# rate constant for antigen capture +kon 1e7*T/(NA*Vecf) # /M/s converted to /cpc/min +# We assume a diffusion-limited value of 1e7 /M/s + +# rate constant for antigen release +koff koff__FREE*T # 4.46e-3 /s converted to 0.268 /min + +# rate constant for pseudo first-order phosphorylation of antigen-engaged +# receptor +kase kase__FREE*T # 3.76 /s converted to 2.25e+2 /min + +# rate constant for pseuedo first-order dephosphorylation of phosphorylated +# receptor +pase pase__FREE*T # 1.60e-1 /s converted to 9.6 /min + +kp_Syk kp_Syk__FREE*T/(NA*Vcyt) # 2.65e+5 /M/s converted to 8.80e-6 /cpc/min +km_Syk km_Syk__FREE*T # 2.88e-1 /s converted to 17.2 /min + +kp_Ship1 kp_Ship1__FREE*T/(NA*Vcyt) # 1.11e+4 /M/s converted to +# 3.68e-7 /cpc/min +km_Ship1 km_Ship1__FREE*T # 1.43e-3 /s converted to 8.58e-2 /min + +ksynth1 ksynth1__FREE*T # 1.85e-2 /s converted to 1.11 /min +kdeg1 1e7*T/(NA*Vcyt) # /M/s converted to /cpc/min; +# We assume a diffusion-limited value of 1e7 /M/s + +# Rate of basal degradation of PIP3 and/or IP3 +kpten kpten__FREE*T # 9.95e-3 /s converted to 0.597 /min + + +H_tot 1e6 # cpc + +kdegran kdegran__FREE*T/(NA*Vcyt) # 1.89e+5 /M/s converted to 6.27e-6/cpc/min + +# rate constant for degradation of X +# (in one step, including ubiquitination and proteosomal degradation) +kdegX kdegX__FREE*T # 3.19e-4 /s converted to 1.91e-2 /min + + +k_Xon k_Xon__FREE*T/(NA*Vcyt) # 9.40e+4 /M/s converted to 3.12e-6 /cpc/min +k_Xoff k_Xoff__FREE*T # 1.91e-6 /s converted to 1.15e-4 /min + +kp_x kp_x__FREE*T/(NA*Vcyt) # 7.81e+5 /M/s converted to 2.59e-5 /cpc/min +km_x km_x__FREE*T # 1.12e-1 /s converted to 7.26 /min + +# abundance of hypothetical Ship1 cofactor X +X_tot=X_tot__FREE*Ship1_tot # 6.13 times the Ship1 concentration, converted +# to 1.84e6 cpc + +end parameters + +begin molecule types + +# antigen (DNP-conjugated BSA) +# DNP: 2,4-dinitrophenyl groups +Ag(DNP) + +# antigen receptor (anti-DNP IgE bound to FcεRI) +# IgE: anti-DNP IgE +# Yb: tyrosine residues (0, unmodified; P, phosphorylated) +# in the β chain ITAM of FcεRI +# Yg: tyrosine residues (0, unmodified; P, phosphorylated) +# in the γ chain ITAMs of FcεRI +R(IgE,Yb~0~P,Yg~0~P) + +# protein tyrosine kinase Syk +# tSH2: tandem SH2 domains +Syk(tSH2) + +# lipid phosphatase Ship1 +# SH2: Src homology 2 (SH2) domain +# x: binding site for hypothethical Ship1 cofactor X +Ship1(SH2,x) + +# hypothetical Ship1 cofactor X +# s: Ship1 binding site (on, active; off, inactive) +X(s~on~off) + +# phosphatidylinositol (3,4,5)-trisphosphate +PIP3() + + +# β-hexosaminidase +# loc: location (in, inside granules; out, secreted/outside cell) +H(loc~in~out) + +end molecule types + +begin seed species + +# initial conditions + +# initial abundance of free antigen (in medium) per cell +# The $ prefix indicates that this abundance is to be held constant. +$Ag(DNP) Ag_tot_1 + +# initial abundance of free antigen receptor +R(IgE,Yb~0,Yg~0) R_tot + +# initial abundance of (inactive) cytosolic Syk +Syk(tSH2) Syk_tot + +# initial abundance of (inactive) cytosolic Ship1 +Ship1(SH2,x) Ship1_tot + +# initial abundance of PIP3 +PIP3() 0 + +# initial abundance of β-hexosaminidase (stored in cellular granules) +H(loc~in) H_tot + +# initial abundance of inactive hypothetical Ship1 cofactor X +X(s~off) X_tot + +end seed species + +begin observables + +# simulation outputs + +Molecules Ag_total Ag() # This quantity may accumulate because free Ag +# abundance is held fixed. +Molecules Ag_free Ag(DNP) # This quantity is held constant, except for +# adjustments in the actions block. +Molecules R_bound R(IgE!+) # number of antigen-bound receptors per cell +Molecules R_free R(IgE) # number of antigen-free receptors per cell +Molecules RP R(Yg~P!?) # number of phosphorylated receptors per cell +Molecules R0 R(Yg~0) # number of unphosphorylated receptors per cell +Molecules actSyk Syk(tSH2!+) # number of Syk molecules recruited to antigen +# receptors +Molecules actShip1 Ship1(SH2!+,x!+) # number of Ship1 molecules recruited to +# antigen receptors and bound to X +Molecules Ship1_total Ship1() # total abundance of Ship1 +Molecules PIP3_total PIP3() # total abundance of PIP3 +Molecules degranulation H(loc~out) # abundance of secreted β-hexominadase +# (surrogate for secreted mediators of inflammation) +Molecules Xall X() # total abundance of hypothetical Ship1 cofactor X +Molecules X_on_free X(s~on) # abundance of free X in activated state +Molecules X_on_free_or_bound X(s~on!?) # abundance of X (bound or free) in +# activated state +Molecules XShip1 X(s~on!1).Ship1(x!1) # abundance of Ship1 bound to (activated) +# cofactor X + +end observables + +begin reaction rules + +# ligand-receptor binding +# As a simplification, we consider a one-step binding mechanism. +# Thus, the rate constants are effective parameters that reflect +# capture and release of (multivalent) antigen as well as the effects +# of antigen-mediated receptor aggregation on the residence time of antigen +# on the cell surface. Recall that the antigen receptor is a long-lived 1:1 +# complex of antigen-specific IgE and FcεRI, the high-affinity Fc +# receptor for IgE. +Ag(DNP)+R(IgE)<->Ag(DNP!1).R(IgE!1) kon,koff + +# ligand-dependent receptor phosphorylation +# We assume that bound receptors are competent for (Lyn-mediated) +# phosphorylation of the tyrosines in β and γ ITAMs. +# As a simplification, we assume that the β and γ sites are +# phosphorylated simultaneously as part of a single process. +# The effective rate constant for phosphorylation is assumed to capture +# associaton of Lyn with receptors and the relationship between the abundance +# of cell-associated antigen and the extent of antigen-mediated receptor +# crosslinking. +R(IgE!+,Yb~0,Yg~0)->R(IgE!+,Yb~P,Yg~P) kase + +# receptor dephosphorylation +# # As a simplification, we assume that the β and γ sites are +# dephosphorylated simultaneously as part of a single process. +# As an additional simplification, we consider a pseudo first-order mechanism. +# Thus, the effective rate constant for phosphorylation can be viewed +# as the Vmax/KM ratio for phosphatases. We expect phosphatase activity to be +# high. +R(Yb~P,Yg~P)->R(Yb~0,Yg~0) pase + +# recruitment of Syk to the γ subunit of the phosphorylated receptor +# As a simplification, we consider a one-step binding mechanism. +# We expect this simplification to be accurate even though the tandem +# SH2 domains of Syk dock to a doubly phosphorylated γ ITAM via a +# two-step mechanism because isomerization reactions are expected to be fast. +R(Yg~P)+Syk(tSH2)<->R(Yg~P!1).Syk(tSH2!1) kp_Syk,km_Syk + +# recruitment of Ship1 to the β subunit of the phosphorylated receptor +# The SH2 domain Ship1 interacts with the phosphorylated β ITAM. +R(Yb~P)+Ship1(SH2)<->R(Yb~P!1).Ship1(SH2!1) kp_Ship1,km_Ship1 + +# receptor-mediated activation of hypothetical Ship1 cofactor X +# As a simplification, we consider a pseudo second-order mechanism. +# The rate constant for activation of X can be viewed as the kcat/KM ratio for +# a receptor-associated kinase responsible for activating phosphorylation of X. +# Note that our choice to check the phosphorylation state of R(Yb) rather than +# R(Yg) is arbitrary, as within the simplifications of this model, the two +# sites are phosphorylated and dephosphorylated simultaneously. +R(Yb~P!?)+X(s~off)->R(Yb~P!?)+X(s~on) k_Xon + +# decativation of X +# As a simplification, we consider a pseudo first-order mechanism. +X(s~on)->X(s~off) k_Xoff + +# activated Syk-dependent synthesis of PIP3 +# PI3K is recruited to phosphorylated LAT, a key substrate of Syk and plasma +# membrane protein, and there generates PI(3,4,5)P3 from PI(4,5)P2. +# As a simplification, we assume that PI3K activity (and PIP3 generation) is +# proportional to the abundance of receptor-recruited Syk. Thus, we assume that +# the rate constant for PIP3 generation captures the relationship between Syk +# recruitment/activation and PI3K recruitment/activation enabled by +# Syk-mediated phosphorylation of LAT. +Syk(tSH2!+)->Syk(tSH2!+)+PIP3() ksynth1 + +# interaction of activated X with Ship1 +# We assume that X-Ship1 interaction requires prior receptor-mediated +# activation of X. Thus, only X with a Ship1 binding site "s" in the "on" state +# is allowed to associate with Ship1. +X(s~on)+Ship1(x)<->X(s~on!1).Ship1(x!1) kp_x,km_x + + +# activated Ship1-dependent clearance of PIP3 +# We assume that membrane-associated Ship1, when bound to both the receptor and +# a cofactor (X), is mainly responsible for clearance of PIP3. Ship1 catalyzes +# the conversion of PI(3,4,5)P3 to PI(3,4)P2. +Ship1(SH2!+,x!+)+PIP3()->Ship1(SH2!+,x!+) kdeg1 + +# clearance of PIP3 +# PIP3 is degraded to PI(4,5)P2 by PTEN. +# We assume that all degradation of PIP3 can be simplified into a single +# pseudo first-order process. +PIP3()->0 kpten + + +# Degradation of activated X +# We assume that activated X is subject to ubiquitination, followed by +# degradation in the proteosome +# We take this to occur via a pseudo first-order process +# X bound to Ship1 is also subject to proteosomal degradation, which is assumed +# to liberate Ship1. +# We assume that synthesis and degradation of *inactive* X are sufficiently +# slow to not be relevant on the time scales studied. +X(s~on)->0 kdegX +X(s~on!1).Ship1(x!1)->Ship1(x) kdegX + +# Degranulation due to the presence of PIP3 +# PIP3 serves as a PLCγ substrate, leading to the production of IP3, +# stimulating store-operated calcium release followed by degranulation +# We assume this occurs as a pseudo second order process. +PIP3()+H(loc~in)->PIP3()+H(loc~out) kdegran + +end reaction rules + +end model + +begin actions + +# The command below instructs BioNetGen to derive a reaction network from the +# model's rules. +# The output is sent to a file that has a .net filename extension. +# The .net file can be further processed to generate the ordinary differential +# equations corresponding to the reaction network and the rate laws associated +# with the model's rules. +generate_network({overwrite=>1}) + +# The commands below illustrate how we simulated +# 1) an initial period of multivalent antigen-stimulated IgE receptor +# signaling, +# 2) an intermediate period of monovalent antigen-induced IgE receptor +# signaling quiescence, and +# 3) a second and final period of multivalent antigen-stimulated IgE receptor +# signaling. + +# For the purposes of fitting to experimental data, we repeat the series of 3 +# simulations for each time delay that was tested experimentally +# For each one, a .exp file was saved containing the appropriate experimental +# data point from Fig. 4 +# BioNetFit was used to fit the model to the .exp files. + +# first 5-min period of multivalent antigen stimulation +setConcentration("Ag(DNP)","Ag_tot_1") +simulate({suffix=>"p1_5",method=>"ode",t_end=>5,n_steps=>50}) +# Remember these concentrations, so we can go back for each interval tested +saveConcentrations() + +# treatment with monovalent antigen to rapidly induce signaling quiescence +setConcentration("Ag(DNP)","Ag_tot_0") +# Interval is 5 min +simulate({suffix=>"p2_5",method=>"ode",t_end=>5,n_steps=>50}) + +# second 5-min period of multivalent antigen stimulation +setConcentration("Ag(DNP)","Ag_tot_1") +# Remove all existing secreted β hex, in order to measure only what is +# secreted during this interval +setConcentration("H(loc~out)",0) +simulate({suffix=>"p3_5",method=>"ode",t_end=>5,n_steps=>50}) + +# Repeat for an interval of 30 min +resetConcentrations() # Revert to the state after simulation 1 +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}) + + +# Repeat for an interval of 60 min +resetConcentrations() # Revert to the state after simulation 1 +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}) + +# Repeat for an interval of 120 min +resetConcentrations() # Revert to the state after simulation 1 +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}) + +# Repeat for an interval of 240 min +resetConcentrations() # Revert to the state after simulation 1 +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/PyBioNetGen/core/modeltofit/README.md b/PyBioNetGen/core/modeltofit/README.md new file mode 100644 index 00000000..d07f42bb --- /dev/null +++ b/PyBioNetGen/core/modeltofit/README.md @@ -0,0 +1,21 @@ +# model tofit + +A model of IgE receptor signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- model_tofit.bngl + +## Tags + +model, tofit, ag, r, syk, ship1, x, pip3, h diff --git a/PyBioNetGen/core/modeltofit/metadata.yaml b/PyBioNetGen/core/modeltofit/metadata.yaml new file mode 100644 index 00000000..91294c38 --- /dev/null +++ b/PyBioNetGen/core/modeltofit/metadata.yaml @@ -0,0 +1,22 @@ +id: "model_tofit" +name: "model tofit" +description: "A model of IgE receptor signaling" +tags: ["model", "tofit", "ag", "r", "syk", "ship1", "x", "pip3", "h"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/degranulation/model_tofit.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/modeltofit/model_tofit.bngl b/PyBioNetGen/core/modeltofit/model_tofit.bngl new file mode 100644 index 00000000..f69e7df6 --- /dev/null +++ b/PyBioNetGen/core/modeltofit/model_tofit.bngl @@ -0,0 +1,383 @@ +# A model of IgE receptor signaling + +# Originally published in Harmon et. al., "Timescale Separation of Positive and +# Negative Signaling Creates History-Dependent Responses to IgE Receptor Stimulation" +# Scientific Reports, 2017 + +# filename: model.bngl +# date of last edit: 25-Jul-2017 +# authors: Chylek LA, Mitra E, Hlavacek WS (Los Alamos National Laboratory) +# software compatibility: RuleBender (version 2.1.0.8), +# BioNetGen (version 2.2.6) + +begin model + +begin parameters + +# system size scaling factor (>0) +f 1 # cells per reaction compartment + +# Avogadro constant +NA 6.02214e23 # molecules per mol + +# time unit conversion factor +T 60 # s per min + +# channel volume in microfluidic device +Vchannel 500e-9 # L per channel (500 nL) + +# number of cells per channel +Nchannel 1000 # cells per channel + +# volume of extracellular fluid +Vecf=f*(Vchannel/Nchannel) # L per cell (500 pL/cell) + +# cytosolic volume of an RBL-2H3 cell +# This estimate corresponds to the volume of a sphere with a diameter of +# 17.9 microns. +Vcyt f*3e-12 # L per cell (3 pL/cell) + +# multivalent antigen abundance in medium at condition 0 +Ag_tot_0 0 # copies per cell (cpc) + +# multivalent antigen abundance in medium at condition 1 +Ag_conc1 10e-9 # M (10 nM) +Ag_tot_1=Ag_conc1*(NA*Vecf) # cpc + +# antigen receptor abundance +R_tot f*3e5 # cpc (1 nM) + +# Syk abundance +Syk_tot f*3e5 # cpc (0.166 uM) + +# Ship1 abundance +Ship1_tot f*3e5 # cpc (0.166 uM) + +# rate constant for antigen capture +kon 1e7*T/(NA*Vecf) # /M/s converted to /cpc/min +# We assume a diffusion-limited value of 1e7 /M/s + +# rate constant for antigen release +koff koff__FREE*T # 4.46e-3 /s converted to 0.268 /min + +# rate constant for pseudo first-order phosphorylation of antigen-engaged +# receptor +kase kase__FREE*T # 3.76 /s converted to 2.25e+2 /min + +# rate constant for pseuedo first-order dephosphorylation of phosphorylated +# receptor +pase pase__FREE*T # 1.60e-1 /s converted to 9.6 /min + +kp_Syk kp_Syk__FREE*T/(NA*Vcyt) # 2.65e+5 /M/s converted to 8.80e-6 /cpc/min +km_Syk km_Syk__FREE*T # 2.88e-1 /s converted to 17.2 /min + +kp_Ship1 kp_Ship1__FREE*T/(NA*Vcyt) # 1.11e+4 /M/s converted to +# 3.68e-7 /cpc/min +km_Ship1 km_Ship1__FREE*T # 1.43e-3 /s converted to 8.58e-2 /min + +ksynth1 ksynth1__FREE*T # 1.85e-2 /s converted to 1.11 /min +kdeg1 1e7*T/(NA*Vcyt) # /M/s converted to /cpc/min; +# We assume a diffusion-limited value of 1e7 /M/s + +# Rate of basal degradation of PIP3 and/or IP3 +kpten kpten__FREE*T # 9.95e-3 /s converted to 0.597 /min + + +H_tot 1e6 # cpc + +kdegran kdegran__FREE*T/(NA*Vcyt) # 1.89e+5 /M/s converted to 6.27e-6/cpc/min + +# rate constant for degradation of X +# (in one step, including ubiquitination and proteosomal degradation) +kdegX kdegX__FREE*T # 3.19e-4 /s converted to 1.91e-2 /min + + +k_Xon k_Xon__FREE*T/(NA*Vcyt) # 9.40e+4 /M/s converted to 3.12e-6 /cpc/min +k_Xoff k_Xoff__FREE*T # 1.91e-6 /s converted to 1.15e-4 /min + +kp_x kp_x__FREE*T/(NA*Vcyt) # 7.81e+5 /M/s converted to 2.59e-5 /cpc/min +km_x km_x__FREE*T # 1.12e-1 /s converted to 7.26 /min + +# abundance of hypothetical Ship1 cofactor X +X_tot=X_tot__FREE*Ship1_tot # 6.13 times the Ship1 concentration, converted +# to 1.84e6 cpc + +end parameters + +begin molecule types + +# antigen (DNP-conjugated BSA) +# DNP: 2,4-dinitrophenyl groups +Ag(DNP) + +# antigen receptor (anti-DNP IgE bound to FcεRI) +# IgE: anti-DNP IgE +# Yb: tyrosine residues (0, unmodified; P, phosphorylated) +# in the β chain ITAM of FcεRI +# Yg: tyrosine residues (0, unmodified; P, phosphorylated) +# in the γ chain ITAMs of FcεRI +R(IgE,Yb~0~P,Yg~0~P) + +# protein tyrosine kinase Syk +# tSH2: tandem SH2 domains +Syk(tSH2) + +# lipid phosphatase Ship1 +# SH2: Src homology 2 (SH2) domain +# x: binding site for hypothethical Ship1 cofactor X +Ship1(SH2,x) + +# hypothetical Ship1 cofactor X +# s: Ship1 binding site (on, active; off, inactive) +X(s~on~off) + +# phosphatidylinositol (3,4,5)-trisphosphate +PIP3() + + +# β-hexosaminidase +# loc: location (in, inside granules; out, secreted/outside cell) +H(loc~in~out) + +end molecule types + +begin seed species + +# initial conditions + +# initial abundance of free antigen (in medium) per cell +# The $ prefix indicates that this abundance is to be held constant. +$Ag(DNP) Ag_tot_1 + +# initial abundance of free antigen receptor +R(IgE,Yb~0,Yg~0) R_tot + +# initial abundance of (inactive) cytosolic Syk +Syk(tSH2) Syk_tot + +# initial abundance of (inactive) cytosolic Ship1 +Ship1(SH2,x) Ship1_tot + +# initial abundance of PIP3 +PIP3() 0 + +# initial abundance of β-hexosaminidase (stored in cellular granules) +H(loc~in) H_tot + +# initial abundance of inactive hypothetical Ship1 cofactor X +X(s~off) X_tot + +end seed species + +begin observables + +# simulation outputs + +Molecules Ag_total Ag() # This quantity may accumulate because free Ag +# abundance is held fixed. +Molecules Ag_free Ag(DNP) # This quantity is held constant, except for +# adjustments in the actions block. +Molecules R_bound R(IgE!+) # number of antigen-bound receptors per cell +Molecules R_free R(IgE) # number of antigen-free receptors per cell +Molecules RP R(Yg~P!?) # number of phosphorylated receptors per cell +Molecules R0 R(Yg~0) # number of unphosphorylated receptors per cell +Molecules actSyk Syk(tSH2!+) # number of Syk molecules recruited to antigen +# receptors +Molecules actShip1 Ship1(SH2!+,x!+) # number of Ship1 molecules recruited to +# antigen receptors and bound to X +Molecules Ship1_total Ship1() # total abundance of Ship1 +Molecules PIP3_total PIP3() # total abundance of PIP3 +Molecules degranulation H(loc~out) # abundance of secreted β-hexominadase +# (surrogate for secreted mediators of inflammation) +Molecules Xall X() # total abundance of hypothetical Ship1 cofactor X +Molecules X_on_free X(s~on) # abundance of free X in activated state +Molecules X_on_free_or_bound X(s~on!?) # abundance of X (bound or free) in +# activated state +Molecules XShip1 X(s~on!1).Ship1(x!1) # abundance of Ship1 bound to (activated) +# cofactor X + +end observables + +begin reaction rules + +# ligand-receptor binding +# As a simplification, we consider a one-step binding mechanism. +# Thus, the rate constants are effective parameters that reflect +# capture and release of (multivalent) antigen as well as the effects +# of antigen-mediated receptor aggregation on the residence time of antigen +# on the cell surface. Recall that the antigen receptor is a long-lived 1:1 +# complex of antigen-specific IgE and FcεRI, the high-affinity Fc +# receptor for IgE. +Ag(DNP)+R(IgE)<->Ag(DNP!1).R(IgE!1) kon,koff + +# ligand-dependent receptor phosphorylation +# We assume that bound receptors are competent for (Lyn-mediated) +# phosphorylation of the tyrosines in β and γ ITAMs. +# As a simplification, we assume that the β and γ sites are +# phosphorylated simultaneously as part of a single process. +# The effective rate constant for phosphorylation is assumed to capture +# associaton of Lyn with receptors and the relationship between the abundance +# of cell-associated antigen and the extent of antigen-mediated receptor +# crosslinking. +R(IgE!+,Yb~0,Yg~0)->R(IgE!+,Yb~P,Yg~P) kase + +# receptor dephosphorylation +# # As a simplification, we assume that the β and γ sites are +# dephosphorylated simultaneously as part of a single process. +# As an additional simplification, we consider a pseudo first-order mechanism. +# Thus, the effective rate constant for phosphorylation can be viewed +# as the Vmax/KM ratio for phosphatases. We expect phosphatase activity to be +# high. +R(Yb~P,Yg~P)->R(Yb~0,Yg~0) pase + +# recruitment of Syk to the γ subunit of the phosphorylated receptor +# As a simplification, we consider a one-step binding mechanism. +# We expect this simplification to be accurate even though the tandem +# SH2 domains of Syk dock to a doubly phosphorylated γ ITAM via a +# two-step mechanism because isomerization reactions are expected to be fast. +R(Yg~P)+Syk(tSH2)<->R(Yg~P!1).Syk(tSH2!1) kp_Syk,km_Syk + +# recruitment of Ship1 to the β subunit of the phosphorylated receptor +# The SH2 domain Ship1 interacts with the phosphorylated β ITAM. +R(Yb~P)+Ship1(SH2)<->R(Yb~P!1).Ship1(SH2!1) kp_Ship1,km_Ship1 + +# receptor-mediated activation of hypothetical Ship1 cofactor X +# As a simplification, we consider a pseudo second-order mechanism. +# The rate constant for activation of X can be viewed as the kcat/KM ratio for +# a receptor-associated kinase responsible for activating phosphorylation of X. +# Note that our choice to check the phosphorylation state of R(Yb) rather than +# R(Yg) is arbitrary, as within the simplifications of this model, the two +# sites are phosphorylated and dephosphorylated simultaneously. +R(Yb~P!?)+X(s~off)->R(Yb~P!?)+X(s~on) k_Xon + +# decativation of X +# As a simplification, we consider a pseudo first-order mechanism. +X(s~on)->X(s~off) k_Xoff + +# activated Syk-dependent synthesis of PIP3 +# PI3K is recruited to phosphorylated LAT, a key substrate of Syk and plasma +# membrane protein, and there generates PI(3,4,5)P3 from PI(4,5)P2. +# As a simplification, we assume that PI3K activity (and PIP3 generation) is +# proportional to the abundance of receptor-recruited Syk. Thus, we assume that +# the rate constant for PIP3 generation captures the relationship between Syk +# recruitment/activation and PI3K recruitment/activation enabled by +# Syk-mediated phosphorylation of LAT. +Syk(tSH2!+)->Syk(tSH2!+)+PIP3() ksynth1 + +# interaction of activated X with Ship1 +# We assume that X-Ship1 interaction requires prior receptor-mediated +# activation of X. Thus, only X with a Ship1 binding site "s" in the "on" state +# is allowed to associate with Ship1. +X(s~on)+Ship1(x)<->X(s~on!1).Ship1(x!1) kp_x,km_x + + +# activated Ship1-dependent clearance of PIP3 +# We assume that membrane-associated Ship1, when bound to both the receptor and +# a cofactor (X), is mainly responsible for clearance of PIP3. Ship1 catalyzes +# the conversion of PI(3,4,5)P3 to PI(3,4)P2. +Ship1(SH2!+,x!+)+PIP3()->Ship1(SH2!+,x!+) kdeg1 + +# clearance of PIP3 +# PIP3 is degraded to PI(4,5)P2 by PTEN. +# We assume that all degradation of PIP3 can be simplified into a single +# pseudo first-order process. +PIP3()->0 kpten + + +# Degradation of activated X +# We assume that activated X is subject to ubiquitination, followed by +# degradation in the proteosome +# We take this to occur via a pseudo first-order process +# X bound to Ship1 is also subject to proteosomal degradation, which is assumed +# to liberate Ship1. +# We assume that synthesis and degradation of *inactive* X are sufficiently +# slow to not be relevant on the time scales studied. +X(s~on)->0 kdegX +X(s~on!1).Ship1(x!1)->Ship1(x) kdegX + +# Degranulation due to the presence of PIP3 +# PIP3 serves as a PLCγ substrate, leading to the production of IP3, +# stimulating store-operated calcium release followed by degranulation +# We assume this occurs as a pseudo second order process. +PIP3()+H(loc~in)->PIP3()+H(loc~out) kdegran + +end reaction rules + +end model + +begin actions + +# The command below instructs BioNetGen to derive a reaction network from the +# model's rules. +# The output is sent to a file that has a .net filename extension. +# The .net file can be further processed to generate the ordinary differential +# equations corresponding to the reaction network and the rate laws associated +# with the model's rules. +generate_network({overwrite=>1}) + +# The commands below illustrate how we simulated +# 1) an initial period of multivalent antigen-stimulated IgE receptor +# signaling, +# 2) an intermediate period of monovalent antigen-induced IgE receptor +# signaling quiescence, and +# 3) a second and final period of multivalent antigen-stimulated IgE receptor +# signaling. + +# For the purposes of fitting to experimental data, we repeat the series of 3 +# simulations for each time delay that was tested experimentally +# For each one, a .exp file was saved containing the appropriate experimental +# data point from Fig. 4 +# BioNetFit was used to fit the model to the .exp files. + +# first 5-min period of multivalent antigen stimulation +setConcentration("Ag(DNP)","Ag_tot_1") +simulate({suffix=>"p1_5",method=>"ode",t_end=>5,n_steps=>50}) +# Remember these concentrations, so we can go back for each interval tested +saveConcentrations() + +# treatment with monovalent antigen to rapidly induce signaling quiescence +setConcentration("Ag(DNP)","Ag_tot_0") +# Interval is 5 min +simulate({suffix=>"p2_5",method=>"ode",t_end=>5,n_steps=>50}) + +# second 5-min period of multivalent antigen stimulation +setConcentration("Ag(DNP)","Ag_tot_1") +# Remove all existing secreted β hex, in order to measure only what is +# secreted during this interval +setConcentration("H(loc~out)",0) +simulate({suffix=>"p3_5",method=>"ode",t_end=>5,n_steps=>50}) + +# Repeat for an interval of 30 min +resetConcentrations() # Revert to the state after simulation 1 +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}) + + +# Repeat for an interval of 60 min +resetConcentrations() # Revert to the state after simulation 1 +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}) + +# Repeat for an interval of 120 min +resetConcentrations() # Revert to the state after simulation 1 +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}) + +# Repeat for an interval of 240 min +resetConcentrations() # Revert to the state after simulation 1 +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/PyBioNetGen/core/parabola/README.md b/PyBioNetGen/core/parabola/README.md new file mode 100644 index 00000000..c3172487 --- /dev/null +++ b/PyBioNetGen/core/parabola/README.md @@ -0,0 +1,21 @@ +# parabola + +Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1 + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- parabola.bngl + +## Tags + +parabola, counter, par, line, generate_network, simulate diff --git a/PyBioNetGen/core/parabola/metadata.yaml b/PyBioNetGen/core/parabola/metadata.yaml new file mode 100644 index 00000000..748c2c2c --- /dev/null +++ b/PyBioNetGen/core/parabola/metadata.yaml @@ -0,0 +1,22 @@ +id: "parabola" +name: "parabola" +description: "Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1" +tags: ["parabola", "counter", "par", "line", "generate_network", "simulate"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/constraint_demo/parabola.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/parabola/parabola.bngl b/PyBioNetGen/core/parabola/parabola.bngl new file mode 100644 index 00000000..3b257a2b --- /dev/null +++ b/PyBioNetGen/core/parabola/parabola.bngl @@ -0,0 +1,54 @@ +================================================ +# Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1 + +begin model + + begin parameters + +# Original values used +# (a,b,c,d,e) = 0.5, 3, 5, 1, 1.5 + + a a__FREE + b b__FREE + c c__FREE + d d__FREE + e e__FREE + + end parameters + + begin molecule types + counter() + end molecule types + + begin seed species + # initial conditions + counter() 0 + end seed species + + begin observables + Molecules x counter() + end observables + + begin functions + + par()=a*((x)^2)-(b*(x))+c + line() = d*(x)+e + end functions + + begin reaction rules + 0->counter() 1 + end reaction rules + +end model + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>0,t_end=>10,n_steps=>1000,suffix=>"par",print_functions=>1}) + +end actions + + + + + +================================================ diff --git a/PyBioNetGen/core/parabola_demo/README.md b/PyBioNetGen/core/parabola_demo/README.md new file mode 100644 index 00000000..037bde5d --- /dev/null +++ b/PyBioNetGen/core/parabola_demo/README.md @@ -0,0 +1,21 @@ +# parabola + +Original values used to generate parabola.exp + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- parabola.bngl + +## Tags + +parabola, counter, y, generate_network, simulate diff --git a/PyBioNetGen/core/parabola_demo/metadata.yaml b/PyBioNetGen/core/parabola_demo/metadata.yaml new file mode 100644 index 00000000..6141d622 --- /dev/null +++ b/PyBioNetGen/core/parabola_demo/metadata.yaml @@ -0,0 +1,22 @@ +id: "parabola" +name: "parabola" +description: "Original values used to generate parabola.exp" +tags: ["parabola", "counter", "y", "generate_network", "simulate"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/demo/parabola.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/parabola_demo/parabola.bngl b/PyBioNetGen/core/parabola_demo/parabola.bngl new file mode 100644 index 00000000..a6584069 --- /dev/null +++ b/PyBioNetGen/core/parabola_demo/parabola.bngl @@ -0,0 +1,48 @@ +begin model + + begin parameters + +# Original values used to generate parabola.exp +# (v1, v2, v3) = 0.5, 1, 3 + +#Parabola A: Y = v1*(X^2) + v2*X + v3 + + v1 v1__FREE + v2 v2__FREE + v3 v3__FREE + + end parameters + + begin molecule types + counter() + end molecule types + + begin seed species + # initial conditions + counter() -10 + end seed species + + begin observables + Molecules x counter() + end observables + + begin functions + # y()=(x-v1)*(x-v2)*(x-v3)*(x-p4)*(x-p5)+1000 + +# y()=(v1*x^2)+(v2*x)+v3 + y()=v1*(x^2)+(v2*x)+v3 + end functions + + begin reaction rules + 0->counter() 1 + end reaction rules + +end model + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>-0,t_end=>20,n_steps=>20,suffix=>"par1",print_functions=>1}) + +end actions + + diff --git a/PyBioNetGen/core/parabolaground/README.md b/PyBioNetGen/core/parabolaground/README.md new file mode 100644 index 00000000..6f1dd459 --- /dev/null +++ b/PyBioNetGen/core/parabolaground/README.md @@ -0,0 +1,21 @@ +# parabola ground + +Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1 + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- parabola_ground.bngl + +## Tags + +parabola, ground, counter, par, line, generate_network, simulate diff --git a/PyBioNetGen/core/parabolaground/metadata.yaml b/PyBioNetGen/core/parabolaground/metadata.yaml new file mode 100644 index 00000000..2190cb9c --- /dev/null +++ b/PyBioNetGen/core/parabolaground/metadata.yaml @@ -0,0 +1,22 @@ +id: "parabola_ground" +name: "parabola ground" +description: "Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1" +tags: ["parabola", "ground", "counter", "par", "line", "generate_network", "simulate"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/constraint_demo/parabola_ground.bngl" +playground: + visible: true + gallery_category: "other" + featured: false + difficulty: "intermediate" diff --git a/PyBioNetGen/core/parabolaground/parabola_ground.bngl b/PyBioNetGen/core/parabolaground/parabola_ground.bngl new file mode 100644 index 00000000..1fcb3377 --- /dev/null +++ b/PyBioNetGen/core/parabolaground/parabola_ground.bngl @@ -0,0 +1,49 @@ +# Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1 + +begin model + + begin parameters + +# Original values used +# (a,b,c,d,e) = 0.5, 3, 5, 1, 1.5 + + a 0.5 + b 3 + c 5 + d 1 + e 1.5 + + end parameters + + begin molecule types + counter() + end molecule types + + begin seed species + # initial conditions + counter() 0 + end seed species + + begin observables + Molecules x counter() + end observables + + begin functions + + par()=a*((x)^2)-(b*(x))+c + line() = d*(x)+e + end functions + + begin reaction rules + 0->counter() 1 + end reaction rules + +end model + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>0,t_end=>10,n_steps=>1000,suffix=>"par",print_functions=>1}) + +end actions + + diff --git a/PyBioNetGen/core/polynomial/README.md b/PyBioNetGen/core/polynomial/README.md new file mode 100644 index 00000000..3aaf4759 --- /dev/null +++ b/PyBioNetGen/core/polynomial/README.md @@ -0,0 +1,21 @@ +# polynomial + +Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1 + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- polynomial.bngl + +## Tags + +polynomial, counter, y1, y2, generate_network, simulate, setparameter, resetconcentrations diff --git a/PyBioNetGen/core/polynomial/metadata.yaml b/PyBioNetGen/core/polynomial/metadata.yaml new file mode 100644 index 00000000..7cf26109 --- /dev/null +++ b/PyBioNetGen/core/polynomial/metadata.yaml @@ -0,0 +1,22 @@ +id: "polynomial" +name: "polynomial" +description: "Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1" +tags: ["polynomial", "counter", "y1", "y2", "generate_network", "simulate", "setparameter", "resetconcentrations"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/constraint_advanced/polynomial.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/polynomial/polynomial.bngl b/PyBioNetGen/core/polynomial/polynomial.bngl new file mode 100644 index 00000000..081c347b --- /dev/null +++ b/PyBioNetGen/core/polynomial/polynomial.bngl @@ -0,0 +1,55 @@ +================================================ +# Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1 + +begin model + + begin parameters + +# Original values used +# (a,b,c,d,e,f,g) = 0.3, 1, 27, 70, 21, 5, 0.8 + + a a__FREE + b b__FREE + c c__FREE + d d__FREE + e e__FREE + f f__FREE + g g__FREE + + end parameters + + begin molecule types + counter() + end molecule types + + begin seed species + # initial conditions + counter() 0 + end seed species + + begin observables + Molecules x counter() + end observables + + begin functions + + y1()=a*x^4-b*x^3+c*x^2-d*x+e + y2()=g*x^4-f*x^3+e*x^2-d*x+c + end functions + + begin reaction rules + 0->counter() 1 + end reaction rules + +end model + +generate_network({overwrite=>1}) +simulate({method=>"ode",t_start=>0,t_end=>10,n_steps=>1000,suffix=>"wt",print_functions=>1}) +# "Mutate" a parameter, and simulate a second time +setParameter("d",27) +resetConcentrations() +simulate({method=>"ode",t_start=>0,t_end=>10,n_steps=>1000,suffix=>"mut",print_functions=>1}) + + + +================================================ diff --git a/PyBioNetGen/core/polynomialground/README.md b/PyBioNetGen/core/polynomialground/README.md new file mode 100644 index 00000000..2856c287 --- /dev/null +++ b/PyBioNetGen/core/polynomialground/README.md @@ -0,0 +1,21 @@ +# polynomial ground + +Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1 + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- polynomial_ground.bngl + +## Tags + +polynomial, ground, counter, y1, y2, generate_network, simulate, setparameter, resetconcentrations diff --git a/PyBioNetGen/core/polynomialground/metadata.yaml b/PyBioNetGen/core/polynomialground/metadata.yaml new file mode 100644 index 00000000..7d905e0c --- /dev/null +++ b/PyBioNetGen/core/polynomialground/metadata.yaml @@ -0,0 +1,22 @@ +id: "polynomial_ground" +name: "polynomial ground" +description: "Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1" +tags: ["polynomial", "ground", "counter", "y1", "y2", "generate_network", "simulate", "setparameter", "resetconcentrations"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/constraint_advanced/polynomial_ground.bngl" +playground: + visible: true + gallery_category: "other" + featured: false + difficulty: "intermediate" diff --git a/PyBioNetGen/core/polynomialground/polynomial_ground.bngl b/PyBioNetGen/core/polynomialground/polynomial_ground.bngl new file mode 100644 index 00000000..1f988618 --- /dev/null +++ b/PyBioNetGen/core/polynomialground/polynomial_ground.bngl @@ -0,0 +1,47 @@ +# Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1 + +begin model + + begin parameters + + a 0.3 + b 1 + c 27 + d 70 + e 21 + f 5 + g 0.8 + + end parameters + + begin molecule types + counter() + end molecule types + + begin seed species + # initial conditions + counter() 0 + end seed species + + begin observables + Molecules x counter() + end observables + + begin functions + + y1()=a*x^4-b*x^3+c*x^2-d*x+e + y2()=g*x^4-f*x^3+e*x^2-d*x+c + end functions + + begin reaction rules + 0->counter() 1 + end reaction rules + +end model + +generate_network({overwrite=>1}) +simulate({method=>"ode",t_start=>0,t_end=>10,n_steps=>1000,suffix=>"wt",print_functions=>1}) +# "Mutate" a parameter, and simulate a second time +setParameter("d",27) +resetConcentrations() +simulate({method=>"ode",t_start=>0,t_end=>10,n_steps=>1000,suffix=>"mut",print_functions=>1}) diff --git a/PyBioNetGen/core/receptor/README.md b/PyBioNetGen/core/receptor/README.md new file mode 100644 index 00000000..e712f142 --- /dev/null +++ b/PyBioNetGen/core/receptor/README.md @@ -0,0 +1,21 @@ +# receptor + +A simple model of ligand/receptor binding and receptor phosphorylation. + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- receptor.bngl + +## Tags + +receptor, l, r, func diff --git a/PyBioNetGen/core/receptor/metadata.yaml b/PyBioNetGen/core/receptor/metadata.yaml new file mode 100644 index 00000000..70a58972 --- /dev/null +++ b/PyBioNetGen/core/receptor/metadata.yaml @@ -0,0 +1,22 @@ +id: "receptor" +name: "receptor" +description: "A simple model of ligand/receptor binding and receptor phosphorylation." +tags: ["receptor", "l", "r", "func"] +category: "other" +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-web-simulator" + source_path: "published-models/PyBNG/receptor/receptor.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/receptor/receptor.bngl b/PyBioNetGen/core/receptor/receptor.bngl new file mode 100644 index 00000000..2d89e76d --- /dev/null +++ b/PyBioNetGen/core/receptor/receptor.bngl @@ -0,0 +1,194 @@ +# A simple model of ligand/receptor binding and receptor phosphorylation. +# + +begin model +begin parameters + # simulation parameters + # fraction of a single cell to be considered in a stochastic simulation + f 0.1 # [=] dimensionless, 0 weak crosslinking + # a value of 1.0 => moderate crosslinking + # a value of 10.0 => strong crosslinking + + # reverse rate constant (derived) + km2 km2__FREE # [=] /s + + # forward rate constant (derived) + kp2=K2RT*km2/EGFR_copy_number # [=] /nM/s + + kp3=kp2*0.2 + + # phosphorylation rate constant + # kphos is specified as being free. It has a matching option in the .conf file. + kphos kphos__FREE # [=] /s + + # dephosphorylation rate constant + # kdephos is specified as being free. It has a matching option in the .conf file. + kdephos kdephos__FREE # [=] /s + + # A boolean value indicating whether or not EGF is present. This + # is used to set the forward rate constant for ligand binding in + # the "func()" function. In pre-equilibration this value is set to + # 0 to set the rate of ligand binding to 0. After equilibration + # the value will be set to 1 to let ligand bind. + Ligand_isPresent 0 + +end parameters + + +begin molecule types + # ligand + L(r) + + # receptor + R(l,r,Y~0~P) +end molecule types + +#bound ligand and p + +begin seed species + L(r) EGF_copy_number + R(l,r,Y~0) EGFR_copy_number +end seed species + +begin observables + + # total number of ligands + Molecules Ltot L() + + # number of free ligands + Species freeL L(r) + + # total number of receptors + Molecules Rtot R() + + # number of bound ligands = Ltot - freeL + + # number of free receptors + #Species freeR R(l,r) + + # number of monomeric (unclustered) receptors + #Species Rmon R==1 + + # number of receptor dimers + Species Rdim R==2 + + # number of ligand-induced receptor aggregates + # = number of receptor clusters + # = number of complexes containing more than 1 receptor + #Species n_agg_gt1 R>1 + + # number of ligand-receptor bonds + # = number of ligand-occupied receptor sites + # = number of receptor-occupied ligand sites + Molecules RLbonds L(r!1).R(l!1) # = R(l!+) = L(r!+) + + # number of receptors in clusters = Rtot - R1 + + # average size of a receptor cluster (of size >1) + # = (# of receptors in clusters)/n_agg_gt1 + # = (Rtot - R1)/n_agg_gt1 + + # number of phosphorylated receptors + Molecules pR R(Y~P) + +end observables + + +begin functions + +# This function evaluates to 0 if Ligand_isPresent = 0. The function evaluates to kp1 if Ligand_isPresent = 1 +# The function is used in the reaction rule governing ligand binding. After equilibration, Ligand_isPresent is +# set to 1 to enable ligand binding. +func() kp1 * Ligand_isPresent + +end functions + + +begin reaction rules + + # ligand capture + # a free ligand binds a receptor with a free site + L(r)+R(l)<->L(r!1).R(l!1) func(),km1 + + # receptor dimerization + R(l!+,r)+R(l!+,r)->R(l!+,r!1).R(l!+,r!1) kp2 + + # receptor-receptor bond dissociation + R(r!1).R(r!1)->R(r)+R(r) km2 + + # receptor dimerization (no ligand) + R(l,r) + R(l,r) -> R(l,r!1).R(l,r!1) kp3 + + # dimer-mediated receptor phosphorylation + R(r!+,Y~0)->R(r!+,Y~P) kphos + + # dephosphorylation + R(Y~P)->R(Y~0) kdephos + +end reaction rules + + +end model + + +# actions + +# Generate the network +generate_network(); + +# Simulate for 600 seconds to reach equilibrium +simulate({method=>"ode",t_start=>0,t_end=>600,n_steps=>1,suffix=>"equil"}) + +# Set Ligand_isPresent to 1 to enable ligand binding by means of the "func()" function +setParameter("Ligand_isPresent",1) + +# Simulate for 60 seconds. This simulation output is fit to the data in example3.exp +simulate({method=>"ode",t_start=>0,t_end=>60,sample_times=>[0,5,10,15,20,25,30,35,40,45,50,55,60],suffix=>"receptor"}) diff --git a/PyBioNetGen/core/receptornf/README.md b/PyBioNetGen/core/receptornf/README.md new file mode 100644 index 00000000..60f2cbac --- /dev/null +++ b/PyBioNetGen/core/receptornf/README.md @@ -0,0 +1,21 @@ +# receptor nf + +A simple model of ligand/receptor binding and receptor phosphorylation. + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: nf +- Imported from: published + +## Files + +- receptor_nf.bngl + +## Tags + +receptor, nf, l, r diff --git a/PyBioNetGen/core/receptornf/metadata.yaml b/PyBioNetGen/core/receptornf/metadata.yaml new file mode 100644 index 00000000..3d8963dd --- /dev/null +++ b/PyBioNetGen/core/receptornf/metadata.yaml @@ -0,0 +1,22 @@ +id: "receptor_nf" +name: "receptor nf" +description: "A simple model of ligand/receptor binding and receptor phosphorylation." +tags: ["receptor", "nf", "l", "r"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["nf"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/receptor_nf/receptor_nf.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/receptornf/receptor_nf.bngl b/PyBioNetGen/core/receptornf/receptor_nf.bngl new file mode 100644 index 00000000..2f75b9c5 --- /dev/null +++ b/PyBioNetGen/core/receptornf/receptor_nf.bngl @@ -0,0 +1,181 @@ +================================================ +# A simple model of ligand/receptor binding and receptor phosphorylation. +# + +begin model +begin parameters + # simulation parameters + # fraction of a single cell to be considered in a stochastic simulation + f 0.01 # [=] dimensionless, 0 weak crosslinking + # a value of 1.0 => moderate crosslinking + # a value of 10.0 => strong crosslinking + + # reverse rate constant (derived) + km2 km2__FREE # [=] /s + + # forward rate constant (derived) + kp2=K2RT*km2/EGFR_copy_number # [=] /nM/s + + kp3=kp2*0.2 + + # phosphorylation rate constant + # kphos is specified as being free. It has a matching option in the .conf file. + kphos kphos__FREE # [=] /s + + # dephosphorylation rate constant + # kdephos is specified as being free. It has a matching option in the .conf file. + kdephos kdephos__FREE # [=] /s + +end parameters + + +begin molecule types + # ligand + L(r) + + # receptor + R(l,r,Y~0~P) +end molecule types + +#bound ligand and p + +begin seed species + L(r) 0 + R(l,r,Y~0) EGFR_copy_number +end seed species + +begin observables + + # total number of ligands + Molecules Ltot L() + + # number of free ligands + Species freeL L(r) + + # total number of receptors + Molecules Rtot R() + + # number of bound ligands = Ltot - freeL + + # number of free receptors + #Species freeR R(l,r) + + # number of monomeric (unclustered) receptors + #Species Rmon R==1 + + # number of receptor dimers + Species Rdim R==2 + + # number of ligand-induced receptor aggregates + # = number of receptor clusters + # = number of complexes containing more than 1 receptor + #Species n_agg_gt1 R>1 + + # number of ligand-receptor bonds + # = number of ligand-occupied receptor sites + # = number of receptor-occupied ligand sites + Molecules RLbonds L(r!1).R(l!1) # = R(l!+) = L(r!+) + + # number of receptors in clusters = Rtot - R1 + + # average size of a receptor cluster (of size >1) + # = (# of receptors in clusters)/n_agg_gt1 + # = (Rtot - R1)/n_agg_gt1 + + # number of phosphorylated receptors + Molecules pR R(Y~P) + +end observables + +begin reaction rules + + # ligand capture + # a free ligand binds a receptor with a free site + L(r)+R(l)<->L(r!1).R(l!1) kp1,km1 + + # receptor dimerization + R(l!+,r)+R(l!+,r)->R(l!+,r!1).R(l!+,r!1) kp2 + + # receptor-receptor bond dissociation + R(r!1).R(r!1)->R(r)+R(r) km2 + + # receptor dimerization (no ligand) + R(l,r) + R(l,r) -> R(l,r!1).R(l,r!1) kp3 + + # dimer-mediated receptor phosphorylation + R(r!+,Y~0)->R(r!+,Y~P) kphos + + # dephosphorylation + R(Y~P)->R(Y~0) kdephos + +end reaction rules + + +end model + +begin actions +# actions + +# Simulate for 600 seconds to reach equilibrium +simulate({method=>"nf",t_start=>0,t_end=>600,n_steps=>1,suffix=>"equil",get_final_state=>1}) + +# Add ligand +setConcentration("L(r)","EGF_copy_number") + +# Simulate for 60 seconds. This simulation output is fit to the data in receptor_nf.exp +simulate({method=>"nf",t_start=>0,t_end=>60,n_steps=>12,suffix=>"receptor_nf",get_final_state=>0}) +end actions + + + +================================================ diff --git a/PyBioNetGen/core/tcr/README.md b/PyBioNetGen/core/tcr/README.md new file mode 100644 index 00000000..6189ff83 --- /dev/null +++ b/PyBioNetGen/core/tcr/README.md @@ -0,0 +1,21 @@ +# tcr + +A model of T cell receptor signaling + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: nf +- Imported from: published + +## Files + +- tcr.bngl + +## Tags + +tcr, lig1, lig2, lig3, cd28, lck, itk, zap70 diff --git a/PyBioNetGen/core/tcr/metadata.yaml b/PyBioNetGen/core/tcr/metadata.yaml new file mode 100644 index 00000000..d55d0fe7 --- /dev/null +++ b/PyBioNetGen/core/tcr/metadata.yaml @@ -0,0 +1,22 @@ +id: "tcr" +name: "tcr" +description: "A model of T cell receptor signaling" +tags: ["tcr", "lig1", "lig2", "lig3", "cd28", "lck", "itk", "zap70"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["nf"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tcr/tcr.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/tcr/tcr.bngl b/PyBioNetGen/core/tcr/tcr.bngl new file mode 100644 index 00000000..72659c67 --- /dev/null +++ b/PyBioNetGen/core/tcr/tcr.bngl @@ -0,0 +1,629 @@ +# A model of T cell receptor signaling + +# Originally published as: +# Supplementary File A in File S1 +# "Phosphorylation site dynamics of early T-cell receptor signaling" +# L.A. Chylek, V. Akimov, J. Dengjel, K.T.G. Rigbolt, B. Hu, W.S. Hlavacek, B. Blagoev +# This file is an encoding of the TCR signaling model in BNGL. For a description of BNGL, see: +# Faeder JR, Blinov ML, Hlavacek WS, Rule-based modeling of biochemical systems with BioNetGen. Methods Mol. Biol. 500, 113-167 (2009). +# This file can be processed by BNGL-compatible tools, such as BioNetGen (http://bionetgen.org/) and NFsim (http://emonet.biology.yale.edu/nfsim/). +# This file is meant to be used in conjunction with Supplementary File B in File S1, which is a simulation protocol for NFsim in the form of an RNF (Run NFsim) script. + + +begin parameters + +NA 6.022e23 # Avogadro's number; molecules/mole +celldensity 9.7e10 # Cell density; cells/L +Fx 0.05 # Scaling factor representing the fraction of a cell to consider in simulations + # Use of a subvolume speeds simulation, see Faeder et al. (2009) +ECFvol 1/(celldensity) # Extracellular volume; L/cell +simECFvol ECFvol*Fx # Simulated fraction of extracellular volume +Cellvol 1.0e-12 # Cell volume; L +simCellvol Cellvol*Fx # Simulated fraction of cell volume + +# Units and descriptions of parameters below are given in Supplementary Table S2 (Excel spreadsheet of parameter values) + +KD_LckCd28 KD_LckCd28__FREE # This will be bound between 1 and 100 micromolar +kfLckCd28 kfLckCd28__FREE/(NA*simCellvol) # The free parameter will be bound by 0.01 - 100x Lily's best fit +krLckCd28 = KD_LckCd28*kfLckCd28__FREE # Derived from KD_LckCd28 and kfLckCd28 + +kfItkCd28 kfLckCd28 # Assumed to be same as kfLckCd28 +krItkCd28 0.002 # ITK can be recruited by binding to CD28 via its SH3 domain and interacting with phosphoinositides via its PH domain. As a simplification to maintain ITK at the membrane, we assume a slow off-rate for the CD28 interaction. + +act 2 # Faeder et al. (PMID: 12646643) took the kinase Syk to double in enzymatic activity upon phosphorylation of activation loop. + +kpLckLck1 kpLckLck1__FREE # We consider the same range as reported for LCK phosphorylation of ITAMs +kpLckLck2 act*kpLckLck1 # Rate constant for phosphorylation by activated LCK, kpLckLck2 = act*kpLckLck1 + +kpLckItk1 kpLckItk1__FREE # We consider the same range as reported for LCK phosphorylation of ITAMs +kpLckItk2 act*kpLckItk1 # Rate constant for phosphorylation by activated LCK, kpLckItk2 = act*kpLckItk1 + +kpLckTcrz1 kpLckTcrz1__FREE # Housden et al. (PMID: 12755691) reported kcat's in the range of 2.3 +/- 0.7 to 98 +/- 16.8 /s for Lck phosphorylating several TCR ITAM tyrosines +kpLckTcrz2 kpLckTcrz1 # Assumed to be the same as kpLckTcrz1 +kpLckCd3e1 kpLckTcrz1 # Assumed to be the same as kpLckTcrz1 +kpLckCd3e2 kpLckTcrz1 # Assumed to be the same as kpLckTcrz1 +kpLckCd3g kpLckItk2 # Assumed to be the same as kpLckItk2 +kpLckCd3d kpLckItk2 # Assumed to be the same as kpLckItk2 + +KD_ZapTcr 5.56E-09 # Apparent KD for ZAP70's tandom SH2 domains binding to TCR ITAM 2 +krZapTcr krZapTcr__FREE # The free parameter will be bound by 0.01 - 100x Lily's best fit +kfZapTcr = krZapTcr__FREE/KD_ZapTcr/(NA*simCellvol) # Derived from KD_ZapTcr and krZapTcr + +kfZapCd3e kfZapTcr # Assumed to be same as kfZapTcr +krZapCd3e 10*krZapTcr # Isakov et al. show that ZAP70 binds with moderately higher affinity to zeta ITAM 2 than to the CD3E ITAM. We capture this difference in affinity with a ten-fold higher off-rate constant for ZAP70-CD3E binding + +kpLckZap kpLckZap__FREE # We consider the same range of kcat/KM values as reported for LCK phosphorylation of ITAMs and we assume a reaction volume with radius 1 to 10 nm + +kfPtpTcr kfZapTcr # Assumed to be same as kfZapTcr +krPtpTcr krZapTcr # Assumed to be same as krZapTcr + +kdpLck192 kdpLck192__FREE # kcat's were reported in the range 1.7 to 66 /s +kdpLck394 kdpLck394__FREE # kcat's were reported in the range 1.7 to 66 /s + +kpLckPtp1 100 # Faeder et al. (PMID: 12646643) took activity of recruited Lyn kinase to be 100 /s +kpLckPtp2 = act*kpLckPtp1 # Rate constant for phosphorylation by activated LCK, kpLckPtp2 = act*kpLckPtp1 + +kfLckPtp = kfLckPtp__FREE/(NA*simCellvol) # The free parameter will be bound by 0.01 - 100x Lily's best fit +krLckPtp krLckPtp__FREE # The free parameter will be bound by 0.01 - 100x Lily's best fit + +kfLckPtp2 = 3.5e4/(NA*simCellvol) # Lower affinity of binding to LCK SH2 when Y192 in LCK is phosphorylated. See Couture et al. (PMID: 8798764) +krLckPtp2 0.04 # Lower affinity of binding to LCK SH2 when Y192 in LCK is phosphorylated. See Couture et al. (PMID: 8798764) + +kfPagCsk = kfPagCsk__FREE/(NA*simCellvol) # The free parameter will be bound by 0.01 - 100x Lily's best fit +krPagCsk krPagCsk__FREE # The free parameter will be bound by 0.01 - 100x Lily's best fit + +KD_PagLck KD_PagLck__FREE # Hause et al. (PMID: 22973453) report dissociation constants for SH2/pY interactions in the micromolar range +krPagLck krPagLck__FREE # The free parameter will be bound by 0.01 - 100x Lily's best fit +kfPagLck = krPagLck/KD_PagLck/(NA*simCellvol) # Derived from KD_PagLck and krPagLck + +kpLckPag 1000 # Rate constant from Barua et al. (PMID: 22711887) for phosphorylation of PAG by LYN + +kpCskLck kpLckPag # Rate constant from Barua et al. for phosphorylation of LYN by CSK when both are bound to PAG; assumed to be same as kpLckPag + +KM_PagPtp KM_PagPtp__FREE # Typical PTPN6 Km's reported are in the range of 3.2 to 780 micromolar +krPagPtp krPagPtp__FREE # The free parameter will be bound by 0.01 - 100x Lily's best fit +kdpPag kdpPag__FREE # kcat's were reported in the range 1.7 to 66 /s +kfPagPtp = ((kdpPag + krPagPtp)/KM_PagPtp)/(NA*simCellvol) # Derived from KM_PagPtp, krPagPtp and kdpPag using Michaelis-Menten equation + +cyt cyt__FREE # Represents a ratio of membrane volume to cytoplasmic volume, the factor by which the forward reaction is slowed if PTPN6 is not recruited to the membrane. This quantity is bounded because the membrane is of smaller volume than the cytoplasm. +kfPagPtp_cyt = cyt*kfPagPtp # kfPagPtp_cyt = cyt*kfPagPtp. See Sekar et al. for a discussion of how compartment volume affects reaction rates + +KM_Dok1Ptp KM_Dok1Ptp__FREE # Typical PTPN6 Km's reported are in the range of 3.2 to 780 micromolar +krDok1Ptp krPagPtp # Assumed to be the same as krPagPtp +kdpDok1 kdpLck394 # Assumed to be the same as kdpLck394 +kfDok1Ptp = ((kdpDok1 + krDok1Ptp)/KM_Dok1Ptp)/(NA*simCellvol) # Derived from KM_Dok1Ptp, krDok1Ptp, and kdpDok1 using Michaelis-Menten equation + +kfDok2Ptp kfPagPtp # Assumed to be the same as kfPagPtp +krDok2Ptp krPagPtp # Assumed to be the same as krPagPtp + +kdpDok2 kdpLck394 # Assumed to be the same as kdpLck394 + +kfTcrFyn kfTcrFyn__FREE/(NA*simCellvol) # The free parameter will be bound by 0.01 - 100x Lily's best fit +krTcrFyn krTcrFyn__FREE # The free parameter will be bound by 0.01 - 100x Lily's best fit + +kfWasNck 2.4e5/(NA*simCellvol) # Tu et al. present kinetic characterization of NCK2 SH3 domains binding to a PRS-containing protein +krWasNck 7.4e-2 # Tu et al. (PMID: 11240126) present kinetic characterization of NCK2 SH3 domains binding to a PRS-containing protein + +KD_TcrNck 4.11E-05 # Dissociation constant for N-termianl SH3 domain of NCK binding a segment of CD3E containing the PRS +krTcrNck krWasNck # Assumed to be the same as krWasNck +kfTcrNck krWasNck/KD_TcrNck/(NA*simCellvol) # Derived from KD_TcrNck and krTcrNck + +kpWas kpWas__FREE # Torres et al. (PMID: 16293614) reported 51 /s as the kcat for WAS phosphorylation by LCK in absence of WAS autoinhibition, and decreased efficiency in presence of autoinhibition. We assume some autoinhibition is present and/or the kinase (FYN) is not saturated. + +KM_ZapLat132 = KM_ZapLat132__FREE # Reported Km's for Syk (closely related to ZAP70) are in the range of 3-1500 micromolar +kfZapLat132_MS = kfZapLat132__FREE # The free parameter will be bound by 0.01 - 100x Lily's best fit +kfZapLat132 = kfZapLat132_MS/(NA*simCellvol) + +kfZapLat191 kfZapLat191__FREE/(NA*simCellvol) # Houtman et al. show that LAT Y191 is phosphorylated ahead of LAT Y132. To capture this difference, we assume ZAP70 has preference of LAT Y191. + +kpZapLat2 200 # Activity of activated Syk kinase. + +krZapLat = KM_ZapLat132*kfZapLat132_MS-kpZapLat2 # Derived from KM_ZapLat132, and kfZapLat132, and kpZapLat2 using Michaelis-Menten equation + +KD_PlcgLat 6.20E-08 # Affinity of PLCG1 SH2 for LAT pY132 +krPlcgLat krPlcgLat__FREE # The free parameter will be bound by 0.01 - 100x Lily's best fit +kfPlcgLat krPlcgLat/KD_PlcgLat/(NA*simCellvol) # Derived from KD_PlcgLat and krPplcgLat + +KD_LatGrap 1.52E-07 # KD for GRAP2 binding to LAT pY191 +krLatGrap krPlcgLat # Assumed to be same as krPlcgLat +kfLatGrap = krPlcgLat/KD_LatGrap/(NA*simCellvol) # Derived from KD_LatGrap and krLatGrap + +KD_NckLcp 8.00E-07 # PMID: 20562827 +krNckLcp 1 # Assumed to be same as krPlcgLat +kfNckLcp = krNckLcp/KD_NckLcp/(NA*simCellvol) # Derived from KD_NckLcp and krNckLcp + +kfGrapLcp 9.5e6/(NA*simCellvol) # Forward rate constant for GRAP2 binding an LCP2 peptide including the RxxK motif +krGrapLcp 0.06 # Reverse rate constant for GRAP2 binding an LCP2 peptide including the RxxK motif + +kpZapLcp2 kpZapLat2 # Assumed to be same as kpZapLat2 + +kfWasFyn kfZapLat191 # Assumed to be same as kfZapLat191 +krWasFyn krZapLat # Assumed to be same as krZapLat + +KD_PlcgLcp 6.32E-09 # Assumed to be same as dissociation constant for GRAP2-LCP interaction +krPlcgLcp 10*krGrapLcp # Assumed to be same krGrapLcp x 10 +kfPlcgLcp = krPlcgLcp/KD_PlcgLcp/(NA*simCellvol) # Derived from KD_PlcgLcp and krPplcgLcp + +kfLcpItk kfNckLcp # Assumed to be same as kfNckLcp +krLcpItk krLcpItk__FREE # The free parameter will be bound by 0.01 - 100x Lily's best fit + +kfZapLcp kfZapLcp__FREE/(NA*simCellvol) # The free parameter will be bound by 0.01 - 100x Lily's best fit +krZapLcp krZapLcp__FREE # The free parameter will be bound by 0.01 - 100x Lily's best fit + +kpPlcg kpLckPag # Phosphorylation when ITK and PLCG1 are colocalized on LCP2. The ITK SH2 domain helps maintain ITK activity (PMID: 17425330). Rate constant assumed to be same as kpLckPag. + +kp1 5.00E-03 +kp2 0.01 +kp3 0.05 +kp4 2.00E-03 + +kdp1 10 +kdp2 1 # PMID: 22711887 +kdp3 0.01 +kdp4 2 +kdp5 3.00E-02 + +kfl kfl__FREE/(NA*simECFvol) # In range of forward rate constants for antibody-hapten interactions given in Pecht & Lancet (PMID: 333271) +krl krl__FREE # In range of reverse rate constants for antibody-hapten interactions given in Pecht & Lancet (PMID: 333271) +kfl_m kfl*100 # We assume a 100-fold enhancement in the forward rate constant upon tethering of a ligand to the cell surface + +#Ligtot 8.0707e+04*Fx # Antibodies were present at 4 micrograms/mL. With a cell density of 9.7e10 cells/mL and assuming the antibodies' molecular weight is 150 kDA, there were 1.65e5 antibodies/cell. We model the pre-crosslinked antibodies as virtual ligands whose concentration is somewhat lower than the total antibody concentration because formation of crosslinked antibody complexes is dependent on their affinities. +Ligtot 0 + +# Protein copy numbers are given on a per cell basis +Proteintot 200000*Fx # For Jurkat T cells, Denny et al. (PMID: 10648627) estimated LCK to be present at 160,000-200,000 copies per cell. For simplicity we assume that all cytosolic proteins are expressed at 200,000 copies per cell, which corresponds to a concetration of ~0.33 micromolar (assuming a cytoplasmic volume of 1 pL). Thus, any differences in copy numbers are subsumed in forward rate constants. +TCRtot TCRtot__FREE*Fx # As reported in Bartelt et al. (PMID: 19412549), Jurkat E6.1 cells, which were used in our experiments, express abundant levels of TCR and do not respond to cross-linking of CD28 alone, suggesting that CD28 is expressed at a lower level. Data of Marano et al. and Acuto et al. (PMIDs 2787352 and 14647476) suggest that the expression levels of these receptors are on the order 10,000 to 100,000 copies per cell. +CD28tot CD28tot__FREE*Fx # See note on TCRtot above. + +end parameters +begin molecule types + +# Descriptions of molecule types can be found in the Supplementary Text (model guide, File S3) + +Lig1(aCD28,aCD28) +Lig2(aCD28,aCD3) +Lig3(aCD3,aCD3) +TCR(epitope,Y149_D~0~P,Y171_G~0~P,Y111~0~P,Y123~0~P,fynbind,PRS_E,Y188_E~0~P,Y199_E~0~P) +CD28(epitope,PRS1,PRS2) +LCK(SH2,SH3,Y192~0~P,Y424~0~P,Y505~0~P) +ITK(SH3,SH2,PTK,Y512~0~P) +ZAP70(SH2,PTK,Y493~0~P) +PTPN6(SH2,PTP,Y566~0~P) +PAG1(Y163~0~P,Y317~0~P) +CSK(SH2) +DOK1(Y449~0~P) +DOK2(Y299~0~P) +FYN(unique,PTK) +NCK(SH3_1,SH3_3,SH2) +WAS(PRS,Y291~0~P) +LAT(Y132~0~P,Y191~0~P) +PLCG1(SH2,SH3,Y783~0~P) +GRAP2(SH2,SH3) +LCP2(RxxK,Y113_Y128~0~P,PRS,Y145~0~P) + +end molecule types + +begin seed species + +# Seed species are used to initialize a simulation. Following each molecule is parameter that specifies copy number + +Lig1(aCD28,aCD28) Ligtot +Lig2(aCD28,aCD3) Ligtot +Lig3(aCD3,aCD3) Ligtot +CD28(epitope,PRS1,PRS2) CD28tot +TCR(epitope,Y149_D~0,Y171_G~0,Y111~0,Y123~0,fynbind,PRS_E,Y188_E~0,Y199_E~0) TCRtot +LCK(SH2,SH3,Y192~0,Y424~0,Y505~0) Proteintot +ITK(SH3,SH2,PTK,Y512~0) Proteintot +ZAP70(SH2,PTK,Y493~0) Proteintot +PAG1(Y163~0,Y317~0) Proteintot +CSK(SH2) Proteintot +DOK1(Y449~0) Proteintot +DOK2(Y299~0) Proteintot +FYN(unique,PTK) Proteintot +NCK(SH3_1,SH3_3,SH2) Proteintot +WAS(PRS,Y291~0) Proteintot +LAT(Y132~0,Y191~0) Proteintot +PLCG1(SH2,SH3,Y783~0) Proteintot +GRAP2(SH2,SH3) Proteintot + +# To simulate PTPN6 knockdown, the copy number of PTPN6 was set to 0. +PTPN6(SH2,PTP,Y566~0) Proteintot + +# To simulate LCP2 knockdown, the copy number of LCP2 was set to 0. +LCP2(RxxK,Y113_Y128~0,PRS,Y145~0) Proteintot + +end seed species + +begin reaction rules + +# Rules are numbered to correspond to entries in Supplementary Text (model guide), where rules are annotated + +# Rule 1a +Lig1(aCD28,aCD28) + CD28(epitope) <-> Lig1(aCD28!1,aCD28).CD28(epitope!1) kfl,krl + +# Rule 1b +Lig1(aCD28!1,aCD28).CD28(epitope!1) + CD28(epitope) <-> Lig1(aCD28!1,aCD28!2).CD28(epitope!1).CD28(epitope!2) kfl_m,krl + +# Rule 2a +Lig3(aCD3,aCD3) + TCR(epitope) <-> Lig3(aCD3!1,aCD3).TCR(epitope!1) kfl,krl + +# Rule 2b +Lig3(aCD3!1,aCD3).TCR(epitope!1) + TCR(epitope) <-> Lig3(aCD3!1,aCD3!2).TCR(epitope!1).TCR(epitope!2) kfl_m,krl + +# Rule 3a +Lig2(aCD28,aCD3) + CD28(epitope) <-> Lig2(aCD28!1,aCD3).CD28(epitope!1) kfl,krl + +# Rule 3b +Lig2(aCD28!1,aCD3).CD28(epitope!1) + TCR(epitope) <-> Lig2(aCD28!1,aCD3!2).CD28(epitope!1).TCR(epitope!2) kfl_m,krl + +# Rule 3c +Lig2(aCD28,aCD3) + TCR(epitope) <-> Lig2(aCD28,aCD3!1).TCR(epitope!1) kfl,krl + +# Rule 3d +Lig2(aCD28,aCD3!1).TCR(epitope!1) + CD28(epitope) <-> Lig2(aCD28!2,aCD3!1).TCR(epitope!1).CD28(epitope!2) kfl_m,krl + +# Rule 4 +LCK(SH3) + CD28(PRS1) <-> LCK(SH3!1).CD28(PRS1!1) kfLckCd28,krLckCd28 + +# Rule 5 +CD28(PRS2) + ITK(SH3) <-> CD28(PRS2!1).ITK(SH3!1) kfItkCd28, krItkCd28 + +# Rule 6 +TCR(fynbind) + FYN(unique) <-> TCR(fynbind!1).FYN(unique!1) kfTcrFyn,krTcrFyn + +# Rule 7a +NCK(SH3_1) + TCR(Y188_E~0,PRS_E) <-> NCK(SH3_1!1).TCR(Y188_E~0,PRS_E!1) kfWasNck,krWasNck + +# Rule 7b +NCK(SH3_1!1).TCR(Y188_E~P,PRS_E!1) -> NCK(SH3_1) + TCR(Y188_E~P,PRS_E) 1e5*krWasNck + +# Rule 8 +TCR(Y111~P) + ZAP70(SH2) <-> TCR(Y111~P!1).ZAP70(SH2!1) kfZapTcr,krZapTcr + +# Rule 9 +TCR(Y123~P) + ZAP70(SH2) <-> TCR(Y123~P!1).ZAP70(SH2!1) kfZapTcr,krZapTcr + +# Rule 10 +TCR(Y199_E~P) + ZAP70(SH2) <-> TCR(Y199_E~P!1).ZAP70(SH2!1) kfZapCd3e,krZapCd3e + +# Rule 11 +TCR(Y188_E~P) + ZAP70(SH2) <-> TCR(Y188_E~P!1).ZAP70(SH2!1) kfZapCd3e,krZapCd3e + +# Rule 12 +PTPN6(SH2) + TCR(Y149_D~P) <-> PTPN6(SH2!1).TCR(Y149_D~P!1) kfPtpTcr,krPtpTcr + +# Rule 13 +PTPN6(SH2) + TCR(Y171_G~P) <-> PTPN6(SH2!1).TCR(Y171_G~P!1) kfPtpTcr,krPtpTcr + +# Rule 14 +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y188_E~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y188_E~P) kpLckCd3e1 + +# Rule 15 +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y199_E~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y199_E~P) kpLckCd3e2 + +# Rule 16 +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~P) kpLckCd3d + +# Rule 17 +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~P) kpLckCd3g + +# Rule 18 +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y111~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y111~P) kpLckTcrz1 + +# Rule 19 +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y123~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y123~P) kpLckTcrz1 + +# Rule 20a +LCK(SH3!1,Y505~P).CD28(PRS1!1,epitope!2).Lig1(aCD28!2,aCD28!3).CD28(epitope!3,PRS1!4).LCK(SH3!4,Y424~0) ->\ +LCK(SH3!1,Y505~P).CD28(PRS1!1,epitope!2).Lig1(aCD28!2,aCD28!3).CD28(epitope!3,PRS1!4).LCK(SH3!4,Y424~P) kpLckLck1 + +# Rule 20b +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig1(aCD28!2,aCD28!3).CD28(epitope!3,PRS1!4).LCK(SH3!4,Y424~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig1(aCD28!2,aCD28!3).CD28(epitope!3,PRS1!4).LCK(SH3!4,Y424~P) kpLckLck2 + +# Rule 21a +LCK(SH3!1,Y505~P).CD28(PRS1!1,epitope!2).Lig1(aCD28!2,aCD28!3).CD28(epitope!3,PRS2!4).ITK(SH3!4,Y512~0) ->\ +LCK(SH3!1,Y505~P).CD28(PRS1!1,epitope!2).Lig1(aCD28!2,aCD28!3).CD28(epitope!3,PRS2!4).ITK(SH3!4,Y512~P) kpLckItk1 + +# Rule 21b +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig1(aCD28!2,aCD28!3).CD28(epitope!3,PRS2!4).ITK(SH3!4,Y512~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig1(aCD28!2,aCD28!3).CD28(epitope!3,PRS2!4).ITK(SH3!4,Y512~P) kpLckItk2 + +# Rule 22a +TCR(epitope!3,Y111~P!1).ZAP70(Y493~0,SH2!1).Lig2(aCD28!2,aCD3!3).CD28(epitope!2,PRS1!4).LCK(SH3!4,Y505~0) ->\ +TCR(epitope!3,Y111~P!1).ZAP70(Y493~P,SH2!1).Lig2(aCD28!2,aCD3!3).CD28(epitope!2,PRS1!4).LCK(SH3!4,Y505~0) kpLckZap + +# Rule 22b +TCR(epitope!3,Y123~P!1).ZAP70(Y493~0,SH2!1).Lig2(aCD28!2,aCD3!3).CD28(epitope!2,PRS1!4).LCK(SH3!4,Y505~0) ->\ +TCR(epitope!3,Y123~P!1).ZAP70(Y493~P,SH2!1).Lig2(aCD28!2,aCD3!3).CD28(epitope!2,PRS1!4).LCK(SH3!4,Y505~0) kpLckZap + +# Rule 22c +TCR(epitope!3,Y188_E~P!1).ZAP70(Y493~0,SH2!1).Lig2(aCD28!2,aCD3!3).CD28(epitope!2,PRS1!4).LCK(SH3!4,Y505~0) ->\ +TCR(epitope!3,Y188_E~P!1).ZAP70(Y493~P,SH2!1).Lig2(aCD28!2,aCD3!3).CD28(epitope!2,PRS1!4).LCK(SH3!4,Y505~0) kpLckZap + +# Rule 22d +TCR(epitope!3,Y199_E~P!1).ZAP70(Y493~0,SH2!1).Lig2(aCD28!2,aCD3!3).CD28(epitope!2,PRS1!4).LCK(SH3!4,Y505~0) ->\ +TCR(epitope!3,Y199_E~P!1).ZAP70(Y493~P,SH2!1).Lig2(aCD28!2,aCD3!3).CD28(epitope!2,PRS1!4).LCK(SH3!4,Y505~0) kpLckZap + +# Rule 23a +LCK(SH3!1,Y505~P).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~P!4).PTPN6(SH2!4,Y566~0) ->\ +LCK(SH3!1,Y505~P).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~P!4).PTPN6(SH2!4,Y566~P) kpLckPtp1 + +# Rule 23b +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~P!4).PTPN6(SH2!4,Y566~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~P!4).PTPN6(SH2!4,Y566~P) kpLckPtp2 + +# Rule 23c +LCK(SH3!1,Y505~P).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~P!4).PTPN6(SH2!4,Y566~0) ->\ +LCK(SH3!1,Y505~P).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~P!4).PTPN6(SH2!4,Y566~P) kpLckPtp1 + +# Rule 23d +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~P!4).PTPN6(SH2!4,Y566~0) ->\ +LCK(SH3!1,Y505~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~P!4).PTPN6(SH2!4,Y566~P) kpLckPtp2 + +# Rule 24a +LCK(SH2,Y192~0) + PTPN6(Y566~P) <-> LCK(SH2!1,Y192~0).PTPN6(Y566~P!1) kfLckPtp,krLckPtp + +# Rule 24b +LCK(SH2,Y192~P) + PTPN6(Y566~P) <-> LCK(SH2!1,Y192~P).PTPN6(Y566~P!1) kfLckPtp2,krLckPtp2 + +# Rule 25 +PAG1(Y317~P) + CSK(SH2) <-> PAG1(Y317~P!1).CSK(SH2!1) kfPagCsk,krPagCsk + +# Rule 26 +PAG1(Y163~P) + LCK(SH2) <-> PAG1(Y163~P!1).LCK(SH2!1) kfPagLck,krPagLck + +# Rule 27 +PAG1(Y317~0,Y163~P!1).LCK(SH2!1) -> PAG1(Y317~P,Y163~P!1).LCK(SH2!1) kpLckPag + +# Rule 28 +PAG1(Y317~P!2,Y163~P!1).LCK(SH2!1,Y505~0).CSK(SH2!2) -> PAG1(Y317~P!2,Y163~P!1).LCK(SH2!1,Y505~P).CSK(SH2!2) kpCskLck + +# Rule 29a +LCK(SH3!1,Y192~P).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~P!4).PTPN6(SH2!4,Y566~P!?) ->\ +LCK(SH3!1,Y192~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~P!4).PTPN6(SH2!4,Y566~P!?) kdpLck192 + +# Rule 29b +LCK(SH3!1,Y192~P).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~P!4).PTPN6(SH2!4,Y566~P!?) ->\ +LCK(SH3!1,Y192~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~P!4).PTPN6(SH2!4,Y566~P!?) kdpLck192 + +# Rule 30a +LCK(SH3!1,Y424~P).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~P!4).PTPN6(SH2!4,Y566~P!?) ->\ +LCK(SH3!1,Y424~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y149_D~P!4).PTPN6(SH2!4,Y566~P!?) kdpLck394 + +# Rule 30b +LCK(SH3!1,Y424~P).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~P!4).PTPN6(SH2!4,Y566~P!?) ->\ +LCK(SH3!1,Y424~0).CD28(PRS1!1,epitope!2).Lig2(aCD28!2,aCD3!3).TCR(epitope!3,Y171_G~P!4).PTPN6(SH2!4,Y566~P!?) kdpLck394 + +# Rule 30c +PTPN6(Y566~P!1).LCK(SH2!1,Y424~P) -> PTPN6(Y566~P!1).LCK(SH2!1,Y424~0) kdpLck394 + +# Rule 31a +PAG1(Y163~P) + PTPN6(SH2!2,PTP).TCR(Y149_D~P!2) ->\ +PAG1(Y163~P!1).PTPN6(SH2!2,PTP!1).TCR(Y149_D~P!2) kfPagPtp + +# Rule 31b +PAG1(Y163~P) + PTPN6(SH2!2,PTP).TCR(Y171_G~P!2) ->\ +PAG1(Y163~P!1).PTPN6(SH2!2,PTP!1).TCR(Y171_G~P!2) kfPagPtp + +# Rule 31c +PTPN6(PTP,SH2) + PAG1(Y163~P) -> PTPN6(PTP!1,SH2).PAG1(Y163~P!1) kfPagPtp_cyt + +# Rule 31d +PAG1(Y163~P!1).PTPN6(PTP!1) -> PAG1(Y163~P) + PTPN6(PTP) krPagPtp + +# Rule 31e +PAG1(Y163~P!1).PTPN6(PTP!1,Y566~P!?) -> PAG1(Y163~0) + PTPN6(PTP,Y566~P!?) kdpPag + +# Rule 32a +DOK1(Y449~P) + PTPN6(SH2!2,PTP).TCR(Y149_D~P!2) -> DOK1(Y449~P!1).PTPN6(SH2!2,PTP!1).TCR(Y149_D~P!2) kfDok1Ptp + +# Rule 32b +DOK1(Y449~P) + PTPN6(SH2!2,PTP).TCR(Y171_G~P!2) -> DOK1(Y449~P!1).PTPN6(SH2!2,PTP!1).TCR(Y171_G~P!2) kfDok1Ptp + +# Rule 32c +DOK1(Y449~P!1).PTPN6(PTP!1) -> DOK1(Y449~P) + PTPN6(PTP) krDok1Ptp + +# Rule 32d +DOK1(Y449~P!1).PTPN6(PTP!1,Y566~P!?) -> DOK1(Y449~0) + PTPN6(PTP,Y566~P!?) kdpDok1 + +# Rule 33a +DOK2(Y299~P) + PTPN6(SH2!2,PTP).TCR(Y149_D~P!2) -> DOK2(Y299~P!1).PTPN6(SH2!2,PTP!1).TCR(Y149_D~P!2) kfDok2Ptp + +# Rule 33b +DOK2(Y299~P) + PTPN6(SH2!2,PTP).TCR(Y171_G~P!2) -> DOK2(Y299~P!1).PTPN6(SH2!2,PTP!1).TCR(Y171_G~P!2) kfDok2Ptp + +# Rule 33c +DOK2(Y299~P!1).PTPN6(PTP!1) -> DOK2(Y299~P) + PTPN6(PTP) krDok2Ptp + +# Rule 33d +DOK2(Y299~P!1).PTPN6(PTP!1,Y566~P!?) -> DOK2(Y299~0) + PTPN6(PTP,Y566~P!?) kdpDok2 + +# Rule 34 +WAS(PRS) + NCK(SH3_3) <-> WAS(PRS!1).NCK(SH3_3!1) kfWasNck,krWasNck + +# Rule 35a +TCR(epitope!3,fynbind!1).FYN(unique!1).Lig3(aCD3!2,aCD3!3).TCR(epitope!2,PRS_E!4).NCK(SH3_1!4,SH3_3!5).WAS(Y291~0,PRS!5) ->\ +TCR(epitope!3,fynbind!1).FYN(unique!1).Lig3(aCD3!2,aCD3!3).TCR(epitope!2,PRS_E!4).NCK(SH3_1!4,SH3_3!5).WAS(Y291~P,PRS!5) kpWas + +# Rule 35b +LAT(Y191~P!1).GRAP2(SH2!1,SH3!2).LCP2(RxxK!2,Y113_Y128~P!3).NCK(SH2!3,SH3_3!4).WAS(PRS!4,Y291~0) + FYN(unique!+,PTK) ->\ +LAT(Y191~P!1).GRAP2(SH2!1,SH3!2).LCP2(RxxK!2,Y113_Y128~P!3).NCK(SH2!3,SH3_3!4).WAS(PRS!4,Y291~0!5).FYN(unique!+,PTK!5) kfWasFyn + +# Rule 35c +WAS(Y291~0!5).FYN(PTK!5) -> WAS(Y291~P) + FYN(PTK) kpWas + +# Rule 35d +WAS(Y291~0!1).FYN(PTK!1) -> WAS(Y291~0) + FYN(PTK) krWasFyn + +# Rule 36a +ZAP70(SH2!+,PTK) + LAT(Y132~0) -> ZAP70(SH2!+,PTK!1).LAT(Y132~0!1) kfZapLat132 + +# Rule 36b +ZAP70(PTK!1).LAT(Y132~0!1) -> ZAP70(PTK) + LAT(Y132~0) krZapLat + +# Rule 36c +ZAP70(PTK!1,Y493~P).LAT(Y132~0!1) -> ZAP70(PTK,Y493~P) + LAT(Y132~P) kpZapLat2 + +# Rule 37a +ZAP70(SH2!+,PTK) + LAT(Y191~0) -> ZAP70(SH2!+,PTK!1).LAT(Y191~0!1) kfZapLat191 + +# Rule 37b +ZAP70(PTK!1).LAT(Y191~0!1) -> ZAP70(PTK) + LAT(Y191~0) krZapLat + +# Rule 37c +ZAP70(PTK!1,Y493~P).LAT(Y191~0!1) -> ZAP70(PTK,Y493~P) + LAT(Y191~P) kpZapLat2 + +# Rule 38 +PLCG1(SH2) + LAT(Y132~P) <-> PLCG1(SH2!1).LAT(Y132~P!1) kfPlcgLat,krPlcgLat + +# Rule 39 +LAT(Y191~P) + GRAP2(SH2) <-> LAT(Y191~P!1).GRAP2(SH2!1) kfLatGrap,krLatGrap + +# Rule 40 +GRAP2(SH3) + LCP2(RxxK) <-> GRAP2(SH3!1).LCP2(RxxK!1) kfGrapLcp, krGrapLcp + +# Rule 41 +NCK(SH2) + LCP2(Y113_Y128~P) <-> NCK(SH2!1).LCP2(Y113_Y128~P!1) kfNckLcp,krNckLcp + +# Rule 42a +LAT(Y191~P!1).GRAP2(SH2!1,SH3!2).LCP2(RxxK!2,Y113_Y128~0) + ZAP70(SH2!+,PTK) ->\ +LAT(Y191~P!1).GRAP2(SH2!1,SH3!2).LCP2(RxxK!2,Y113_Y128~0!3).ZAP70(SH2!+,PTK!3) kfZapLcp + +# Rule 42b +ZAP70(PTK!1).LCP2(Y113_Y128~0!1) -> ZAP70(PTK) + LCP2(Y113_Y128~0) krZapLcp + +# Rule 42c +LCP2(Y113_Y128~0!3).ZAP70(PTK!3,Y493~P) -> LCP2(Y113_Y128~P) + ZAP70(PTK,Y493~P) kpZapLcp2 + +# Rule 43 +PLCG1(SH3) + LCP2(PRS) <-> PLCG1(SH3!1).LCP2(PRS!1) kfPlcgLcp,krPlcgLcp + +# Rule 44 +LCP2(Y145~P) + ITK(SH2) <-> LCP2(Y145~P!1).ITK(SH2!1) kfLcpItk,krLcpItk + +# Rule 45a +LAT(Y191~P!1).GRAP2(SH2!1,SH3!2).LCP2(RxxK!2,Y145~0) + ZAP70(SH2!+,PTK) ->\ +LAT(Y191~P!1).GRAP2(SH2!1,SH3!2).LCP2(RxxK!2,Y145~0!3).ZAP70(SH2!+,PTK!3) kfZapLcp + +# Rule 45b +ZAP70(PTK!1).LCP2(Y145~0!1) -> ZAP70(PTK) + LCP2(Y145~0) krZapLcp + +# Rule 45c +LCP2(Y145~0!3).ZAP70(PTK!3,Y493~P) -> LCP2(Y145~P) + ZAP70(PTK,Y493~P) kpZapLcp2 + +# Rule 46 +PLCG1(SH3!1,SH2!+,Y783~0).LCP2(PRS!1,Y145~P!2).ITK(SH2!2) -> PLCG1(SH3!1,SH2!+,Y783~P).LCP2(PRS!1,Y145~P!2).ITK(SH2!2) kpPlcg + +# The following rules account for phosphorylation and dephosphorylation in the basal state, and are not discussed in the model guide + +TCR(Y149_D~0) -> TCR(Y149_D~P) kp1 +TCR(Y149_D~P) -> TCR(Y149_D~0) kdp1 + +TCR(Y171_G~0) -> TCR(Y171_G~P) kp1 +TCR(Y171_G~P) -> TCR(Y171_G~0) kdp1 + +TCR(Y111~0) -> TCR(Y111~P) kp1 +TCR(Y111~P) -> TCR(Y111~0) kdp4 + +TCR(Y123~0) -> TCR(Y123~P) kp1 +TCR(Y123~P) -> TCR(Y123~0) kdp4 + +TCR(Y199_E~0) -> TCR(Y199_E~P) kp1 +TCR(Y199_E~P) -> TCR(Y199_E~0) kdp1 + +TCR(Y188_E~0) -> TCR(Y188_E~P) kp1 +TCR(Y188_E~P) -> TCR(Y188_E~0) kdp1 + +LCK(Y192~0) -> LCK(Y192~P) kp2 +LCK(Y192~P) -> LCK(Y192~0) kdp3 + +LCK(Y424~0) -> LCK(Y424~P) kp2 +LCK(Y424~P) -> LCK(Y424~0) kdp2 + +LCK(Y505~0) -> LCK(Y505~P) kp2 +LCK(Y505~P) -> LCK(Y505~0) kdp5 + +PTPN6(Y566~0) -> PTPN6(Y566~P) kp2 +PTPN6(Y566~P) -> PTPN6(Y566~0) kdp4 + +ZAP70(Y493~0) -> ZAP70(Y493~P) kp1 +ZAP70(Y493~P) -> ZAP70(Y493~0) kdp2 + +LAT(Y132~0) -> LAT(Y132~P) kp2 +LAT(Y132~P) -> LAT(Y132~0) kdp2 + +LAT(Y191~0) -> LAT(Y191~P) kp2 +LAT(Y191~P) -> LAT(Y191~0) kdp2 + +ITK(Y512~0) -> ITK(Y512~P) kp2 +ITK(Y512~P) -> ITK(Y512~0) kdp2 + +PLCG1(Y783~0) -> PLCG1(Y783~P) kp1 +PLCG1(Y783~P) -> PLCG1(Y783~0) kdp1 + +LCP2(Y113_Y128~0) -> LCP2(Y113_Y128~P) kp2 +LCP2(Y113_Y128~P) -> LCP2(Y113_Y128~0) kdp2 + +LCP2(Y145~0) -> LCP2(Y145~P) kp2 +LCP2(Y145~P) -> LCP2(Y145~0) kdp2 + +PAG1(Y163~0) -> PAG1(Y163~P) kp4 +PAG1(Y163~P) -> PAG1(Y163~0) kdp3 + +PAG1(Y317~0) -> PAG1(Y317~P) kp4 +PAG1(Y317~P) -> PAG1(Y317~0) kdp4 + +DOK1(Y449~0) -> DOK1(Y449~P) kp4 +DOK1(Y449~P) -> DOK1(Y449~0) kdp3 + +DOK2(Y299~0) -> DOK2(Y299~P) kp4 +DOK2(Y299~P) -> DOK2(Y299~0) kdp3 + +WAS(Y291~0) -> WAS(Y291~P) kp2 +WAS(Y291~P) -> WAS(Y291~0) kdp2 + +end reaction rules + +begin observables + +# Beside each observable is noted the figure(s) in which the observable is plotted. +Molecules DOK1_pY449 DOK1(Y449~P!?) # Fig. 2 and Fig. S6 +Molecules DOK2_pY299 DOK2(Y299~P!?) # Fig. 2 and Fig. S6 +Molecules ITK_pY512 ITK(Y512~P!?) # Fig. 2 and Fig. S6 +Molecules LCK_pY192 LCK(Y192~P!?) # Fig. 2, 3 and Fig. S6 +Molecules LCK_pY424 LCK(Y424~P!?) # Fig. 2 and Fig. S6 +Molecules PAG1_pY163 PAG1(Y163~P!?) # Fig. 2 and Fig. S6 +Molecules PLCG1_pY783 PLCG1(Y783~P!?) # Fig. 2, 4 and Fig. S6 +Molecules PTPN6_pY566 PTPN6(Y566~P!?) # Fig. 2, 3 and Fig. S6 +Molecules TCR_pY111 TCR(Y111~P!?) # Fig. 2 and Fig. S6 +Molecules TCR_pY123 TCR(Y123~P!?) # Fig. 2 and Fig. S6 +Molecules TCR_pY149_D TCR(Y149_D~P!?) # Fig. 2 and Fig. S6 +Molecules TCR_pY171_G TCR(Y171_G~P!?) # Fig. 2 and Fig. S6 +Molecules TCR_pY188_E TCR(Y188_E~P!?) # Fig. 2 and Fig. S6 +Molecules TCR_pY199_E TCR(Y199_E~P!?) # Fig. 2 and Fig. S6 +Molecules WAS_pY291 WAS(Y291~P!?) # Fig. 2, 4 and Fig. S6 +Molecules ZAP70_pY493 ZAP70(Y493~P!?) # Figs. 2, 3 and Fig. S6 + +end observables + +begin actions + +# Equilibrate for 1000 seconds +simulate({suffix=>"equil",method=>"nf",t_start=>0,t_end=>1000,n_steps=>1,get_final_state=>1}); + +# Add ligand (8.0707e+04 * Fx) +setConcentration("Lig1(aCD28,aCD28)","8.0707e+04*Fx") +setConcentration("Lig2(aCD28,aCD3)","8.0707e+04*Fx") +setConcentration("Lig3(aCD3,aCD3)","8.0707e+04*Fx") + +# Simulate for 60 seconds, outputting every 5 seconds +simulate({suffix=>"tcr",method=>"nf",t_start=>0,t_end=>60,get_final_state=>0,n_steps=>12}); + +end actions diff --git a/PyBioNetGen/core/tlbr/README.md b/PyBioNetGen/core/tlbr/README.md new file mode 100644 index 00000000..44a0dfd3 --- /dev/null +++ b/PyBioNetGen/core/tlbr/README.md @@ -0,0 +1,21 @@ +# tlbr + +A model of trivalent ligand, bivalent receptor + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: published + +## Files + +- tlbr.bngl + +## Tags + +tlbr, l, r, lambda, fl diff --git a/PyBioNetGen/core/tlbr/metadata.yaml b/PyBioNetGen/core/tlbr/metadata.yaml new file mode 100644 index 00000000..c9b86389 --- /dev/null +++ b/PyBioNetGen/core/tlbr/metadata.yaml @@ -0,0 +1,22 @@ +id: "tlbr" +name: "tlbr" +description: "A model of trivalent ligand, bivalent receptor" +tags: ["tlbr", "l", "r", "lambda", "fl"] +category: "other" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tlbr/tlbr.bngl" +playground: + visible: false + gallery_category: "other" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/core/tlbr/tlbr.bngl b/PyBioNetGen/core/tlbr/tlbr.bngl new file mode 100644 index 00000000..a556f1de --- /dev/null +++ b/PyBioNetGen/core/tlbr/tlbr.bngl @@ -0,0 +1,99 @@ +# A model of trivalent ligand, bivalent receptor + +begin model + +# Reference: +# 1. Monine MI et al. (2010) Biophys J 98: 48-56. <-- model and fitting results +# 2. Posner RG et al. (2007) Org Lett 9: 3551-3554. <-- data + +begin parameters + +# Avogadro constant +NA 6.02214e23 # [=] molecules per mol + +# fraction of a cell to consider in a stochastic simulation +f 0.001 # [=] dimensionless, from Table 1 in Ref 1 + +chi=1.0/f + +# cell density +cellDensity 1.0e9 # [=] cells per L (1e6 cells per ml), from Table 1 in Ref 1 + +# volume of ECF surrounding a single cell (on average) +Vref=f/cellDensity # [=] L, from Table 1 in Ref 1 + +LTconc 7.0 # [=] nM + +RTref f*3.0e5 # [=] molecules per cell, from Table 1 in Ref 1 +LTref = LTconc*1.0e-9*(NA*Vref) # [=] ~4,200,000 molecules per cell, cf. Table 1 in Ref 1 +RTconc = RTref*1.0e9/(NA*Vref) # [=] nM + +# dissociation rate constants (settings are arbitrary) +koff 0.01 # [=] /s, from Table 1 in Ref +kr1=koff # [=] /s +kr2=koff # [=] /s + +alpha alpha__FREE + +inverse_alpha=1.0/alpha # 1/alpha + +K1 K1__FREE # [=] /nM, from Brandon +K2 K2__FREE # [=] /nM, from Brandon + +kf1=K1*1.0e9*kr1/(NA*Vref) # [=] /(molecule/cell)/s +kf2=K2*1.0e9*kr2/(NA*Vref) # [=] /(molecule/cell)/s + +end parameters + +begin molecule types + +L(s,s,s) +R(s,s) + +end molecule types + +begin seed species + +L(s,s,s) LTref +R(s,s) RTref + +end seed species + +begin observables + +Molecules R_total R() +Molecules L_total L() +Species L_free L(s,s,s) + +end observables + +begin functions + +lambda() (L_total-L_free)/(2.0*R_total) # [=] dimensionless, (0,1) +FL() inverse_alpha*(L_total-L_free)/(2.0*R_total) # FL = lambda/alpha or lambda = alpha*FL +# I am multiplying by the inverse of alpha instead of dividing by alpha +# to avoid a "divide by zero" error + +end functions + +begin reaction rules + +L(s,s,s)+R(s)->L(s!1,s,s).R(s!1) kf1 +L(s!+,s)+R(s)->L(s!+,s!1).R(s!1) kf2 +L(s!1).R(s!1)->L(s)+R(s) koff + +end reaction rules + +end model + +begin actions + +parameter_scan({parameter=>"LTconc",\ + par_scan_vals=>[0.0005006902,0.001362623,0.0044341334,0.0149210839,\ + 0.0441574,0.1507897315,0.5013619944,1.5652727704,5.2257161826,\ + 16.9016532291,67.9604112309,213.4593409505],\ + method=>"nf",complex=>1,gml=>10000000,print_functions=>1,\ + t_start=>0,t_end=>5000,n_steps=>10,suffix=>"tlbr",\ + steady_state=>1,get_final_state=>0}) + +end actions diff --git a/PyBioNetGen/tests/ErrNoFrees/ErrNoFrees.bngl b/PyBioNetGen/tests/ErrNoFrees/ErrNoFrees.bngl new file mode 100644 index 00000000..fca89677 --- /dev/null +++ b/PyBioNetGen/tests/ErrNoFrees/ErrNoFrees.bngl @@ -0,0 +1,170 @@ +================================================ +# An example from a real application +# +# filename: model.bngl +# date of last edit: 07-Jul-2017 +# authors: Chylek LA, Hlavacek WS (Los Alamos National Laboratory) +# software compatibility: RuleBender (version 2.1.0), BioNetGen (version 2.3) + +begin model + +begin parameters + + +f 1 # cells per reaction compartment + +# Avogadro constant +NA 6.02214e23 # molecules per mol + +# time unit conversion factor +T 60 # s per min + +# channel volume in microfluidic device +Vchannel 500e-9 # L per channel (500 nL) + +# number of cells per channel +Nchannel 1000 # cells per channel + +# volume of extracellular fluid +Vecf=f*(Vchannel/Nchannel) # L per cell (500 pL/cell) + +# cytosolic volume of an RBL-2H3 cell +# This estimate corresponds to the volume of a sphere with a diameter of 17.9 microns. +Vcyt f*3e-12 # L per cell (3 pL/cell) + +# multivalent antigen abundance in medium at condition 1 +Ag_conc1 10e-9 # M (10 nM) +Ag_tot_1=Ag_conc1*(NA*Vecf) # cpc + +# antigen receptor abundance +R_tot f*3e5 # copies per cell (1 nM) + +# rate constant for antigen capture +kon 1e7*T/(NA*Vecf) # /M/s (1.8e8 /M/min) converted to /cpc/min; Initial guess 3e6 + +# rate constant for antigen release +koff 0.01*T # /s converted to /min (0.6 /min); Initial guess 0.01 + +# rate constant for pseudo first-order phosphorylation of antigen-engaged receptor +kase 1*T # /s converted to /min (60 /min); Initial guess 1 + +# rate constant for pseuedo first-order dephosphorylation of phosphorylated receptor +pase 2*T # /s converted to /min (120 /min); Initial guess 2 + +H_tot 1e6 # cpc + +kdegran 6e4*T/(NA*Vcyt) # /M/s (3.6e6 /M/min) converted to /cpc/min (2e-6 /cpc/min); Initial guess 6e4 + + +end parameters + +begin molecule types + +# antigen (DNP-conjugated BSA) +# DNP: 2,4-dinitrophenyl groups +Ag(DNP) + +# antigen receptor (anti-DNP IgE bound to FcεRI) +# IgE: anti-DNP IgE +# Y: tyrosine residues (0, unmodified; P, phosphorylated) +# in the β and γ-chain ITAMs of FcεRI +R(IgE,Yb~0~P) + + +# β-hexosaminidase +# loc: location (in, inside granules; out, secreted/outside cell) +H(loc~in~out) + +end molecule types + +begin seed species + +# initial conditions + +# initial abundance of free antigen (in medium) per cell +Ag(DNP) Ag_tot_1 + +# initial abundance of free antigen receptor +R(IgE,Yb~0) R_tot + +# initial abundance of β-hexosaminidase (stored in cellular granules) +H(loc~in) H_tot + +end seed species + +begin observables + +# simulation outputs + +Molecules Ag_total Ag() # This quantity may accumulate because free Ag abundance is held fixed. +Molecules Ag_free Ag(DNP) # This quantity is held constant, except for adjustments in the actions block. +Molecules R_bound R(IgE!+) # number of antigen-bound receptors per cell +Molecules R_free R(IgE) # number of antigen-free receptors per cell +Molecules RP R(Yb~P!?) # number of phosphorylated receptors per cell +Molecules R0 R(Yb~0) # number of unphosphorylated receptors per cell +Molecules degranulation H(loc~out) # abundance of secreted β-hexominadase (surrogate for secreted mediators of inflammation) + +end observables + +begin reaction rules + +# ligand-receptor binding +# As a simplification, we consider a one-step binding mechanism. +# Thus, the rate constants are effective parameters that reflect +# capture and release of (multivalent) antigen as well as the effects +# of antigen-mediated receptor aggregation on the residence time of antigen +# on the cell surface. Recall that the antigen receptor is a long-lived 1:1 complex +# of antigen-specific IgE and FcεRI, the high-affinity Fc receptor for IgE. +Ag(DNP)+R(IgE)<->Ag(DNP!1).R(IgE!1) kon,koff + +# ligand-dependent receptor phosphorylation +# We assume that bound receptors are competent for (Lyn-mediated) phosphorylation +# of the tyrosines in β and γ ITAMs. We expect a fraction of receptors +# to be constitutively associated with receptors. +# The effective rate constant for phosphorylation is assumed to capture associaton of +# Lyn with receptors and the relationship between the abundance of cell-associated antigen +# and the extent of antigen-mediated receptor crosslinking. +R(IgE!+,Yb~0)->R(IgE!+,Yb~P) kase + +# receptor dephosphorylation +# As a simplification, we consider a pseudo first-order mechanism. +# Thus, the effective rate constant for phosphorylation can be viewed +# as the Vmax/KM ratio for phosphatases. We expect phosphatase activity to be high. +R(Yb~P)->R(Yb~0) pase + + +# Degranulation due to the presence of phosphorylated receptor +# PIP3 serves as a PLCγ substrate, leading to the production of IP3, stimulating store-operated calcium release followed by degranulation +# We assume this occurs as a pseudo second order process. +R(Yb~P)+H(loc~in)->R(Yb~P)+H(loc~out) kdegran + +end reaction rules + +end model + +begin actions + +# The command below instructs BioNetGen to derive a reaction network from the model's rules. +# The output is sent to a file that has a .net filename extension. +# The .net file can be further processed to generate the ordinary differential equations +# corresponding to the reaction network and the rate laws associated with the model's rules. +generate_network({overwrite=>1}) + +# The commands below illustrate how we simulated +# 1) an initial period of multivalent antigen-stimulated IgE receptor signaling, +# 2) an intermediate period of monovalent antigen-induced IgE receptor signaling quiescence, and +# 3) a second and final period of multivalent antigen-stimulated IgE receptor signaling. + +# For the purposes of fitting to experimental data, we repeat the series of 3 simulations for each time delay that was tested experimentally +# For each one, a .exp file was saved containing the appropriate experimental data point from Fig. 4 +# BioNetFit will be used to fit the model to the .exp files. + +# first 5-min period of multivalent antigen stimulation +setConcentration("Ag(DNP)","Ag_tot_1") +simulate({suffix=>"p1_5",method=>"ode",t_end=>5,n_steps=>50}) + + +end actions + + +================================================ diff --git a/PyBioNetGen/tests/ErrNoFrees/README.md b/PyBioNetGen/tests/ErrNoFrees/README.md new file mode 100644 index 00000000..6f21397d --- /dev/null +++ b/PyBioNetGen/tests/ErrNoFrees/README.md @@ -0,0 +1,21 @@ +# ErrNoFrees + +An example from a real application + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- ErrNoFrees.bngl + +## Tags + +errnofrees, ag, r, h diff --git a/PyBioNetGen/tests/ErrNoFrees/metadata.yaml b/PyBioNetGen/tests/ErrNoFrees/metadata.yaml new file mode 100644 index 00000000..8e8ba78e --- /dev/null +++ b/PyBioNetGen/tests/ErrNoFrees/metadata.yaml @@ -0,0 +1,22 @@ +id: "ErrNoFrees" +name: "ErrNoFrees" +description: "An example from a real application" +tags: ["errnofrees", "ag", "r", "h"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/ErrNoFrees.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/PyBioNetGen/tests/LilyIgE/LilyIgE.bngl b/PyBioNetGen/tests/LilyIgE/LilyIgE.bngl new file mode 100644 index 00000000..4eb1c5f2 --- /dev/null +++ b/PyBioNetGen/tests/LilyIgE/LilyIgE.bngl @@ -0,0 +1,357 @@ +================================================ +# An example from a real application +# +# filename: model.bngl +# date of last edit: 07-Jul-2017 +# authors: Chylek LA, Hlavacek WS (Los Alamos National Laboratory) +# software compatibility: RuleBender (version 2.1.0), BioNetGen (version 2.3) + +begin model + +begin parameters + +# system size scaling factor (>0) +f 1 # cells per reaction compartment + +# Avogadro constant +NA 6.02214e23 # molecules per mol + +# time unit conversion factor +T 60 # s per min + +# channel volume in microfluidic device +Vchannel 500e-9 # L per channel (500 nL) + +# number of cells per channel +Nchannel 1000 # cells per channel + +# volume of extracellular fluid +Vecf=f*(Vchannel/Nchannel) # L per cell (500 pL/cell) + +# cytosolic volume of an RBL-2H3 cell +# This estimate corresponds to the volume of a sphere with a diameter of 17.9 microns. +Vcyt f*3e-12 # L per cell (3 pL/cell) + +# multivalent antigen abundance in medium at condition 0 +Ag_tot_0 0 # copies per cell (cpc) + +# multivalent antigen abundance in medium at condition 1 +Ag_conc1 10e-9 # M (10 nM) +Ag_tot_1=Ag_conc1*(NA*Vecf) # cpc + +# antigen receptor abundance +R_tot f*3e5 # copies per cell (1 nM) + +# Syk abundance +Syk_tot f*3e5 # cpc (0.166 uM) + +# Ship1 abundance +Ship1_tot f*3e5 # cpc (0.166 uM) + +# rate constant for antigen capture +kon kon__FREE*T/(NA*Vecf) # /M/s (1.8e8 /M/min) converted to /cpc/min; Initial guess 3e6 + +# rate constant for antigen release +koff koff__FREE*T # /s converted to /min (0.6 /min); Initial guess 0.01 + +# rate constant for pseudo first-order phosphorylation of antigen-engaged receptor +kase kase__FREE*T # /s converted to /min (60 /min); Initial guess 1 + +# rate constant for pseuedo first-order dephosphorylation of phosphorylated receptor +pase pase__FREE*T # /s converted to /min (120 /min); Initial guess 2 + +kp_Syk kp_Syk__FREE*T/(NA*Vcyt) # /M/s (6e7 /M/min) converted to /cpc/min; Initial guess 1e6 +km_Syk km_Syk__FREE*T # /s converted to /min (7.8 /min); Initial guess 0.13 + +kp_Ship1 kp_Ship1__FREE*T/(NA*Vcyt) # /M/s (1e6 /M/min) converted to /cpc/min; Initial guess 1.667e4 +km_Ship1 km_Ship1__FREE*T # /s converted to /min (0.1 /min); Initial guess 1.667e-3 + +ksynth1 ksynth1__FREE*T # /s converted to /min (10 /min); Initial guess 0.1667 +kdeg1 kdeg1__FREE*T/(NA*Vcyt) # /M/s (3.6e9 /M/min) converted to /cpc/min; Initial guess 1e7, diffusion-limited +kpten kpten__FREE*T # /s Rate of basal degradation of PIP3 and/or IP3; Initial guess 8.3333 + + +H_tot 1e6 # cpc + +kdegran kdegran__FREE*T/(NA*Vcyt) # /M/s (3.6e6 /M/min) converted to /cpc/min (2e-6 /cpc/min); Initial guess 6e4 + +# rate constant for ubiquitination +#kE3 5.833e-4*T # /s converted to /min (0.035 /min) + +# rate constant for proteosomal degradation +#kproteosome 1*T # /s converted to /min (60 /min) + +# rate constant for degradation of X (in one step, including ubiquitination and proteosomal degradation) +kdegX kdegX__FREE*T # /s converted to /min (60 /min); Initial guess 5.833e-4 + + +k_Xon k_Xon__FREE*T/(NA*Vcyt) # /M/s (1.8e12 /M/min) converted to /cpc/min; Initial guess 1e7, diffusion limited +k_Xoff k_Xoff__FREE*T # /s converted to /min (0.002 /min); Initial guess 3.333e-5 + +kp_x kp_x__FREE*T/(NA*Vcyt) # /M/s (1.8e18 /M/min) converted to /cpc/min (1e6 /cpc/min); Initial guess 1e7, diffusion limited +km_x km_x__FREE*T # /s converted to /min (100 /min); Initial guess 1.666 + +# abundance of hypothetical Ship1 cofactor X +X_tot=X_tot__FREE*Ship1_tot # 2.4e6 cpc (1.33 uM); Initial guess 8 + +end parameters + +begin molecule types + +# antigen (DNP-conjugated BSA) +# DNP: 2,4-dinitrophenyl groups +Ag(DNP) + +# antigen receptor (anti-DNP IgE bound to FcεRI) +# IgE: anti-DNP IgE +# Y: tyrosine residues (0, unmodified; P, phosphorylated) +# in the β and γ-chain ITAMs of FcεRI +R(IgE,Yb~0~P,Yg~0~P) + +# protein tyrosine kinase Syk +# tSH2: tandem SH2 domains +Syk(tSH2) + +# lipid phosphatase Ship1 +# SH2: Src homology 2 (SH2) domain +# x: binding site for hypothethical Ship1 cofactor X +Ship1(SH2,x) + +# hypothetical Ship1 cofactor X +# s: Ship1 binding site (on, active; off, inactive) +X(s~on~off) + +# phosphatidylinositol (3,4,5)-trisphosphate +# p: region of lipid recognized by PH domain in PLCG +PIP3() + + +# β-hexosaminidase +# loc: location (in, inside granules; out, secreted/outside cell) +H(loc~in~out) + +end molecule types + +begin seed species + +# initial conditions + +# initial abundance of free antigen (in medium) per cell +# The $ prefix indicates that this abundance is to be held constant. +$Ag(DNP) Ag_tot_1 + +# initial abundance of free antigen receptor +R(IgE,Yb~0,Yg~0) R_tot + +# initial abundance of (inactive) cytosolic Syk +Syk(tSH2) Syk_tot + +# initial abundance of (inactive) cytosolic Ship1 +Ship1(SH2,x) Ship1_tot + +# initial abundance of PIP3 +PIP3() 0 + +# initial abundance of β-hexosaminidase (stored in cellular granules) +H(loc~in) H_tot + +# initial abundance of inactive hypothetical Ship1 cofactor X (untagged by Ub) +X(s~off) X_tot + +end seed species + +begin observables + +# simulation outputs + +Molecules Ag_total Ag() # This quantity may accumulate because free Ag abundance is held fixed. +Molecules Ag_free Ag(DNP) # This quantity is held constant, except for adjustments in the actions block. +Molecules R_bound R(IgE!+) # number of antigen-bound receptors per cell +Molecules R_free R(IgE) # number of antigen-free receptors per cell +Molecules RP R(Yg~P!?) # number of phosphorylated receptors per cell +Molecules R0 R(Yg~0) # number of unphosphorylated receptors per cell +Molecules actSyk Syk(tSH2!+) # number of Syk molecules recruited to antigen receptors +Molecules actShip1 Ship1(SH2!+,x!+) # number of Ship1 molecules recruited to antigen receptors and bound to X +Molecules Ship1_total Ship1() # total abundance of Ship1 +Molecules PIP3_total PIP3() # total abundance of PIP3 +Molecules degranulation H(loc~out) # abundance of secreted β-hexominadase (surrogate for secreted mediators of inflammation) +Molecules Xall X() # total abundance of hypothetical Ship1 cofactor X +Molecules X_on_free X(s~on) # abundance of free X in activated state +Molecules X_on_free_or_bound X(s~on!?) # abundance of X (bound or free) in activated state +Molecules XShip1 X(s~on!1).Ship1(x!1) # abundance of Ship1 bound to (activated) cofactor X + +end observables + +begin reaction rules + +# ligand-receptor binding +# As a simplification, we consider a one-step binding mechanism. +# Thus, the rate constants are effective parameters that reflect +# capture and release of (multivalent) antigen as well as the effects +# of antigen-mediated receptor aggregation on the residence time of antigen +# on the cell surface. Recall that the antigen receptor is a long-lived 1:1 complex +# of antigen-specific IgE and FcεRI, the high-affinity Fc receptor for IgE. +Ag(DNP)+R(IgE)<->Ag(DNP!1).R(IgE!1) kon,koff + +# ligand-dependent receptor phosphorylation +# We assume that bound receptors are competent for (Lyn-mediated) phosphorylation +# of the tyrosines in β and γ ITAMs. We expect a fraction of receptors +# to be constitutively associated with receptors. +# The effective rate constant for phosphorylation is assumed to capture associaton of +# Lyn with receptors and the relationship between the abundance of cell-associated antigen +# and the extent of antigen-mediated receptor crosslinking. +R(IgE!+,Yb~0,Yg~0)->R(IgE!+,Yb~P,Yg~P) kase + +# receptor dephosphorylation +# As a simplification, we consider a pseudo first-order mechanism. +# Thus, the effective rate constant for phosphorylation can be viewed +# as the Vmax/KM ratio for phosphatases. We expect phosphatase activity to be high. +R(Yb~P,Yg~P)->R(Yb~0,Yg~0) pase + +# recruitment of Syk to phosphorylated receptor +# As a simplification, we consider a one-step binding mechanism. +# We expect this simplification to be accurate even though the +# tandem SH2 domains of Syk dock to a doubly phosphorylated γ ITAM +# via a two-step mechanism because isomerization reactions are expected to be fast. +R(Yg~P)+Syk(tSH2)<->R(Yg~P!1).Syk(tSH2!1) kp_Syk,km_Syk + +# recruitment of Ship1 to phosphorylated receptor +# The SH2 domain Ship1 interacts with the phosphorylated β ITAM. +R(Yb~P)+Ship1(SH2)<->R(Yb~P!1).Ship1(SH2!1) kp_Ship1,km_Ship1 # Same binding site as Syk? -EM + +# receptor-mediated activation of hypothetical Ship1 cofactor X +# As a simplification, we consider a pseudo second-order mechanism. +# The rate constant for activation of X can be viewed as the kcat/KM ratio +# for a receptor-associated kinase responsible for activating phosphorylation of X. +R(Yb~P!?)+X(s~off)->R(Yb~P!?)+X(s~on) k_Xon # Why do we need X? In manuscript? -EM + +# decativation of X +# As a simplification, we consider a pseudo first-order mechanism. +X(s~on)->X(s~off) k_Xoff + +# activated Syk-dependent synthesis of PIP3 +# PI3K is recruited to phosphorylated LAT, a key substrate of Syk and plasma membrane protein, +# and there generates PI(3,4,5)P3 from PI(4,5)P2. +# As a simplification, we assume that PI3K activity (and PIP3 generation) is proportional to +# the abundance of receptor-recruited Syk. Thus, we assume that the rate constant for PIP3 generation +# captures the relationship between Syk recruitment/activation and +# PI3K recruitment/activation enabled by Syk-mediated phosphorylation of LAT. +# We furthermore assume that the rate constant represents that net rate of PIP3 synthesis, capturing the +# effect of PTEN, which catalyzes the conversion of PI(3,4,5)P3 to PI(4,5)P2, thereby opposing PI3K activity. +Syk(tSH2!+)->Syk(tSH2!+)+PIP3() ksynth1 + +# interaction of activated X with Ship1 +# We assume that X-Ship1 interaction requires prior receptor-mediated activation of X. +# Thus, only X with a Ship1 binding site "s" in the "on" state is allowed to associate with Ship1. +X(s~on)+Ship1(x)<->X(s~on!1).Ship1(x!1) kp_x,km_x + + +# activated Ship1-dependent clearance of PIP3 +# We assume that membrane-associated Ship1, when bound to both the receptor and a cofactor (X), +# is mainly responsible for clearance of PIP3. Ship1 catalyzes the conversion of PI(3,4,5)P3 to PI(3,4)P2. +Ship1(SH2!+,x!+)+PIP3()->Ship1(SH2!+,x!+) kdeg1 + +# basal degradation of PIP3 +# PIP3 is degraded to PI(4,5)P2 by PTEN . +# In addition, IP3, the product of PIP3 hydrolysis that promotes degranulation, is degraded via other cellular processes +# We assume that all such processes can be simplifited into a signle pseudo first-order process. +PIP3()->0 kpten + + +# Degradation of activated X +# We assume that activated X is subject to ubiquitination, followed by degradation in the proteosome +# We take this to occur via a pseudo first-order process +# X bound to Ship1 is also subject to proteosomal degradation, +# which is assumed to liberate Ship1. +X(s~on)->0 kdegX +X(s~on!1).Ship1(x!1)->Ship1(x) kdegX + +# Degranulation due to the presence of PIP3 +# PIP3 serves as a PLCγ substrate, leading to the production of IP3, stimulating store-operated calcium release followed by degranulation +# We assume this occurs as a pseudo second order process. +PIP3()+H(loc~in)->PIP3()+H(loc~out) kdegran + +end reaction rules + +end model + +begin actions + +# The command below instructs BioNetGen to derive a reaction network from the model's rules. +# The output is sent to a file that has a .net filename extension. +# The .net file can be further processed to generate the ordinary differential equations +# corresponding to the reaction network and the rate laws associated with the model's rules. +generate_network({overwrite=>1}) + +# The commands below illustrate how we simulated +# 1) an initial period of multivalent antigen-stimulated IgE receptor signaling, +# 2) an intermediate period of monovalent antigen-induced IgE receptor signaling quiescence, and +# 3) a second and final period of multivalent antigen-stimulated IgE receptor signaling. + +# For the purposes of fitting to experimental data, we repeat the series of 3 simulations for each time delay that was tested experimentally +# For each one, a .exp file was saved containing the appropriate experimental data point from Fig. 4 +# BioNetFit will be used to fit the model to the .exp files. + +# first 5-min period of multivalent antigen stimulation +setConcentration("Ag(DNP)","Ag_tot_1") +simulate({suffix=>"p1_5",method=>"ode",t_end=>5,n_steps=>50}) +saveConcentrations() #Remember these concentrations, so we can go back for each interval tested + +# treatment with monovalent antigen to rapidly induce signaling quiescence for 5, 60 or 240 min +# resetConcentrations() +setConcentration("Ag(DNP)","Ag_tot_0") +simulate({suffix=>"p2_5",method=>"ode",t_end=>5,n_steps=>50}) # period is 5 min +# simulate({suffix=>"p2_60",method=>"ode",t_end=>60,n_steps=>600}) # period is 60 min +# simulate({suffix=>"p2_240",method=>"ode",t_end=>240,n_steps=>2400}) # period is 240 min +# saveConcentrations() + +# second 5-min period of multivalent antigen stimulation +#resetConcentrations() +setConcentration("Ag(DNP)","Ag_tot_1") +# Remove all existing secreted β hex, in order to measure only what is secreted during this interval +setConcentration("H(loc~out)",0) +simulate({suffix=>"p3_5",method=>"ode",t_end=>5,n_steps=>50}) # period is 5 min + +# Repeat for a delay of 30 min +resetConcentrations() # Revert to the state after simulation 1 +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}) + + +# Repeat for a delay of 60 min +resetConcentrations() # Revert to the state after simulation 1 +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}) + +# Repeat for a delay of 120 min +resetConcentrations() # Revert to the state after simulation 1 +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}) + +# Repeat for a delay of 240 min +resetConcentrations() # Revert to the state after simulation 1 +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}) + + +#simulate({suffix=>"p3_60",method=>"ode",t_end=>60,n_steps=>600}) # period is 60 min +#simulate({suffix=>"p3_240",method=>"ode",t_end=>240,n_steps=>2400}) # period is 240 min + +# Simulation results are reported in files with .gdat filename extensions. + +end actions + + +================================================ diff --git a/PyBioNetGen/tests/LilyIgE/README.md b/PyBioNetGen/tests/LilyIgE/README.md new file mode 100644 index 00000000..0c9049b9 --- /dev/null +++ b/PyBioNetGen/tests/LilyIgE/README.md @@ -0,0 +1,21 @@ +# LilyIgE + +An example from a real application + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- LilyIgE.bngl + +## Tags + +lilyige, ag, r, syk, ship1, x, pip3, h diff --git a/PyBioNetGen/tests/LilyIgE/metadata.yaml b/PyBioNetGen/tests/LilyIgE/metadata.yaml new file mode 100644 index 00000000..d4f94854 --- /dev/null +++ b/PyBioNetGen/tests/LilyIgE/metadata.yaml @@ -0,0 +1,22 @@ +id: "LilyIgE" +name: "LilyIgE" +description: "An example from a real application" +tags: ["lilyige", "ag", "r", "syk", "ship1", "x", "pip3", "h"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/LilyIgE.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/NFmodel/NFmodel.bngl b/PyBioNetGen/tests/NFmodel/NFmodel.bngl new file mode 100644 index 00000000..2f900229 --- /dev/null +++ b/PyBioNetGen/tests/NFmodel/NFmodel.bngl @@ -0,0 +1,57 @@ +================================================ +begin model + +begin parameters + +k_factor k_factor__FREE +kps=1e-6*k_factor__FREE +km=1e-2 + +k_link 1e-5 + +Abcpc=600 +Agcpc=6000 + +end parameters + +begin molecule types + +Ag(ep,ep,ep) +Ab(Fab,Fab) + +end molecule types + +begin seed species + +Ag(ep,ep,ep) Agcpc +Ab(Fab,Fab) Abcpc + +end seed species + +begin observables + +Molecules bound_Fab Ab(Fab!+) +Molecules fullyBoundAg Ag(ep!+,ep!+,ep!+) +Molecules Bound2Ag Ag(ep!+,ep!+,ep) +Molecules Bound1Ag Ag(ep!+,ep,ep) +Molecules freeAg Ag(ep,ep,ep) +Molecules fullyBoundAb Ab(Fab!+,Fab!+) + +end observables + +begin reaction rules + +Ag(ep,ep,ep) + Ab(Fab) -> Ag(ep!1,ep,ep).Ab(Fab!1) kps +Ag(ep!1).Ab(Fab!1) -> Ag(ep) + Ab(Fab) km +Ag(ep!+,ep) + Ab(Fab) -> Ag(ep!+,ep!1).Ab(Fab!1) k_link + +end reaction rules + +begin actions + +simulate({method=>"nf", t_start=>0, t_end=>1000, n_steps=>1000, gml=>2e8}) + +end actions + + +================================================ diff --git a/PyBioNetGen/tests/NFmodel/README.md b/PyBioNetGen/tests/NFmodel/README.md new file mode 100644 index 00000000..00a6327d --- /dev/null +++ b/PyBioNetGen/tests/NFmodel/README.md @@ -0,0 +1,21 @@ +# NFmodel + +BioNetGen model: NFmodel + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: nf +- Imported from: test-case + +## Files + +- NFmodel.bngl + +## Tags + +nfmodel, ag, ab, simulate diff --git a/PyBioNetGen/tests/NFmodel/metadata.yaml b/PyBioNetGen/tests/NFmodel/metadata.yaml new file mode 100644 index 00000000..b949d741 --- /dev/null +++ b/PyBioNetGen/tests/NFmodel/metadata.yaml @@ -0,0 +1,22 @@ +id: "NFmodel" +name: "NFmodel" +description: "BioNetGen model: NFmodel" +tags: ["nfmodel", "ag", "ab", "simulate"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["nf"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/NFmodel.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/ParamsEverywhere/ParamsEverywhere.bngl b/PyBioNetGen/tests/ParamsEverywhere/ParamsEverywhere.bngl new file mode 100644 index 00000000..22eac617 --- /dev/null +++ b/PyBioNetGen/tests/ParamsEverywhere/ParamsEverywhere.bngl @@ -0,0 +1,163 @@ +================================================ +# An example from a real application +# +# filename: model.bngl +# date of last edit: 07-Jul-2017 +# authors: Chylek LA, Hlavacek WS (Los Alamos National Laboratory) +# software compatibility: RuleBender (version 2.1.0), BioNetGen (version 2.3) + +begin model + +begin parameters + + +f 1 # cells per reaction compartment + +# Avogadro constant +NA 6.02214e23 # molecules per mol + +# time unit conversion factor +T 60 # s per min + +# channel volume in microfluidic device +Vchannel 500e-9 # L per channel (500 nL) + +# number of cells per channel +Nchannel 1000 # cells per channel + +# volume of extracellular fluid +Vecf=f*(Vchannel/Nchannel) # L per cell (500 pL/cell) + +# cytosolic volume of an RBL-2H3 cell +# This estimate corresponds to the volume of a sphere with a diameter of 17.9 microns. +Vcyt f*3e-12 # L per cell (3 pL/cell) + +# multivalent antigen abundance in medium at condition 1 +Ag_conc1 10e-9 # M (10 nM) +Ag_tot_1=Ag_conc1*(NA*Vecf) # cpc + +# antigen receptor abundance +R_tot f*3e5 # copies per cell (1 nM) + + +# rate constant for pseudo first-order phosphorylation of antigen-engaged receptor +kase kase__FREE*T # /s converted to /min (60 /min); Initial guess 1 + + +H_tot 1e6 # cpc + +kdegran kase__FREE*6e4*T/(NA*Vcyt) # /M/s (3.6e6 /M/min) converted to /cpc/min (2e-6 /cpc/min); Initial guess 6e4 + + +end parameters + +begin molecule types + +# antigen (DNP-conjugated BSA) +# DNP: 2,4-dinitrophenyl groups +Ag(DNP) + +# antigen receptor (anti-DNP IgE bound to FcεRI) +# IgE: anti-DNP IgE +# Y: tyrosine residues (0, unmodified; P, phosphorylated) +# in the β and γ-chain ITAMs of FcεRI +R(IgE,Yb~0~P) + + +# β-hexosaminidase +# loc: location (in, inside granules; out, secreted/outside cell) +H(loc~in~out) + +end molecule types + +begin seed species + +# initial conditions + +# initial abundance of free antigen (in medium) per cell +Ag(DNP) Ag_tot_1__FREE + +# initial abundance of free antigen receptor +R(IgE,Yb~0) R_tot + +# initial abundance of β-hexosaminidase (stored in cellular granules) +H(loc~in) H_tot + +end seed species + +begin observables + +# simulation outputs + +Molecules Ag_total Ag() # This quantity may accumulate because free Ag abundance is held fixed. +Molecules Ag_free Ag(DNP) # This quantity is held constant, except for adjustments in the actions block. +Molecules R_bound R(IgE!+) # number of antigen-bound receptors per cell +Molecules R_free R(IgE) # number of antigen-free receptors per cell +Molecules RP R(Yb~P!?) # number of phosphorylated receptors per cell +Molecules R0 R(Yb~0) # number of unphosphorylated receptors per cell +Molecules degranulation H(loc~out) # abundance of secreted β-hexominadase (surrogate for secreted mediators of inflammation) + +end observables + +begin reaction rules + +# ligand-receptor binding +# As a simplification, we consider a one-step binding mechanism. +# Thus, the rate constants are effective parameters that reflect +# capture and release of (multivalent) antigen as well as the effects +# of antigen-mediated receptor aggregation on the residence time of antigen +# on the cell surface. Recall that the antigen receptor is a long-lived 1:1 complex +# of antigen-specific IgE and FcεRI, the high-affinity Fc receptor for IgE. +Ag(DNP)+R(IgE)<->Ag(DNP!1).R(IgE!1) kon__FREE,koff__FREE + +# ligand-dependent receptor phosphorylation +# We assume that bound receptors are competent for (Lyn-mediated) phosphorylation +# of the tyrosines in β and γ ITAMs. We expect a fraction of receptors +# to be constitutively associated with receptors. +# The effective rate constant for phosphorylation is assumed to capture associaton of +# Lyn with receptors and the relationship between the abundance of cell-associated antigen +# and the extent of antigen-mediated receptor crosslinking. +R(IgE!+,Yb~0)->R(IgE!+,Yb~P) kase + +# receptor dephosphorylation +# As a simplification, we consider a pseudo first-order mechanism. +# Thus, the effective rate constant for phosphorylation can be viewed +# as the Vmax/KM ratio for phosphatases. We expect phosphatase activity to be high. +R(Yb~P)->R(Yb~0) pase__FREE + + +# Degranulation due to the presence of phosphorylated receptor +# PIP3 serves as a PLCγ substrate, leading to the production of IP3, stimulating store-operated calcium release followed by degranulation +# We assume this occurs as a pseudo second order process. +R(Yb~P)+H(loc~in)->R(Yb~P)+H(loc~out) kdegran + +end reaction rules + +end model + +begin actions + +# The command below instructs BioNetGen to derive a reaction network from the model's rules. +# The output is sent to a file that has a .net filename extension. +# The .net file can be further processed to generate the ordinary differential equations +# corresponding to the reaction network and the rate laws associated with the model's rules. +generate_network({overwrite=>1}) + +# The commands below illustrate how we simulated +# 1) an initial period of multivalent antigen-stimulated IgE receptor signaling, +# 2) an intermediate period of monovalent antigen-induced IgE receptor signaling quiescence, and +# 3) a second and final period of multivalent antigen-stimulated IgE receptor signaling. + +# For the purposes of fitting to experimental data, we repeat the series of 3 simulations for each time delay that was tested experimentally +# For each one, a .exp file was saved containing the appropriate experimental data point from Fig. 4 +# BioNetFit will be used to fit the model to the .exp files. + +# first 5-min period of multivalent antigen stimulation +setConcentration("Ag(DNP)","Ag_tot_1__FREE") +simulate({suffix=>"p1_5",method=>"ode",t_end=>t_end__FREE,n_steps=>50}) + + +end actions + + +================================================ diff --git a/PyBioNetGen/tests/ParamsEverywhere/README.md b/PyBioNetGen/tests/ParamsEverywhere/README.md new file mode 100644 index 00000000..3f11df36 --- /dev/null +++ b/PyBioNetGen/tests/ParamsEverywhere/README.md @@ -0,0 +1,21 @@ +# ParamsEverywhere + +An example from a real application + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- ParamsEverywhere.bngl + +## Tags + +paramseverywhere, ag, r, h diff --git a/PyBioNetGen/tests/ParamsEverywhere/metadata.yaml b/PyBioNetGen/tests/ParamsEverywhere/metadata.yaml new file mode 100644 index 00000000..b6ba3843 --- /dev/null +++ b/PyBioNetGen/tests/ParamsEverywhere/metadata.yaml @@ -0,0 +1,22 @@ +id: "ParamsEverywhere" +name: "ParamsEverywhere" +description: "An example from a real application" +tags: ["paramseverywhere", "ag", "r", "h"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/ParamsEverywhere.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/Simple/README.md b/PyBioNetGen/tests/Simple/README.md new file mode 100644 index 00000000..2c0f7d38 --- /dev/null +++ b/PyBioNetGen/tests/Simple/README.md @@ -0,0 +1,21 @@ +# Simple + +An example from a real application + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- Simple.bngl + +## Tags + +simple, setoption, ag, r, h diff --git a/PyBioNetGen/tests/Simple/Simple.bngl b/PyBioNetGen/tests/Simple/Simple.bngl new file mode 100644 index 00000000..181bc4b5 --- /dev/null +++ b/PyBioNetGen/tests/Simple/Simple.bngl @@ -0,0 +1,171 @@ +================================================ +# An example from a real application +# +# filename: model.bngl +# date of last edit: 07-Jul-2017 +# authors: Chylek LA, Hlavacek WS (Los Alamos National Laboratory) +# software compatibility: RuleBender (version 2.1.0), BioNetGen (version 2.3) + +setOption("SpeciesLabel", "HNauty") + +begin model + +begin parameters + +f 1 # cells per reaction compartment + +# Avogadro constant +NA 6.02214e23 # molecules per mol + +# time unit conversion factor +T 60 # s per min + +# channel volume in microfluidic device +Vchannel 500e-9 # L per channel (500 nL) + +# number of cells per channel +Nchannel 1000 # cells per channel + +# volume of extracellular fluid +Vecf=f*(Vchannel/Nchannel) # L per cell (500 pL/cell) + +# cytosolic volume of an RBL-2H3 cell +# This estimate corresponds to the volume of a sphere with a diameter of 17.9 microns. +Vcyt f*3e-12 # L per cell (3 pL/cell) + +# multivalent antigen abundance in medium at condition 1 +Ag_conc1 10e-9 # M (10 nM) +Ag_tot_1=Ag_conc1*(NA*Vecf) # cpc + +# antigen receptor abundance +R_tot f*3e5 # copies per cell (1 nM) + +# rate constant for antigen capture +kon 1e7*T/(NA*Vecf) # /M/s (1.8e8 /M/min) converted to /cpc/min; Initial guess 3e6 + +# rate constant for antigen release +koff koff__FREE*T # /s converted to /min (0.6 /min); Initial guess 0.01 + +# rate constant for pseudo first-order phosphorylation of antigen-engaged receptor +kase kase__FREE*T # /s converted to /min (60 /min); Initial guess 1 + +# rate constant for pseuedo first-order dephosphorylation of phosphorylated receptor +pase pase__FREE*T # /s converted to /min (120 /min); Initial guess 2 + +H_tot 1e6 # cpc + +kdegran 6e4*T/(NA*Vcyt) # /M/s (3.6e6 /M/min) converted to /cpc/min (2e-6 /cpc/min); Initial guess 6e4 + + +end parameters + +begin molecule types + +# antigen (DNP-conjugated BSA) +# DNP: 2,4-dinitrophenyl groups +Ag(DNP) + +# antigen receptor (anti-DNP IgE bound to FcεRI) +# IgE: anti-DNP IgE +# Y: tyrosine residues (0, unmodified; P, phosphorylated) +# in the β and γ-chain ITAMs of FcεRI +R(IgE,Yb~0~P) + + +# β-hexosaminidase +# loc: location (in, inside granules; out, secreted/outside cell) +H(loc~in~out) + +end molecule types + +begin seed species + +# initial conditions + +# initial abundance of free antigen (in medium) per cell +Ag(DNP) Ag_tot_1 + +# initial abundance of free antigen receptor +R(IgE,Yb~0) R_tot + +# initial abundance of β-hexosaminidase (stored in cellular granules) +H(loc~in) H_tot + +end seed species + +begin observables + +# simulation outputs + +Molecules Ag_total Ag() # This quantity may accumulate because free Ag abundance is held fixed. +Molecules Ag_free Ag(DNP) # This quantity is held constant, except for adjustments in the actions block. +Molecules R_bound R(IgE!+) # number of antigen-bound receptors per cell +Molecules R_free R(IgE) # number of antigen-free receptors per cell +Molecules RP R(Yb~P!?) # number of phosphorylated receptors per cell +Molecules R0 R(Yb~0) # number of unphosphorylated receptors per cell +Molecules degranulation H(loc~out) # abundance of secreted β-hexominadase (surrogate for secreted mediators of inflammation) + +end observables + +begin reaction rules + +# ligand-receptor binding +# As a simplification, we consider a one-step binding mechanism. +# Thus, the rate constants are effective parameters that reflect +# capture and release of (multivalent) antigen as well as the effects +# of antigen-mediated receptor aggregation on the residence time of antigen +# on the cell surface. Recall that the antigen receptor is a long-lived 1:1 complex +# of antigen-specific IgE and FcεRI, the high-affinity Fc receptor for IgE. +Ag(DNP)+R(IgE)<->Ag(DNP!1).R(IgE!1) kon,koff + +# ligand-dependent receptor phosphorylation +# We assume that bound receptors are competent for (Lyn-mediated) phosphorylation +# of the tyrosines in β and γ ITAMs. We expect a fraction of receptors +# to be constitutively associated with receptors. +# The effective rate constant for phosphorylation is assumed to capture associaton of +# Lyn with receptors and the relationship between the abundance of cell-associated antigen +# and the extent of antigen-mediated receptor crosslinking. +R(IgE!+,Yb~0)->R(IgE!+,Yb~P) kase + +# receptor dephosphorylation +# As a simplification, we consider a pseudo first-order mechanism. +# Thus, the effective rate constant for phosphorylation can be viewed +# as the Vmax/KM ratio for phosphatases. We expect phosphatase activity to be high. +R(Yb~P)->R(Yb~0) pase + + +# Degranulation due to the presence of phosphorylated receptor +# PIP3 serves as a PLCγ substrate, leading to the production of IP3, stimulating store-operated calcium release followed by degranulation +# We assume this occurs as a pseudo second order process. +R(Yb~P)+H(loc~in)->R(Yb~P)+H(loc~out) kdegran + +end reaction rules + +end model + +begin actions + +# The command below instructs BioNetGen to derive a reaction network from the model's rules. +# The output is sent to a file that has a .net filename extension. +# The .net file can be further processed to generate the ordinary differential equations +# corresponding to the reaction network and the rate laws associated with the model's rules. +generate_network({overwrite=>1}) + +# The commands below illustrate how we simulated +# 1) an initial period of multivalent antigen-stimulated IgE receptor signaling, +# 2) an intermediate period of monovalent antigen-induced IgE receptor signaling quiescence, and +# 3) a second and final period of multivalent antigen-stimulated IgE receptor signaling. + +# For the purposes of fitting to experimental data, we repeat the series of 3 simulations for each time delay that was tested experimentally +# For each one, a .exp file was saved containing the appropriate experimental data point from Fig. 4 +# BioNetFit will be used to fit the model to the .exp files. + +# first 5-min period of multivalent antigen stimulation +setConcentration("Ag(DNP)","Ag_tot_1") +simulate({suffix=>"p1_5",method=>"ode",t_end=>5,n_steps=>50}) + + +end actions + + +================================================ diff --git a/PyBioNetGen/tests/Simple/metadata.yaml b/PyBioNetGen/tests/Simple/metadata.yaml new file mode 100644 index 00000000..4d4a9a11 --- /dev/null +++ b/PyBioNetGen/tests/Simple/metadata.yaml @@ -0,0 +1,22 @@ +id: "Simple" +name: "Simple" +description: "An example from a real application" +tags: ["simple", "setoption", "ag", "r", "h"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/Simple.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/SimpleAddActions/README.md b/PyBioNetGen/tests/SimpleAddActions/README.md new file mode 100644 index 00000000..32022aac --- /dev/null +++ b/PyBioNetGen/tests/SimpleAddActions/README.md @@ -0,0 +1,21 @@ +# Simple AddActions + +An example from a real application + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- Simple_AddActions.bngl + +## Tags + +simple, addactions, setoption, ag, r, h diff --git a/PyBioNetGen/tests/SimpleAddActions/Simple_AddActions.bngl b/PyBioNetGen/tests/SimpleAddActions/Simple_AddActions.bngl new file mode 100644 index 00000000..633fc519 --- /dev/null +++ b/PyBioNetGen/tests/SimpleAddActions/Simple_AddActions.bngl @@ -0,0 +1,180 @@ +================================================ +# An example from a real application +# +# filename: model.bngl +# date of last edit: 07-Jul-2017 +# authors: Chylek LA, Hlavacek WS (Los Alamos National Laboratory) +# software compatibility: RuleBender (version 2.1.0), BioNetGen (version 2.3) + +setOption("SpeciesLabel", "HNauty") + +begin model + +begin parameters +kase__FREE 3.8 +koff__FREE 0.0044 +pase__FREE 0.16 + +f 1 # cells per reaction compartment + +# Avogadro constant +NA 6.02214e23 # molecules per mol + +# time unit conversion factor +T 60 # s per min + +# channel volume in microfluidic device +Vchannel 500e-9 # L per channel (500 nL) + +# number of cells per channel +Nchannel 1000 # cells per channel + +# volume of extracellular fluid +Vecf=f*(Vchannel/Nchannel) # L per cell (500 pL/cell) + +# cytosolic volume of an RBL-2H3 cell +# This estimate corresponds to the volume of a sphere with a diameter of 17.9 microns. +Vcyt f*3e-12 # L per cell (3 pL/cell) + +# multivalent antigen abundance in medium at condition 1 +Ag_conc1 10e-9 # M (10 nM) +Ag_tot_1=Ag_conc1*(NA*Vecf) # cpc + +# antigen receptor abundance +R_tot f*3e5 # copies per cell (1 nM) + +# rate constant for antigen capture +kon 1e7*T/(NA*Vecf) # /M/s (1.8e8 /M/min) converted to /cpc/min; Initial guess 3e6 + +# rate constant for antigen release +koff koff__FREE*T # /s converted to /min (0.6 /min); Initial guess 0.01 + +# rate constant for pseudo first-order phosphorylation of antigen-engaged receptor +kase kase__FREE*T # /s converted to /min (60 /min); Initial guess 1 + +# rate constant for pseuedo first-order dephosphorylation of phosphorylated receptor +pase pase__FREE*T # /s converted to /min (120 /min); Initial guess 2 + +H_tot 1e6 # cpc + +kdegran 6e4*T/(NA*Vcyt) # /M/s (3.6e6 /M/min) converted to /cpc/min (2e-6 /cpc/min); Initial guess 6e4 + + +end parameters + +begin molecule types + +# antigen (DNP-conjugated BSA) +# DNP: 2,4-dinitrophenyl groups +Ag(DNP) + +# antigen receptor (anti-DNP IgE bound to FcεRI) +# IgE: anti-DNP IgE +# Y: tyrosine residues (0, unmodified; P, phosphorylated) +# in the β and γ-chain ITAMs of FcεRI +R(IgE,Yb~0~P) + + +# β-hexosaminidase +# loc: location (in, inside granules; out, secreted/outside cell) +H(loc~in~out) + +end molecule types + +begin seed species + +# initial conditions + +# initial abundance of free antigen (in medium) per cell +Ag(DNP) Ag_tot_1 + +# initial abundance of free antigen receptor +R(IgE,Yb~0) R_tot + +# initial abundance of β-hexosaminidase (stored in cellular granules) +H(loc~in) H_tot + +end seed species + +begin observables + +# simulation outputs + +Molecules Ag_total Ag() # This quantity may accumulate because free Ag abundance is held fixed. +Molecules Ag_free Ag(DNP) # This quantity is held constant, except for adjustments in the actions block. +Molecules R_bound R(IgE!+) # number of antigen-bound receptors per cell +Molecules R_free R(IgE) # number of antigen-free receptors per cell +Molecules RP R(Yb~P!?) # number of phosphorylated receptors per cell +Molecules R0 R(Yb~0) # number of unphosphorylated receptors per cell +Molecules degranulation H(loc~out) # abundance of secreted β-hexominadase (surrogate for secreted mediators of inflammation) + +end observables + +begin reaction rules + +# ligand-receptor binding +# As a simplification, we consider a one-step binding mechanism. +# Thus, the rate constants are effective parameters that reflect +# capture and release of (multivalent) antigen as well as the effects +# of antigen-mediated receptor aggregation on the residence time of antigen +# on the cell surface. Recall that the antigen receptor is a long-lived 1:1 complex +# of antigen-specific IgE and FcεRI, the high-affinity Fc receptor for IgE. +Ag(DNP)+R(IgE)<->Ag(DNP!1).R(IgE!1) kon,koff + +# ligand-dependent receptor phosphorylation +# We assume that bound receptors are competent for (Lyn-mediated) phosphorylation +# of the tyrosines in β and γ ITAMs. We expect a fraction of receptors +# to be constitutively associated with receptors. +# The effective rate constant for phosphorylation is assumed to capture associaton of +# Lyn with receptors and the relationship between the abundance of cell-associated antigen +# and the extent of antigen-mediated receptor crosslinking. +R(IgE!+,Yb~0)->R(IgE!+,Yb~P) kase + +# receptor dephosphorylation +# As a simplification, we consider a pseudo first-order mechanism. +# Thus, the effective rate constant for phosphorylation can be viewed +# as the Vmax/KM ratio for phosphatases. We expect phosphatase activity to be high. +R(Yb~P)->R(Yb~0) pase + + +# Degranulation due to the presence of phosphorylated receptor +# PIP3 serves as a PLCγ substrate, leading to the production of IP3, stimulating store-operated calcium release followed by degranulation +# We assume this occurs as a pseudo second order process. +R(Yb~P)+H(loc~in)->R(Yb~P)+H(loc~out) kdegran + +end reaction rules + +end model + +begin actions + +generate_network({overwrite=>1}) + +# The command below instructs BioNetGen to derive a reaction network from the model's rules. +# The output is sent to a file that has a .net filename extension. +# The .net file can be further processed to generate the ordinary differential equations +# corresponding to the reaction network and the rate laws associated with the model's rules. + +# The commands below illustrate how we simulated +# 1) an initial period of multivalent antigen-stimulated IgE receptor signaling, +# 2) an intermediate period of monovalent antigen-induced IgE receptor signaling quiescence, and +# 3) a second and final period of multivalent antigen-stimulated IgE receptor signaling. + +# For the purposes of fitting to experimental data, we repeat the series of 3 simulations for each time delay that was tested experimentally +# For each one, a .exp file was saved containing the appropriate experimental data point from Fig. 4 +# BioNetFit will be used to fit the model to the .exp files. + +# first 5-min period of multivalent antigen stimulation +setConcentration("Ag(DNP)","Ag_tot_1") +simulate({suffix=>"p1_5",method=>"ode",t_end=>5,n_steps=>50}) + + +resetConcentrations() +simulate({method=>"ode",t_start=>0,t_end=>50.0,n_steps=>5,suffix=>"s2",print_functions=>1}) +resetConcentrations() +parameter_scan({parameter=>"kon",method=>"ode",t_start=>0,t_end=>5.0,par_min=>10.0,par_max=>60.0,n_scan_pts=>6,log_scale=>0,suffix=>"s3",print_functions=>1}) +end actions + + + +================================================ diff --git a/PyBioNetGen/tests/SimpleAddActions/metadata.yaml b/PyBioNetGen/tests/SimpleAddActions/metadata.yaml new file mode 100644 index 00000000..3dd89218 --- /dev/null +++ b/PyBioNetGen/tests/SimpleAddActions/metadata.yaml @@ -0,0 +1,22 @@ +id: "Simple_AddActions" +name: "Simple AddActions" +description: "An example from a real application" +tags: ["simple", "addactions", "setoption", "ag", "r", "h"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/Simple_AddActions.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/PyBioNetGen/tests/SimpleAnswer/README.md b/PyBioNetGen/tests/SimpleAnswer/README.md new file mode 100644 index 00000000..70697c79 --- /dev/null +++ b/PyBioNetGen/tests/SimpleAnswer/README.md @@ -0,0 +1,21 @@ +# Simple Answer + +An example from a real application + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- Simple_Answer.bngl + +## Tags + +simple, answer, setoption, ag, r, h diff --git a/PyBioNetGen/tests/SimpleAnswer/Simple_Answer.bngl b/PyBioNetGen/tests/SimpleAnswer/Simple_Answer.bngl new file mode 100644 index 00000000..044ebbf7 --- /dev/null +++ b/PyBioNetGen/tests/SimpleAnswer/Simple_Answer.bngl @@ -0,0 +1,176 @@ +================================================ +# An example from a real application +# +# filename: model.bngl +# date of last edit: 07-Jul-2017 +# authors: Chylek LA, Hlavacek WS (Los Alamos National Laboratory) +# software compatibility: RuleBender (version 2.1.0), BioNetGen (version 2.3) + +setOption("SpeciesLabel", "HNauty") + +begin model + +begin parameters +kase__FREE 3.8 +koff__FREE 0.0044 +pase__FREE 0.16 + +f 1 # cells per reaction compartment + +# Avogadro constant +NA 6.02214e23 # molecules per mol + +# time unit conversion factor +T 60 # s per min + +# channel volume in microfluidic device +Vchannel 500e-9 # L per channel (500 nL) + +# number of cells per channel +Nchannel 1000 # cells per channel + +# volume of extracellular fluid +Vecf=f*(Vchannel/Nchannel) # L per cell (500 pL/cell) + +# cytosolic volume of an RBL-2H3 cell +# This estimate corresponds to the volume of a sphere with a diameter of 17.9 microns. +Vcyt f*3e-12 # L per cell (3 pL/cell) + +# multivalent antigen abundance in medium at condition 1 +Ag_conc1 10e-9 # M (10 nM) +Ag_tot_1=Ag_conc1*(NA*Vecf) # cpc + +# antigen receptor abundance +R_tot f*3e5 # copies per cell (1 nM) + +# rate constant for antigen capture +kon 1e7*T/(NA*Vecf) # /M/s (1.8e8 /M/min) converted to /cpc/min; Initial guess 3e6 + +# rate constant for antigen release +koff koff__FREE*T # /s converted to /min (0.6 /min); Initial guess 0.01 + +# rate constant for pseudo first-order phosphorylation of antigen-engaged receptor +kase kase__FREE*T # /s converted to /min (60 /min); Initial guess 1 + +# rate constant for pseuedo first-order dephosphorylation of phosphorylated receptor +pase pase__FREE*T # /s converted to /min (120 /min); Initial guess 2 + +H_tot 1e6 # cpc + +kdegran 6e4*T/(NA*Vcyt) # /M/s (3.6e6 /M/min) converted to /cpc/min (2e-6 /cpc/min); Initial guess 6e4 + + +end parameters + +begin molecule types + +# antigen (DNP-conjugated BSA) +# DNP: 2,4-dinitrophenyl groups +Ag(DNP) + +# antigen receptor (anti-DNP IgE bound to FcεRI) +# IgE: anti-DNP IgE +# Y: tyrosine residues (0, unmodified; P, phosphorylated) +# in the β and γ-chain ITAMs of FcεRI +R(IgE,Yb~0~P) + + +# β-hexosaminidase +# loc: location (in, inside granules; out, secreted/outside cell) +H(loc~in~out) + +end molecule types + +begin seed species + +# initial conditions + +# initial abundance of free antigen (in medium) per cell +Ag(DNP) Ag_tot_1 + +# initial abundance of free antigen receptor +R(IgE,Yb~0) R_tot + +# initial abundance of β-hexosaminidase (stored in cellular granules) +H(loc~in) H_tot + +end seed species + +begin observables + +# simulation outputs + +Molecules Ag_total Ag() # This quantity may accumulate because free Ag abundance is held fixed. +Molecules Ag_free Ag(DNP) # This quantity is held constant, except for adjustments in the actions block. +Molecules R_bound R(IgE!+) # number of antigen-bound receptors per cell +Molecules R_free R(IgE) # number of antigen-free receptors per cell +Molecules RP R(Yb~P!?) # number of phosphorylated receptors per cell +Molecules R0 R(Yb~0) # number of unphosphorylated receptors per cell +Molecules degranulation H(loc~out) # abundance of secreted β-hexominadase (surrogate for secreted mediators of inflammation) + +end observables + +begin reaction rules + +# ligand-receptor binding +# As a simplification, we consider a one-step binding mechanism. +# Thus, the rate constants are effective parameters that reflect +# capture and release of (multivalent) antigen as well as the effects +# of antigen-mediated receptor aggregation on the residence time of antigen +# on the cell surface. Recall that the antigen receptor is a long-lived 1:1 complex +# of antigen-specific IgE and FcεRI, the high-affinity Fc receptor for IgE. +Ag(DNP)+R(IgE)<->Ag(DNP!1).R(IgE!1) kon,koff + +# ligand-dependent receptor phosphorylation +# We assume that bound receptors are competent for (Lyn-mediated) phosphorylation +# of the tyrosines in β and γ ITAMs. We expect a fraction of receptors +# to be constitutively associated with receptors. +# The effective rate constant for phosphorylation is assumed to capture associaton of +# Lyn with receptors and the relationship between the abundance of cell-associated antigen +# and the extent of antigen-mediated receptor crosslinking. +R(IgE!+,Yb~0)->R(IgE!+,Yb~P) kase + +# receptor dephosphorylation +# As a simplification, we consider a pseudo first-order mechanism. +# Thus, the effective rate constant for phosphorylation can be viewed +# as the Vmax/KM ratio for phosphatases. We expect phosphatase activity to be high. +R(Yb~P)->R(Yb~0) pase + + +# Degranulation due to the presence of phosphorylated receptor +# PIP3 serves as a PLCγ substrate, leading to the production of IP3, stimulating store-operated calcium release followed by degranulation +# We assume this occurs as a pseudo second order process. +R(Yb~P)+H(loc~in)->R(Yb~P)+H(loc~out) kdegran + +end reaction rules + +end model + +begin actions + +generate_network({overwrite=>1}) + +# The command below instructs BioNetGen to derive a reaction network from the model's rules. +# The output is sent to a file that has a .net filename extension. +# The .net file can be further processed to generate the ordinary differential equations +# corresponding to the reaction network and the rate laws associated with the model's rules. + +# The commands below illustrate how we simulated +# 1) an initial period of multivalent antigen-stimulated IgE receptor signaling, +# 2) an intermediate period of monovalent antigen-induced IgE receptor signaling quiescence, and +# 3) a second and final period of multivalent antigen-stimulated IgE receptor signaling. + +# For the purposes of fitting to experimental data, we repeat the series of 3 simulations for each time delay that was tested experimentally +# For each one, a .exp file was saved containing the appropriate experimental data point from Fig. 4 +# BioNetFit will be used to fit the model to the .exp files. + +# first 5-min period of multivalent antigen stimulation +setConcentration("Ag(DNP)","Ag_tot_1") +simulate({suffix=>"p1_5",method=>"ode",t_end=>5,n_steps=>50}) + + +end actions + + + +================================================ diff --git a/PyBioNetGen/tests/SimpleAnswer/metadata.yaml b/PyBioNetGen/tests/SimpleAnswer/metadata.yaml new file mode 100644 index 00000000..1412c103 --- /dev/null +++ b/PyBioNetGen/tests/SimpleAnswer/metadata.yaml @@ -0,0 +1,22 @@ +id: "Simple_Answer" +name: "Simple Answer" +description: "An example from a real application" +tags: ["simple", "answer", "setoption", "ag", "r", "h"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/Simple_Answer.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/PyBioNetGen/tests/SimpleGenOnly/README.md b/PyBioNetGen/tests/SimpleGenOnly/README.md new file mode 100644 index 00000000..66fbf19a --- /dev/null +++ b/PyBioNetGen/tests/SimpleGenOnly/README.md @@ -0,0 +1,21 @@ +# Simple GenOnly + +An example from a real application + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- Simple_GenOnly.bngl + +## Tags + +simple, genonly, setoption, ag, r, h diff --git a/PyBioNetGen/tests/SimpleGenOnly/Simple_GenOnly.bngl b/PyBioNetGen/tests/SimpleGenOnly/Simple_GenOnly.bngl new file mode 100644 index 00000000..cec930fd --- /dev/null +++ b/PyBioNetGen/tests/SimpleGenOnly/Simple_GenOnly.bngl @@ -0,0 +1,157 @@ +================================================ +# An example from a real application +# +# filename: model.bngl +# date of last edit: 07-Jul-2017 +# authors: Chylek LA, Hlavacek WS (Los Alamos National Laboratory) +# software compatibility: RuleBender (version 2.1.0), BioNetGen (version 2.3) + +setOption("SpeciesLabel", "HNauty") + +begin model + +begin parameters +kase__FREE 3.8 +koff__FREE 0.0044 +pase__FREE 0.16 + +f 1 # cells per reaction compartment + +# Avogadro constant +NA 6.02214e23 # molecules per mol + +# time unit conversion factor +T 60 # s per min + +# channel volume in microfluidic device +Vchannel 500e-9 # L per channel (500 nL) + +# number of cells per channel +Nchannel 1000 # cells per channel + +# volume of extracellular fluid +Vecf=f*(Vchannel/Nchannel) # L per cell (500 pL/cell) + +# cytosolic volume of an RBL-2H3 cell +# This estimate corresponds to the volume of a sphere with a diameter of 17.9 microns. +Vcyt f*3e-12 # L per cell (3 pL/cell) + +# multivalent antigen abundance in medium at condition 1 +Ag_conc1 10e-9 # M (10 nM) +Ag_tot_1=Ag_conc1*(NA*Vecf) # cpc + +# antigen receptor abundance +R_tot f*3e5 # copies per cell (1 nM) + +# rate constant for antigen capture +kon 1e7*T/(NA*Vecf) # /M/s (1.8e8 /M/min) converted to /cpc/min; Initial guess 3e6 + +# rate constant for antigen release +koff koff__FREE*T # /s converted to /min (0.6 /min); Initial guess 0.01 + +# rate constant for pseudo first-order phosphorylation of antigen-engaged receptor +kase kase__FREE*T # /s converted to /min (60 /min); Initial guess 1 + +# rate constant for pseuedo first-order dephosphorylation of phosphorylated receptor +pase pase__FREE*T # /s converted to /min (120 /min); Initial guess 2 + +H_tot 1e6 # cpc + +kdegran 6e4*T/(NA*Vcyt) # /M/s (3.6e6 /M/min) converted to /cpc/min (2e-6 /cpc/min); Initial guess 6e4 + + +end parameters + +begin molecule types + +# antigen (DNP-conjugated BSA) +# DNP: 2,4-dinitrophenyl groups +Ag(DNP) + +# antigen receptor (anti-DNP IgE bound to FcεRI) +# IgE: anti-DNP IgE +# Y: tyrosine residues (0, unmodified; P, phosphorylated) +# in the β and γ-chain ITAMs of FcεRI +R(IgE,Yb~0~P) + + +# β-hexosaminidase +# loc: location (in, inside granules; out, secreted/outside cell) +H(loc~in~out) + +end molecule types + +begin seed species + +# initial conditions + +# initial abundance of free antigen (in medium) per cell +Ag(DNP) Ag_tot_1 + +# initial abundance of free antigen receptor +R(IgE,Yb~0) R_tot + +# initial abundance of β-hexosaminidase (stored in cellular granules) +H(loc~in) H_tot + +end seed species + +begin observables + +# simulation outputs + +Molecules Ag_total Ag() # This quantity may accumulate because free Ag abundance is held fixed. +Molecules Ag_free Ag(DNP) # This quantity is held constant, except for adjustments in the actions block. +Molecules R_bound R(IgE!+) # number of antigen-bound receptors per cell +Molecules R_free R(IgE) # number of antigen-free receptors per cell +Molecules RP R(Yb~P!?) # number of phosphorylated receptors per cell +Molecules R0 R(Yb~0) # number of unphosphorylated receptors per cell +Molecules degranulation H(loc~out) # abundance of secreted β-hexominadase (surrogate for secreted mediators of inflammation) + +end observables + +begin reaction rules + +# ligand-receptor binding +# As a simplification, we consider a one-step binding mechanism. +# Thus, the rate constants are effective parameters that reflect +# capture and release of (multivalent) antigen as well as the effects +# of antigen-mediated receptor aggregation on the residence time of antigen +# on the cell surface. Recall that the antigen receptor is a long-lived 1:1 complex +# of antigen-specific IgE and FcεRI, the high-affinity Fc receptor for IgE. +Ag(DNP)+R(IgE)<->Ag(DNP!1).R(IgE!1) kon,koff + +# ligand-dependent receptor phosphorylation +# We assume that bound receptors are competent for (Lyn-mediated) phosphorylation +# of the tyrosines in β and γ ITAMs. We expect a fraction of receptors +# to be constitutively associated with receptors. +# The effective rate constant for phosphorylation is assumed to capture associaton of +# Lyn with receptors and the relationship between the abundance of cell-associated antigen +# and the extent of antigen-mediated receptor crosslinking. +R(IgE!+,Yb~0)->R(IgE!+,Yb~P) kase + +# receptor dephosphorylation +# As a simplification, we consider a pseudo first-order mechanism. +# Thus, the effective rate constant for phosphorylation can be viewed +# as the Vmax/KM ratio for phosphatases. We expect phosphatase activity to be high. +R(Yb~P)->R(Yb~0) pase + + +# Degranulation due to the presence of phosphorylated receptor +# PIP3 serves as a PLCγ substrate, leading to the production of IP3, stimulating store-operated calcium release followed by degranulation +# We assume this occurs as a pseudo second order process. +R(Yb~P)+H(loc~in)->R(Yb~P)+H(loc~out) kdegran + +end reaction rules + +end model + +begin actions + +generate_network({overwrite=>1}) + +end actions + + + +================================================ diff --git a/PyBioNetGen/tests/SimpleGenOnly/metadata.yaml b/PyBioNetGen/tests/SimpleGenOnly/metadata.yaml new file mode 100644 index 00000000..a02cc1f6 --- /dev/null +++ b/PyBioNetGen/tests/SimpleGenOnly/metadata.yaml @@ -0,0 +1,22 @@ +id: "Simple_GenOnly" +name: "Simple GenOnly" +description: "An example from a real application" +tags: ["simple", "genonly", "setoption", "ag", "r", "h"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/Simple_GenOnly.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/Simplenogen/README.md b/PyBioNetGen/tests/Simplenogen/README.md new file mode 100644 index 00000000..3d04be61 --- /dev/null +++ b/PyBioNetGen/tests/Simplenogen/README.md @@ -0,0 +1,21 @@ +# Simple nogen + +An example from a real application + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- Simple_nogen.bngl + +## Tags + +simple, nogen, ag, r, h diff --git a/PyBioNetGen/tests/Simplenogen/Simple_nogen.bngl b/PyBioNetGen/tests/Simplenogen/Simple_nogen.bngl new file mode 100644 index 00000000..fcd5adbb --- /dev/null +++ b/PyBioNetGen/tests/Simplenogen/Simple_nogen.bngl @@ -0,0 +1,168 @@ +================================================ +# An example from a real application +# +# filename: model.bngl +# date of last edit: 07-Jul-2017 +# authors: Chylek LA, Hlavacek WS (Los Alamos National Laboratory) +# software compatibility: RuleBender (version 2.1.0), BioNetGen (version 2.3) + +begin model + +begin parameters + +f 1 # cells per reaction compartment + +# Avogadro constant +NA 6.02214e23 # molecules per mol + +# time unit conversion factor +T 60 # s per min + +# channel volume in microfluidic device +Vchannel 500e-9 # L per channel (500 nL) + +# number of cells per channel +Nchannel 1000 # cells per channel + +# volume of extracellular fluid +Vecf=f*(Vchannel/Nchannel) # L per cell (500 pL/cell) + +# cytosolic volume of an RBL-2H3 cell +# This estimate corresponds to the volume of a sphere with a diameter of 17.9 microns. +Vcyt f*3e-12 # L per cell (3 pL/cell) + +# multivalent antigen abundance in medium at condition 1 +Ag_conc1 10e-9 # M (10 nM) +Ag_tot_1=Ag_conc1*(NA*Vecf) # cpc + +# antigen receptor abundance +R_tot f*3e5 # copies per cell (1 nM) + +# rate constant for antigen capture +kon 1e7*T/(NA*Vecf) # /M/s (1.8e8 /M/min) converted to /cpc/min; Initial guess 3e6 + +# rate constant for antigen release +koff koff__FREE*T # /s converted to /min (0.6 /min); Initial guess 0.01 + +# rate constant for pseudo first-order phosphorylation of antigen-engaged receptor +kase kase__FREE*T # /s converted to /min (60 /min); Initial guess 1 + +# rate constant for pseuedo first-order dephosphorylation of phosphorylated receptor +pase pase__FREE*T # /s converted to /min (120 /min); Initial guess 2 + +H_tot 1e6 # cpc + +kdegran 6e4*T/(NA*Vcyt) # /M/s (3.6e6 /M/min) converted to /cpc/min (2e-6 /cpc/min); Initial guess 6e4 + + +end parameters + +begin molecule types + +# antigen (DNP-conjugated BSA) +# DNP: 2,4-dinitrophenyl groups +Ag(DNP) + +# antigen receptor (anti-DNP IgE bound to FcεRI) +# IgE: anti-DNP IgE +# Y: tyrosine residues (0, unmodified; P, phosphorylated) +# in the β and γ-chain ITAMs of FcεRI +R(IgE,Yb~0~P) + + +# β-hexosaminidase +# loc: location (in, inside granules; out, secreted/outside cell) +H(loc~in~out) + +end molecule types + +begin seed species + +# initial conditions + +# initial abundance of free antigen (in medium) per cell +Ag(DNP) Ag_tot_1 + +# initial abundance of free antigen receptor +R(IgE,Yb~0) R_tot + +# initial abundance of β-hexosaminidase (stored in cellular granules) +H(loc~in) H_tot + +end seed species + +begin observables + +# simulation outputs + +Molecules Ag_total Ag() # This quantity may accumulate because free Ag abundance is held fixed. +Molecules Ag_free Ag(DNP) # This quantity is held constant, except for adjustments in the actions block. +Molecules R_bound R(IgE!+) # number of antigen-bound receptors per cell +Molecules R_free R(IgE) # number of antigen-free receptors per cell +Molecules RP R(Yb~P!?) # number of phosphorylated receptors per cell +Molecules R0 R(Yb~0) # number of unphosphorylated receptors per cell +Molecules degranulation H(loc~out) # abundance of secreted β-hexominadase (surrogate for secreted mediators of inflammation) + +end observables + +begin reaction rules + +# ligand-receptor binding +# As a simplification, we consider a one-step binding mechanism. +# Thus, the rate constants are effective parameters that reflect +# capture and release of (multivalent) antigen as well as the effects +# of antigen-mediated receptor aggregation on the residence time of antigen +# on the cell surface. Recall that the antigen receptor is a long-lived 1:1 complex +# of antigen-specific IgE and FcεRI, the high-affinity Fc receptor for IgE. +Ag(DNP)+R(IgE)<->Ag(DNP!1).R(IgE!1) kon,koff + +# ligand-dependent receptor phosphorylation +# We assume that bound receptors are competent for (Lyn-mediated) phosphorylation +# of the tyrosines in β and γ ITAMs. We expect a fraction of receptors +# to be constitutively associated with receptors. +# The effective rate constant for phosphorylation is assumed to capture associaton of +# Lyn with receptors and the relationship between the abundance of cell-associated antigen +# and the extent of antigen-mediated receptor crosslinking. +R(IgE!+,Yb~0)->R(IgE!+,Yb~P) kase + +# receptor dephosphorylation +# As a simplification, we consider a pseudo first-order mechanism. +# Thus, the effective rate constant for phosphorylation can be viewed +# as the Vmax/KM ratio for phosphatases. We expect phosphatase activity to be high. +R(Yb~P)->R(Yb~0) pase + + +# Degranulation due to the presence of phosphorylated receptor +# PIP3 serves as a PLCγ substrate, leading to the production of IP3, stimulating store-operated calcium release followed by degranulation +# We assume this occurs as a pseudo second order process. +R(Yb~P)+H(loc~in)->R(Yb~P)+H(loc~out) kdegran + +end reaction rules + +end model + +begin actions + +# The command below instructs BioNetGen to derive a reaction network from the model's rules. +# The output is sent to a file that has a .net filename extension. +# The .net file can be further processed to generate the ordinary differential equations +# corresponding to the reaction network and the rate laws associated with the model's rules. + +# The commands below illustrate how we simulated +# 1) an initial period of multivalent antigen-stimulated IgE receptor signaling, +# 2) an intermediate period of monovalent antigen-induced IgE receptor signaling quiescence, and +# 3) a second and final period of multivalent antigen-stimulated IgE receptor signaling. + +# For the purposes of fitting to experimental data, we repeat the series of 3 simulations for each time delay that was tested experimentally +# For each one, a .exp file was saved containing the appropriate experimental data point from Fig. 4 +# BioNetFit will be used to fit the model to the .exp files. + +# first 5-min period of multivalent antigen stimulation +setConcentration("Ag(DNP)","Ag_tot_1") +simulate({suffix=>"p1_5",method=>"ode",t_end=>5,n_steps=>50}) + + +end actions + + +================================================ diff --git a/PyBioNetGen/tests/Simplenogen/metadata.yaml b/PyBioNetGen/tests/Simplenogen/metadata.yaml new file mode 100644 index 00000000..3e480dd2 --- /dev/null +++ b/PyBioNetGen/tests/Simplenogen/metadata.yaml @@ -0,0 +1,22 @@ +id: "Simple_nogen" +name: "Simple nogen" +description: "An example from a real application" +tags: ["simple", "nogen", "ag", "r", "h"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/Simple_nogen.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/Tricky/README.md b/PyBioNetGen/tests/Tricky/README.md new file mode 100644 index 00000000..9a678849 --- /dev/null +++ b/PyBioNetGen/tests/Tricky/README.md @@ -0,0 +1,21 @@ +# Tricky + +An example from a real application + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- Tricky.bngl + +## Tags + +tricky, ag, r, h diff --git a/PyBioNetGen/tests/Tricky/Tricky.bngl b/PyBioNetGen/tests/Tricky/Tricky.bngl new file mode 100644 index 00000000..8d30c79e --- /dev/null +++ b/PyBioNetGen/tests/Tricky/Tricky.bngl @@ -0,0 +1,180 @@ +================================================ +# An example from a real application +# +# filename: model.bngl +# date of last edit: 07-Jul-2017 +# authors: Chylek LA, Hlavacek WS (Los Alamos National Laboratory) +# software compatibility: RuleBender (version 2.1.0), BioNetGen (version 2.3) + +# begin parameters +# your parser should ignore this +# end parameters + +begin model + +begin parameters # this comment might break your parser + +f 1 # cells per reaction compartment + +# Avogadro constant +NA 6.02214e23 # molecules per mol + +# time unit conversion factor +T 60 # s per min + +# channel volume in microfluidic device +Vchannel 500e-9 # L per channel (500 nL) + +# number of cells per channel +Nchannel 1000 # cells per channel + +# volume of extracellular fluid +Vecf=f*(Vchannel/Nchannel) # L per cell (500 pL/cell) + +# cytosolic volume of an RBL-2H3 cell +# This estimate corresponds to the volume of a sphere with a diameter of 17.9 microns. +Vcyt f*3e-12 # L per cell (3 pL/cell) + +# multivalent antigen abundance in medium at condition 1 +Ag_conc1 10e-9 # M (10 nM) +Ag_tot_1=Ag_conc1*(NA*Vecf) # cpc + +# antigen receptor abundance +R_tot f*3e5 # copies per cell (1 nM) + +# rate constant for antigen capture +kon 1e7*T/(NA*Vecf) # /M/s (1.8e8 /M/min) converted to /cpc/min; Initial guess 3e6 + +# rate constant for antigen release +koff koff__FREE+__koff2__FREE*T # You should not parse commented__FREE + +# rate constant for pseudo first-order phosphorylation of antigen-engaged receptor +kase kase__FREE*T # You should not parse commented__FREE +pase pase__FREE + +H_tot 1e6 # cpc + +kdegran 6e4*T/(NA*Vcyt) # /M/s (3.6e6 /M/min) converted to /cpc/min (2e-6 /cpc/min); Initial guess 6e4 + + +end parameters + +begin molecule types + +# antigen (DNP-conjugated BSA) +# DNP: 2,4-dinitrophenyl groups +Ag(DNP) + +# antigen receptor (anti-DNP IgE bound to FcεRI) +# IgE: anti-DNP IgE +# Y: tyrosine residues (0, unmodified; P, phosphorylated) +# in the β and γ-chain ITAMs of FcεRI +R(IgE,Yb~0~P) + + +# β-hexosaminidase +# loc: location (in, inside granules; out, secreted/outside cell) +H(loc~in~out) + +end molecule types + +begin seed species + +# initial conditions + +# initial abundance of free antigen (in medium) per cell +Ag(DNP) Ag_tot_1 + +# initial abundance of free antigen receptor +R(IgE,Yb~0) R_tot + +# initial abundance of β-hexosaminidase (stored in cellular granules) +H(loc~in) H_tot + +end seed species + +begin observables + +# simulation outputs + +Molecules Ag_total Ag() # This quantity may accumulate because free Ag abundance is held fixed. +Molecules Ag_free Ag(DNP) # This quantity is held constant, except for adjustments in the actions block. +Molecules R_bound R(IgE!+) # number of antigen-bound receptors per cell +Molecules R_free R(IgE) # number of antigen-free receptors per cell +Molecules RP R(Yb~P!?) # number of phosphorylated receptors per cell +Molecules R0 R(Yb~0) # number of unphosphorylated receptors per cell +Molecules degranulation H(loc~out) # abundance of secreted β-hexominadase (surrogate for secreted mediators of inflammation) + +end observables + +begin reaction rules + +# ligand-receptor binding +# As a simplification, we consider a one-step binding mechanism. +# Thus, the rate constants are effective parameters that reflect +# capture and release of (multivalent) antigen as well as the effects +# of antigen-mediated receptor aggregation on the residence time of antigen +# on the cell surface. Recall that the antigen receptor is a long-lived 1:1 complex +# of antigen-specific IgE and FcεRI, the high-affinity Fc receptor for IgE. +Ag(DNP)+R(IgE)<->Ag(DNP!1).R(IgE!1) kon,koff + +# ligand-dependent receptor phosphorylation +# We assume that bound receptors are competent for (Lyn-mediated) phosphorylation +# of the tyrosines in β and γ ITAMs. We expect a fraction of receptors +# to be constitutively associated with receptors. +# The effective rate constant for phosphorylation is assumed to capture associaton of +# Lyn with receptors and the relationship between the abundance of cell-associated antigen +# and the extent of antigen-mediated receptor crosslinking. +R(IgE!+,Yb~0)->R(IgE!+,Yb~P) kase + +# receptor dephosphorylation +# As a simplification, we consider a pseudo first-order mechanism. +# Thus, the effective rate constant for phosphorylation can be viewed +# as the Vmax/KM ratio for phosphatases. We expect phosphatase activity to be high. +R(Yb~P)->R(Yb~0) pase + + +# Degranulation due to the presence of phosphorylated receptor +# PIP3 serves as a PLCγ substrate, leading to the production of IP3, stimulating store-operated calcium release followed by degranulation +# We assume this occurs as a pseudo second order process. +R(Yb~P)+H(loc~in)->R(Yb~P)+H(loc~out) kdegran + +end reaction rules + +end model + +begin actions + +# The command below instructs BioNetGen to derive a reaction network from the model's rules. +# The output is sent to a file that has a .net filename extension. +# The .net file can be further processed to generate the ordinary differential equations +# corresponding to the reaction network and the rate laws associated with the model's rules. +generate_net\ +work({overwrite=>1}) + +# The commands below illustrate how we simulated +# 1) an initial period of multivalent antigen-stimulated IgE receptor signaling, +# 2) an intermediate period of monovalent antigen-induced IgE receptor signaling quiescence, and +# 3) a second and final period of multivalent antigen-stimulated IgE receptor signaling. + +# For the purposes of fitting to experimental data, we repeat the series of 3 simulations for each time delay that was tested experimentally +# For each one, a .exp file was saved containing the appropriate experimental data point from Fig. 4 +# BioNetFit will be used to fit the model to the .exp files. + +# first 5-min period of multivalent antigen stimulation +setConcentration("Ag(DNP)","Ag_tot_1") +saveConcentrations() +simulate({suffix\ +=\ # Comment +>"p1_\ +\ +5",method=>"ode",t_start=>0,t_end=>5,n_steps=>50}) +resetConcentrations() +parameter_scan({method=>"ssa",t_start=>0,t_end=>1,\ + n_steps=>100,parameter=>'kase',par_min=>'0.01',par_max=>'10',n_scan_pts=>4,log_scale=>1,suffix=>"thing"}) + + +end actions + + +================================================ diff --git a/PyBioNetGen/tests/Tricky/metadata.yaml b/PyBioNetGen/tests/Tricky/metadata.yaml new file mode 100644 index 00000000..0b2271ca --- /dev/null +++ b/PyBioNetGen/tests/Tricky/metadata.yaml @@ -0,0 +1,22 @@ +id: "Tricky" +name: "Tricky" +description: "An example from a real application" +tags: ["tricky", "ag", "r", "h"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/Tricky.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/TrickyUS/README.md b/PyBioNetGen/tests/TrickyUS/README.md new file mode 100644 index 00000000..e0361a75 --- /dev/null +++ b/PyBioNetGen/tests/TrickyUS/README.md @@ -0,0 +1,21 @@ +# TrickyUS + +An example from a real application + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- TrickyUS.bngl + +## Tags + +trickyus, ag, r, h diff --git a/PyBioNetGen/tests/TrickyUS/TrickyUS.bngl b/PyBioNetGen/tests/TrickyUS/TrickyUS.bngl new file mode 100644 index 00000000..9080efc0 --- /dev/null +++ b/PyBioNetGen/tests/TrickyUS/TrickyUS.bngl @@ -0,0 +1,173 @@ +================================================ +# An example from a real application +# +# filename: model.bngl +# date of last edit: 07-Jul-2017 +# authors: Chylek LA, Hlavacek WS (Los Alamos National Laboratory) +# software compatibility: RuleBender (version 2.1.0), BioNetGen (version 2.3) + +# begin parameters +# your parser should ignore this +# end parameters + +begin model + +begin parameters # this comment might break your parser + + +f 1 # cells per reaction compartment + +# Avogadro constant +NA 6.02214e23 # molecules per mol + +# time unit conversion factor +T 60 # s per min + +# channel volume in microfluidic device +Vchannel 500e-9 # L per channel (500 nL) + +# number of cells per channel +Nchannel 1000 # cells per channel + +# volume of extracellular fluid +Vecf=f*(Vchannel/Nchannel) # L per cell (500 pL/cell) + +# cytosolic volume of an RBL-2H3 cell +# This estimate corresponds to the volume of a sphere with a diameter of 17.9 microns. +Vcyt f*3e-12 # L per cell (3 pL/cell) + +# multivalent antigen abundance in medium at condition 1 +Ag_conc1 10e-9 # M (10 nM) +Ag_tot_1=Ag_conc1*(NA*Vecf) # cpc + +# antigen receptor abundance +R_tot f*3e5 # copies per cell (1 nM) + +# rate constant for antigen capture +kon 1e7*T/(NA*Vecf) # /M/s (1.8e8 /M/min) converted to /cpc/min; Initial guess 3e6 + +# rate constant for antigen release +koff koff__FREE+__koff2__FREE*T # You should not parse commented__FREE + +# rate constant for pseudo first-order phosphorylation of antigen-engaged receptor +kase kase__FREE*T # You should not parse commented__FREE +pase pase__FREE + +H_tot 1e6 # cpc + +kdegran 6e4*T/(NA*Vcyt) # /M/s (3.6e6 /M/min) converted to /cpc/min (2e-6 /cpc/min); Initial guess 6e4 + + +end parameters + +begin molecule types + +# antigen (DNP-conjugated BSA) +# DNP: 2,4-dinitrophenyl groups +Ag(DNP) + +# antigen receptor (anti-DNP IgE bound to FcεRI) +# IgE: anti-DNP IgE +# Y: tyrosine residues (0, unmodified; P, phosphorylated) +# in the β and γ-chain ITAMs of FcεRI +R(IgE,Yb~0~P) + + +# β-hexosaminidase +# loc: location (in, inside granules; out, secreted/outside cell) +H(loc~in~out) + +end molecule types + +begin seed species + +# initial conditions + +# initial abundance of free antigen (in medium) per cell +Ag(DNP) Ag_tot_1 + +# initial abundance of free antigen receptor +R(IgE,Yb~0) R_tot + +# initial abundance of β-hexosaminidase (stored in cellular granules) +H(loc~in) H_tot + +end seed species + +begin observables + +# simulation outputs + +Molecules Ag_total Ag() # This quantity may accumulate because free Ag abundance is held fixed. +Molecules Ag_free Ag(DNP) # This quantity is held constant, except for adjustments in the actions block. +Molecules R_bound R(IgE!+) # number of antigen-bound receptors per cell +Molecules R_free R(IgE) # number of antigen-free receptors per cell +Molecules RP R(Yb~P!?) # number of phosphorylated receptors per cell +Molecules R0 R(Yb~0) # number of unphosphorylated receptors per cell +Molecules degranulation H(loc~out) # abundance of secreted β-hexominadase (surrogate for secreted mediators of inflammation) + +end observables + +begin reaction rules + +# ligand-receptor binding +# As a simplification, we consider a one-step binding mechanism. +# Thus, the rate constants are effective parameters that reflect +# capture and release of (multivalent) antigen as well as the effects +# of antigen-mediated receptor aggregation on the residence time of antigen +# on the cell surface. Recall that the antigen receptor is a long-lived 1:1 complex +# of antigen-specific IgE and FcεRI, the high-affinity Fc receptor for IgE. +Ag(DNP)+R(IgE)<->Ag(DNP!1).R(IgE!1) kon,koff + +# ligand-dependent receptor phosphorylation +# We assume that bound receptors are competent for (Lyn-mediated) phosphorylation +# of the tyrosines in β and γ ITAMs. We expect a fraction of receptors +# to be constitutively associated with receptors. +# The effective rate constant for phosphorylation is assumed to capture associaton of +# Lyn with receptors and the relationship between the abundance of cell-associated antigen +# and the extent of antigen-mediated receptor crosslinking. +R(IgE!+,Yb~0)->R(IgE!+,Yb~P) kase + +# receptor dephosphorylation +# As a simplification, we consider a pseudo first-order mechanism. +# Thus, the effective rate constant for phosphorylation can be viewed +# as the Vmax/KM ratio for phosphatases. We expect phosphatase activity to be high. +R(Yb~P)->R(Yb~0) pase + + +# Degranulation due to the presence of phosphorylated receptor +# PIP3 serves as a PLCγ substrate, leading to the production of IP3, stimulating store-operated calcium release followed by degranulation +# We assume this occurs as a pseudo second order process. +R(Yb~P)+H(loc~in)->R(Yb~P)+H(loc~out) kdegran + +end reaction rules + +end model + +begin actions + +# The command below instructs BioNetGen to derive a reaction network from the model's rules. +# The output is sent to a file that has a .net filename extension. +# The .net file can be further processed to generate the ordinary differential equations +# corresponding to the reaction network and the rate laws associated with the model's rules. +generate_network({overwrite=>1}) + +# The commands below illustrate how we simulated +# 1) an initial period of multivalent antigen-stimulated IgE receptor signaling, +# 2) an intermediate period of monovalent antigen-induced IgE receptor signaling quiescence, and +# 3) a second and final period of multivalent antigen-stimulated IgE receptor signaling. + +# For the purposes of fitting to experimental data, we repeat the series of 3 simulations for each time delay that was tested experimentally +# For each one, a .exp file was saved containing the appropriate experimental data point from Fig. 4 +# BioNetFit will be used to fit the model to the .exp files. + +# first 5-min period of multivalent antigen stimulation +setConcentration("Ag(DNP)","Ag_tot_1") +saveConcentrations() +simulate({suffix=>"p1_5",method=>"ode",t_start=>0,t_end=>5,n_steps=>5}) + + +end actions + + +================================================ diff --git a/PyBioNetGen/tests/TrickyUS/metadata.yaml b/PyBioNetGen/tests/TrickyUS/metadata.yaml new file mode 100644 index 00000000..968aef11 --- /dev/null +++ b/PyBioNetGen/tests/TrickyUS/metadata.yaml @@ -0,0 +1,22 @@ +id: "TrickyUS" +name: "TrickyUS" +description: "An example from a real application" +tags: ["trickyus", "ag", "r", "h"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/TrickyUS.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/actionssyntax/README.md b/PyBioNetGen/tests/actionssyntax/README.md new file mode 100644 index 00000000..a1cb528d --- /dev/null +++ b/PyBioNetGen/tests/actionssyntax/README.md @@ -0,0 +1,21 @@ +# actions syntax + +Original values used to generate parabola.exp + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- actions_syntax.bngl + +## Tags + +actions, syntax, counter, y, generate_network, simulate diff --git a/PyBioNetGen/tests/actionssyntax/actions_syntax.bngl b/PyBioNetGen/tests/actionssyntax/actions_syntax.bngl new file mode 100644 index 00000000..4a8bf098 --- /dev/null +++ b/PyBioNetGen/tests/actionssyntax/actions_syntax.bngl @@ -0,0 +1,53 @@ +================================================ +begin model + + begin parameters + +# Original values used to generate parabola.exp +# (v1, v2, v3) = 0.5, 1, 3 + +#Parabola A: Y = v1*(X^2) + v2*X + v3 + + v1 v1__FREE + v2 v2__FREE + v3 v3__FREE + + end parameters + + begin molecule types + counter() + end molecule types + + begin seed species + # initial conditions + counter() -10 + end seed species + + begin observables + Molecules x counter() + end observables + + begin functions + # y()=(x-v1)*(x-v2)*(x-v3)*(x-p4)*(x-p5)+1000 + +# y()=(v1*x^2)+(v2*x)+v3 + y()=v1*(x^2)+(v2*x)+v3 + end functions + + begin reaction rules + 0->counter() 1 + end reaction rules + +end model + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>-10,t_end=>10,n_steps=>20,suffix=>"par1",print_functions=>1})) + +end actions + + + + + +================================================ diff --git a/PyBioNetGen/tests/actionssyntax/metadata.yaml b/PyBioNetGen/tests/actionssyntax/metadata.yaml new file mode 100644 index 00000000..83bf6fad --- /dev/null +++ b/PyBioNetGen/tests/actionssyntax/metadata.yaml @@ -0,0 +1,22 @@ +id: "actions_syntax" +name: "actions syntax" +description: "Original values used to generate parabola.exp" +tags: ["actions", "syntax", "counter", "y", "generate_network", "simulate"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/errors/actions_syntax.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/bngerror/README.md b/PyBioNetGen/tests/bngerror/README.md new file mode 100644 index 00000000..c79abd62 --- /dev/null +++ b/PyBioNetGen/tests/bngerror/README.md @@ -0,0 +1,21 @@ +# bng error + +Original values used to generate parabola.exp + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- bng_error.bngl + +## Tags + +bng, error, counter, y, generate_network, simulate diff --git a/PyBioNetGen/tests/bngerror/bng_error.bngl b/PyBioNetGen/tests/bngerror/bng_error.bngl new file mode 100644 index 00000000..5f21f054 --- /dev/null +++ b/PyBioNetGen/tests/bngerror/bng_error.bngl @@ -0,0 +1,54 @@ +================================================ +begin model + + begin parameters + +# Original values used to generate parabola.exp +# (v1, v2, v3) = 0.5, 1, 3 + +#Parabola A: Y = v1*(X^2) + v2*X + v3 + + v1 v1__FREE + v2 v2__FREE + v3 v3__FREE + + end parameters + + begin molecule types + counter() + end molecule types + + begin seed species + # initial conditions + counter() -10 + end seed species + + begin observables + Molecules x counter() + end observables + + begin functions + # y()=(x-v1)*(x-v2)*(x-v3)*(x-p4)*(x-p5)+1000 + +# y()=(v1*x^2)+(v2*x)+v3 + y()=v1*(x^2)+(v2*x)+v3 + end functions + + begin reaction rules + 0->counter() 1 + 0->A(x) # Invalid + end reaction rules + +end model + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>-10,t_end=>10,n_steps=>20,suffix=>"par1",print_functions=>1}) + +end actions + + + + + +================================================ diff --git a/PyBioNetGen/tests/bngerror/metadata.yaml b/PyBioNetGen/tests/bngerror/metadata.yaml new file mode 100644 index 00000000..bb875170 --- /dev/null +++ b/PyBioNetGen/tests/bngerror/metadata.yaml @@ -0,0 +1,22 @@ +id: "bng_error" +name: "bng error" +description: "Original values used to generate parabola.exp" +tags: ["bng", "error", "counter", "y", "generate_network", "simulate"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/errors/bng_error.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/egg/README.md b/PyBioNetGen/tests/egg/README.md new file mode 100644 index 00000000..fd5ab095 --- /dev/null +++ b/PyBioNetGen/tests/egg/README.md @@ -0,0 +1,21 @@ +# egg + +BioNetGen model: egg + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- egg.bngl + +## Tags + +egg, x, y, generate_network, simulate diff --git a/PyBioNetGen/tests/egg/egg.bngl b/PyBioNetGen/tests/egg/egg.bngl new file mode 100644 index 00000000..c559c375 --- /dev/null +++ b/PyBioNetGen/tests/egg/egg.bngl @@ -0,0 +1,47 @@ +================================================ +begin model + begin parameters + a0 a0__FREE + a1 a1__FREE + a2 a2__FREE + b1 b1__FREE + b2 b2__FREE + c0 c0__FREE + c1 c1__FREE + c2 c2__FREE + d1 d1__FREE + d2 d2__FREE + pi=2*asin(1) + period 180 + m=2*pi/period + end parameters + begin molecule types + t + end molecule types + begin seed species + t 0 + end seed species + begin observables + Species t t + end observables + begin functions + X()=a0\ + +a1*cos(m*1*t)+b1*sin(m*1*t)\ + +a2*cos(m*2*t)+b2*sin(m*2*t) + Y()=c0\ + +c1*cos(m*1*t)+d1*sin(m*1*t)\ + +c2*cos(m*2*t)+d2*sin(m*2*t) + end functions + begin reaction rules + 0->t 1 + end reaction rules +end model +begin actions + generate_network({overwrite=>1}) + simulate({suffix=>"egg",method=>"ode",\ + t_start=>0,t_end=>180,n_steps=>180,\ + print_functions=>1}) +end actions + + +================================================ diff --git a/PyBioNetGen/tests/egg/metadata.yaml b/PyBioNetGen/tests/egg/metadata.yaml new file mode 100644 index 00000000..828bf245 --- /dev/null +++ b/PyBioNetGen/tests/egg/metadata.yaml @@ -0,0 +1,22 @@ +id: "egg" +name: "egg" +description: "BioNetGen model: egg" +tags: ["egg", "x", "y", "generate_network", "simulate"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/full_tests/T3-de-egg/egg.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/freemissing/README.md b/PyBioNetGen/tests/freemissing/README.md new file mode 100644 index 00000000..d01f7cff --- /dev/null +++ b/PyBioNetGen/tests/freemissing/README.md @@ -0,0 +1,21 @@ +# free missing + +Original values used to generate parabola.exp + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- free_missing.bngl + +## Tags + +free, missing, counter, y, generate_network, simulate diff --git a/PyBioNetGen/tests/freemissing/free_missing.bngl b/PyBioNetGen/tests/freemissing/free_missing.bngl new file mode 100644 index 00000000..5ea655ee --- /dev/null +++ b/PyBioNetGen/tests/freemissing/free_missing.bngl @@ -0,0 +1,52 @@ +================================================ +begin model + + begin parameters + +# Original values used to generate parabola.exp +# (v1, v2, v3) = 0.5, 1, 3 + +#Parabola A: Y = v1*(X^2) + v2*X + v3 + + v1 v1__FREE + v2 v2__FREE + + end parameters + + begin molecule types + counter() + end molecule types + + begin seed species + # initial conditions + counter() -10 + end seed species + + begin observables + Molecules x counter() + end observables + + begin functions + # y()=(x-v1)*(x-v2)*(x-v3)*(x-p4)*(x-p5)+1000 + +# y()=(v1*x^2)+(v2*x)+v3 + y()=v1*(x^2)+(v2*x)+v3 + end functions + + begin reaction rules + 0->counter() 1 + end reaction rules + +end model + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>-10,t_end=>10,n_steps=>20,suffix=>"par1",print_functions=>1}) + +end actions + + + + + +================================================ diff --git a/PyBioNetGen/tests/freemissing/metadata.yaml b/PyBioNetGen/tests/freemissing/metadata.yaml new file mode 100644 index 00000000..beebbe0c --- /dev/null +++ b/PyBioNetGen/tests/freemissing/metadata.yaml @@ -0,0 +1,22 @@ +id: "free_missing" +name: "free missing" +description: "Original values used to generate parabola.exp" +tags: ["free", "missing", "counter", "y", "generate_network", "simulate"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/errors/free_missing.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/nofrees/README.md b/PyBioNetGen/tests/nofrees/README.md new file mode 100644 index 00000000..2cfe6374 --- /dev/null +++ b/PyBioNetGen/tests/nofrees/README.md @@ -0,0 +1,21 @@ +# no frees + +Original values used to generate parabola.exp + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- no_frees.bngl + +## Tags + +no, frees, counter, y, generate_network, simulate diff --git a/PyBioNetGen/tests/nofrees/metadata.yaml b/PyBioNetGen/tests/nofrees/metadata.yaml new file mode 100644 index 00000000..9fdad126 --- /dev/null +++ b/PyBioNetGen/tests/nofrees/metadata.yaml @@ -0,0 +1,22 @@ +id: "no_frees" +name: "no frees" +description: "Original values used to generate parabola.exp" +tags: ["no", "frees", "counter", "y", "generate_network", "simulate"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/errors/no_frees.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/PyBioNetGen/tests/nofrees/no_frees.bngl b/PyBioNetGen/tests/nofrees/no_frees.bngl new file mode 100644 index 00000000..b98c470e --- /dev/null +++ b/PyBioNetGen/tests/nofrees/no_frees.bngl @@ -0,0 +1,53 @@ +================================================ +begin model + + begin parameters + +# Original values used to generate parabola.exp +# (v1, v2, v3) = 0.5, 1, 3 + +#Parabola A: Y = v1*(X^2) + v2*X + v3 + + v1 0.5 + v2 1 + v3 3 + + end parameters + + begin molecule types + counter() + end molecule types + + begin seed species + # initial conditions + counter() -10 + end seed species + + begin observables + Molecules x counter() + end observables + + begin functions + # y()=(x-v1)*(x-v2)*(x-v3)*(x-p4)*(x-p5)+1000 + +# y()=(v1*x^2)+(v2*x)+v3 + y()=v1*(x^2)+(v2*x)+v3 + end functions + + begin reaction rules + 0->counter() 1 + end reaction rules + +end model + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>-10,t_end=>10,n_steps=>20,suffix=>"par1",print_functions=>1}) + +end actions + + + + + +================================================ diff --git a/PyBioNetGen/tests/nogeneratenetwork/README.md b/PyBioNetGen/tests/nogeneratenetwork/README.md new file mode 100644 index 00000000..12b517b8 --- /dev/null +++ b/PyBioNetGen/tests/nogeneratenetwork/README.md @@ -0,0 +1,21 @@ +# no generate network + +Original values used to generate parabola.exp + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- no_generate_network.bngl + +## Tags + +no, generate, network, counter, y, simulate diff --git a/PyBioNetGen/tests/nogeneratenetwork/metadata.yaml b/PyBioNetGen/tests/nogeneratenetwork/metadata.yaml new file mode 100644 index 00000000..27072098 --- /dev/null +++ b/PyBioNetGen/tests/nogeneratenetwork/metadata.yaml @@ -0,0 +1,22 @@ +id: "no_generate_network" +name: "no generate network" +description: "Original values used to generate parabola.exp" +tags: ["no", "generate", "network", "counter", "y", "simulate"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/errors/no_generate_network.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/nogeneratenetwork/no_generate_network.bngl b/PyBioNetGen/tests/nogeneratenetwork/no_generate_network.bngl new file mode 100644 index 00000000..b594cffd --- /dev/null +++ b/PyBioNetGen/tests/nogeneratenetwork/no_generate_network.bngl @@ -0,0 +1,53 @@ +================================================ +begin model + + begin parameters + +# Original values used to generate parabola.exp +# (v1, v2, v3) = 0.5, 1, 3 + +#Parabola A: Y = v1*(X^2) + v2*X + v3 + + v1 v1__FREE + v2 v2__FREE + v3 v3__FREE + + end parameters + + begin molecule types + counter() + end molecule types + + begin seed species + # initial conditions + counter() -10 + end seed species + + begin observables + Molecules x counter() + end observables + + begin functions + # y()=(x-v1)*(x-v2)*(x-v3)*(x-p4)*(x-p5)+1000 + +# y()=(v1*x^2)+(v2*x)+v3 + y()=v1*(x^2)+(v2*x)+v3 + end functions + + begin reaction rules + 0->counter() 1 + end reaction rules + +end model + +begin actions + + simulate({method=>"ode",t_start=>-10,t_end=>10,n_steps=>20,suffix=>"par1",print_functions=>1}) + +end actions + + + + + +================================================ diff --git a/PyBioNetGen/tests/nosuffix/README.md b/PyBioNetGen/tests/nosuffix/README.md new file mode 100644 index 00000000..9030940f --- /dev/null +++ b/PyBioNetGen/tests/nosuffix/README.md @@ -0,0 +1,21 @@ +# no suffix + +Original values used to generate parabola.exp + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- no_suffix.bngl + +## Tags + +no, suffix, counter, y, generate_network, simulate diff --git a/PyBioNetGen/tests/nosuffix/metadata.yaml b/PyBioNetGen/tests/nosuffix/metadata.yaml new file mode 100644 index 00000000..2975ea14 --- /dev/null +++ b/PyBioNetGen/tests/nosuffix/metadata.yaml @@ -0,0 +1,22 @@ +id: "no_suffix" +name: "no suffix" +description: "Original values used to generate parabola.exp" +tags: ["no", "suffix", "counter", "y", "generate_network", "simulate"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/errors/no_suffix.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/nosuffix/no_suffix.bngl b/PyBioNetGen/tests/nosuffix/no_suffix.bngl new file mode 100644 index 00000000..9b74ec3f --- /dev/null +++ b/PyBioNetGen/tests/nosuffix/no_suffix.bngl @@ -0,0 +1,53 @@ +================================================ +begin model + + begin parameters + +# Original values used to generate parabola.exp +# (v1, v2, v3) = 0.5, 1, 3 + +#Parabola A: Y = v1*(X^2) + v2*X + v3 + + v1 v1__FREE + v2 v2__FREE + v3 v3__FREE + + end parameters + + begin molecule types + counter() + end molecule types + + begin seed species + # initial conditions + counter() -10 + end seed species + + begin observables + Molecules x counter() + end observables + + begin functions + # y()=(x-v1)*(x-v2)*(x-v3)*(x-p4)*(x-p5)+1000 + +# y()=(v1*x^2)+(v2*x)+v3 + y()=v1*(x^2)+(v2*x)+v3 + end functions + + begin reaction rules + 0->counter() 1 + end reaction rules + +end model + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>-10,t_end=>10,n_steps=>20,print_functions=>1}) + +end actions + + + + + +================================================ diff --git a/PyBioNetGen/tests/parabola/README.md b/PyBioNetGen/tests/parabola/README.md new file mode 100644 index 00000000..b5289b59 --- /dev/null +++ b/PyBioNetGen/tests/parabola/README.md @@ -0,0 +1,21 @@ +# parabola + +Original values used to generate parabola.exp + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- parabola.bngl + +## Tags + +parabola, counter, y, generate_network, simulate, resetconcentrations diff --git a/PyBioNetGen/tests/parabola/metadata.yaml b/PyBioNetGen/tests/parabola/metadata.yaml new file mode 100644 index 00000000..180c2637 --- /dev/null +++ b/PyBioNetGen/tests/parabola/metadata.yaml @@ -0,0 +1,22 @@ +id: "parabola" +name: "parabola" +description: "Original values used to generate parabola.exp" +tags: ["parabola", "counter", "y", "generate_network", "simulate", "resetconcentrations"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/errors/constraint_domain/parabola.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/parabola/parabola.bngl b/PyBioNetGen/tests/parabola/parabola.bngl new file mode 100644 index 00000000..98d1bb6e --- /dev/null +++ b/PyBioNetGen/tests/parabola/parabola.bngl @@ -0,0 +1,55 @@ +================================================ +begin model + + begin parameters + +# Original values used to generate parabola.exp +# (v1, v2, v3) = 0.5, 1, 3 + +#Parabola A: Y = v1*(X^2) + v2*X + v3 + + v1 v1__FREE + v2 v2__FREE + v3 v3__FREE + + end parameters + + begin molecule types + counter() + end molecule types + + begin seed species + # initial conditions + counter() -10 + end seed species + + begin observables + Molecules x counter() + end observables + + begin functions + # y()=(x-v1)*(x-v2)*(x-v3)*(x-p4)*(x-p5)+1000 + +# y()=(v1*x^2)+(v2*x)+v3 + y()=v1*(x^2)+(v2*x)+v3 + end functions + + begin reaction rules + 0->counter() 1 + end reaction rules + +end model + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>-10,t_end=>10,n_steps=>20,suffix=>"par1",print_functions=>1}) + resetConcentrations() + simulate({method=>"ode",t_start=>-10,t_end=>10,n_steps=>30,suffix=>"par2",print_functions=>1}) + +end actions + + + + + +================================================ diff --git a/PyBioNetGen/tests/parabola2/README.md b/PyBioNetGen/tests/parabola2/README.md new file mode 100644 index 00000000..5650e045 --- /dev/null +++ b/PyBioNetGen/tests/parabola2/README.md @@ -0,0 +1,21 @@ +# parabola2 + +A file for testing behavior with duplicate file names + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- parabola2.bngl + +## Tags + +parabola2, counter, y, generate_network, simulate, resetconcentrations diff --git a/PyBioNetGen/tests/parabola2/metadata.yaml b/PyBioNetGen/tests/parabola2/metadata.yaml new file mode 100644 index 00000000..cf90f9f8 --- /dev/null +++ b/PyBioNetGen/tests/parabola2/metadata.yaml @@ -0,0 +1,22 @@ +id: "parabola2" +name: "parabola2" +description: "A file for testing behavior with duplicate file names" +tags: ["parabola2", "counter", "y", "generate_network", "simulate", "resetconcentrations"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/special_cases/duplicate_names/parabola2.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/parabola2/parabola2.bngl b/PyBioNetGen/tests/parabola2/parabola2.bngl new file mode 100644 index 00000000..2b7c7c66 --- /dev/null +++ b/PyBioNetGen/tests/parabola2/parabola2.bngl @@ -0,0 +1,57 @@ +================================================ +# A file for testing behavior with duplicate file names + +begin model + + begin parameters + +# Original values used to generate parabola.exp +# (v1, v2, v3) = 0.5, 1, 3 + +#Parabola A: Y = v1*(X^2) + v2*X + v3 + + v1 v1__FREE + v2 v2__FREE + v3 v3__FREE + + end parameters + + begin molecule types + counter() + end molecule types + + begin seed species + # initial conditions + counter() -10 + end seed species + + begin observables + Molecules x counter() + end observables + + begin functions + # y()=(x-v1)*(x-v2)*(x-v3)*(x-p4)*(x-p5)+1000 + +# y()=(v1*x^2)+(v2*x)+v3 + y()=v1*(x^2)+(v2*x)+v3+10 # Add 10 compared to original parabola.bngl + end functions + + begin reaction rules + 0->counter() 1 + end reaction rules + +end model + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>-10,t_end=>10,n_steps=>20,suffix=>"par1",print_functions=>1}) + resetConcentrations() + simulate({method=>"ode",t_start=>-10,t_end=>10,n_steps=>20,suffix=>"par2",print_functions=>1}) + +end actions + + + + + +================================================ diff --git a/PyBioNetGen/tests/parabola_bngl_files/README.md b/PyBioNetGen/tests/parabola_bngl_files/README.md new file mode 100644 index 00000000..bf88ac64 --- /dev/null +++ b/PyBioNetGen/tests/parabola_bngl_files/README.md @@ -0,0 +1,21 @@ +# parabola + +Original values used to generate parabola.exp + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- parabola.bngl + +## Tags + +parabola, counter, y, generate_network, simulate diff --git a/PyBioNetGen/tests/parabola_bngl_files/metadata.yaml b/PyBioNetGen/tests/parabola_bngl_files/metadata.yaml new file mode 100644 index 00000000..fb487fb5 --- /dev/null +++ b/PyBioNetGen/tests/parabola_bngl_files/metadata.yaml @@ -0,0 +1,22 @@ +id: "parabola" +name: "parabola" +description: "Original values used to generate parabola.exp" +tags: ["parabola", "counter", "y", "generate_network", "simulate"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/parabola.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/parabola_bngl_files/parabola.bngl b/PyBioNetGen/tests/parabola_bngl_files/parabola.bngl new file mode 100644 index 00000000..4273c5b0 --- /dev/null +++ b/PyBioNetGen/tests/parabola_bngl_files/parabola.bngl @@ -0,0 +1,53 @@ +================================================ +begin model + + begin parameters + +# Original values used to generate parabola.exp +# (v1, v2, v3) = 0.5, 1, 3 + +#Parabola A: Y = v1*(X^2) + v2*X + v3 + + v1 v1__FREE + v2 v2__FREE + v3 v3__FREE + + end parameters + + begin molecule types + counter() + end molecule types + + begin seed species + # initial conditions + counter() -10 + end seed species + + begin observables + Molecules x counter() + end observables + + begin functions + # y()=(x-v1)*(x-v2)*(x-v3)*(x-p4)*(x-p5)+1000 + +# y()=(v1*x^2)+(v2*x)+v3 + y()=v1*(x^2)+(v2*x)+v3 + end functions + + begin reaction rules + 0->counter() 1 + end reaction rules + +end model + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>-10,t_end=>10,n_steps=>20,suffix=>"par1",print_functions=>1}) + +end actions + + + + + +================================================ diff --git a/PyBioNetGen/tests/parabola_bngl_files_special_cases_model_check/README.md b/PyBioNetGen/tests/parabola_bngl_files_special_cases_model_check/README.md new file mode 100644 index 00000000..bf88ac64 --- /dev/null +++ b/PyBioNetGen/tests/parabola_bngl_files_special_cases_model_check/README.md @@ -0,0 +1,21 @@ +# parabola + +Original values used to generate parabola.exp + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- parabola.bngl + +## Tags + +parabola, counter, y, generate_network, simulate diff --git a/PyBioNetGen/tests/parabola_bngl_files_special_cases_model_check/metadata.yaml b/PyBioNetGen/tests/parabola_bngl_files_special_cases_model_check/metadata.yaml new file mode 100644 index 00000000..5bcdaa14 --- /dev/null +++ b/PyBioNetGen/tests/parabola_bngl_files_special_cases_model_check/metadata.yaml @@ -0,0 +1,22 @@ +id: "parabola" +name: "parabola" +description: "Original values used to generate parabola.exp" +tags: ["parabola", "counter", "y", "generate_network", "simulate"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/special_cases/model_check/parabola.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/PyBioNetGen/tests/parabola_bngl_files_special_cases_model_check/parabola.bngl b/PyBioNetGen/tests/parabola_bngl_files_special_cases_model_check/parabola.bngl new file mode 100644 index 00000000..be5cd961 --- /dev/null +++ b/PyBioNetGen/tests/parabola_bngl_files_special_cases_model_check/parabola.bngl @@ -0,0 +1,53 @@ +================================================ +begin model + + begin parameters + +# Original values used to generate parabola.exp +# (v1, v2, v3) = 0.5, 1, 3 + +#Parabola A: Y = v1*(X^2) + v2*X + v3 + + v1 0.5 + v2 1 + v3 2.9 + + end parameters + + begin molecule types + counter() + end molecule types + + begin seed species + # initial conditions + counter() -10 + end seed species + + begin observables + Molecules x counter() + end observables + + begin functions + # y()=(x-v1)*(x-v2)*(x-v3)*(x-p4)*(x-p5)+1000 + +# y()=(v1*x^2)+(v2*x)+v3 + y()=v1*(x^2)+(v2*x)+v3 + end functions + + begin reaction rules + 0->counter() 1 + end reaction rules + +end model + +begin actions + generate_network({overwrite=>1}) + simulate({method=>"ode",t_start=>-10,t_end=>10,n_steps=>20,suffix=>"par1",print_functions=>1}) + +end actions + + + + + +================================================ diff --git a/PyBioNetGen/tests/polynomial/README.md b/PyBioNetGen/tests/polynomial/README.md new file mode 100644 index 00000000..0956e882 --- /dev/null +++ b/PyBioNetGen/tests/polynomial/README.md @@ -0,0 +1,21 @@ +# polynomial + +Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1 + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- polynomial.bngl + +## Tags + +polynomial, counter, y1, y2, generate_network, simulate, setparameter, resetconcentrations diff --git a/PyBioNetGen/tests/polynomial/metadata.yaml b/PyBioNetGen/tests/polynomial/metadata.yaml new file mode 100644 index 00000000..6f197bb6 --- /dev/null +++ b/PyBioNetGen/tests/polynomial/metadata.yaml @@ -0,0 +1,22 @@ +id: "polynomial" +name: "polynomial" +description: "Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1" +tags: ["polynomial", "counter", "y1", "y2", "generate_network", "simulate", "setparameter", "resetconcentrations"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/full_tests/T1-ssprop/polynomial.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/polynomial/polynomial.bngl b/PyBioNetGen/tests/polynomial/polynomial.bngl new file mode 100644 index 00000000..081c347b --- /dev/null +++ b/PyBioNetGen/tests/polynomial/polynomial.bngl @@ -0,0 +1,55 @@ +================================================ +# Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1 + +begin model + + begin parameters + +# Original values used +# (a,b,c,d,e,f,g) = 0.3, 1, 27, 70, 21, 5, 0.8 + + a a__FREE + b b__FREE + c c__FREE + d d__FREE + e e__FREE + f f__FREE + g g__FREE + + end parameters + + begin molecule types + counter() + end molecule types + + begin seed species + # initial conditions + counter() 0 + end seed species + + begin observables + Molecules x counter() + end observables + + begin functions + + y1()=a*x^4-b*x^3+c*x^2-d*x+e + y2()=g*x^4-f*x^3+e*x^2-d*x+c + end functions + + begin reaction rules + 0->counter() 1 + end reaction rules + +end model + +generate_network({overwrite=>1}) +simulate({method=>"ode",t_start=>0,t_end=>10,n_steps=>1000,suffix=>"wt",print_functions=>1}) +# "Mutate" a parameter, and simulate a second time +setParameter("d",27) +resetConcentrations() +simulate({method=>"ode",t_start=>0,t_end=>10,n_steps=>1000,suffix=>"mut",print_functions=>1}) + + + +================================================ diff --git a/PyBioNetGen/tests/polynomial_full_tests_T6-check/README.md b/PyBioNetGen/tests/polynomial_full_tests_T6-check/README.md new file mode 100644 index 00000000..0956e882 --- /dev/null +++ b/PyBioNetGen/tests/polynomial_full_tests_T6-check/README.md @@ -0,0 +1,21 @@ +# polynomial + +Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1 + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- polynomial.bngl + +## Tags + +polynomial, counter, y1, y2, generate_network, simulate, setparameter, resetconcentrations diff --git a/PyBioNetGen/tests/polynomial_full_tests_T6-check/metadata.yaml b/PyBioNetGen/tests/polynomial_full_tests_T6-check/metadata.yaml new file mode 100644 index 00000000..248fddc2 --- /dev/null +++ b/PyBioNetGen/tests/polynomial_full_tests_T6-check/metadata.yaml @@ -0,0 +1,22 @@ +id: "polynomial" +name: "polynomial" +description: "Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1" +tags: ["polynomial", "counter", "y1", "y2", "generate_network", "simulate", "setparameter", "resetconcentrations"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/full_tests/T6-check/polynomial.bngl" +playground: + visible: true + gallery_category: "validation" + featured: false + difficulty: "intermediate" diff --git a/PyBioNetGen/tests/polynomial_full_tests_T6-check/polynomial.bngl b/PyBioNetGen/tests/polynomial_full_tests_T6-check/polynomial.bngl new file mode 100644 index 00000000..77700af7 --- /dev/null +++ b/PyBioNetGen/tests/polynomial_full_tests_T6-check/polynomial.bngl @@ -0,0 +1,53 @@ +================================================ +# Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1 + +begin model + + begin parameters + +# Original values used +# (a,b,c,d,e,f,g) = 0.3, 1, 27, 70, 21, 5, 0.8 + + a 0.3 + b 1 + c 27 + d 70 + e 21 + f 5 + g 0.8 + + end parameters + + begin molecule types + counter() + end molecule types + + begin seed species + # initial conditions + counter() 0 + end seed species + + begin observables + Molecules x counter() + end observables + + begin functions + + y1()=a*x^4-b*x^3+c*x^2-d*x+e + y2()=g*x^4-f*x^3+e*x^2-d*x+c + end functions + + begin reaction rules + 0->counter() 1 + end reaction rules + +end model + +generate_network({overwrite=>1}) +simulate({method=>"ode",t_start=>0,t_end=>10,n_steps=>1000,suffix=>"wt",print_functions=>1}) +# "Mutate" a parameter, and simulate a second time +setParameter("d",27) +resetConcentrations() +simulate({method=>"ode",t_start=>0,t_end=>10,n_steps=>1000,suffix=>"mut",print_functions=>1}) + + diff --git a/PyBioNetGen/tests/receptornf/README.md b/PyBioNetGen/tests/receptornf/README.md new file mode 100644 index 00000000..150cd61b --- /dev/null +++ b/PyBioNetGen/tests/receptornf/README.md @@ -0,0 +1,21 @@ +# receptor nf + +A simple model of ligand/receptor binding and receptor phosphorylation. + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: nf +- Imported from: test-case + +## Files + +- receptor_nf.bngl + +## Tags + +receptor, nf, l, r diff --git a/PyBioNetGen/tests/receptornf/metadata.yaml b/PyBioNetGen/tests/receptornf/metadata.yaml new file mode 100644 index 00000000..257afe50 --- /dev/null +++ b/PyBioNetGen/tests/receptornf/metadata.yaml @@ -0,0 +1,22 @@ +id: "receptor_nf" +name: "receptor nf" +description: "A simple model of ligand/receptor binding and receptor phosphorylation." +tags: ["receptor", "nf", "l", "r"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["nf"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/full_tests/T4-pso-nf/receptor_nf.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/receptornf/receptor_nf.bngl b/PyBioNetGen/tests/receptornf/receptor_nf.bngl new file mode 100644 index 00000000..2f75b9c5 --- /dev/null +++ b/PyBioNetGen/tests/receptornf/receptor_nf.bngl @@ -0,0 +1,181 @@ +================================================ +# A simple model of ligand/receptor binding and receptor phosphorylation. +# + +begin model +begin parameters + # simulation parameters + # fraction of a single cell to be considered in a stochastic simulation + f 0.01 # [=] dimensionless, 0 weak crosslinking + # a value of 1.0 => moderate crosslinking + # a value of 10.0 => strong crosslinking + + # reverse rate constant (derived) + km2 km2__FREE # [=] /s + + # forward rate constant (derived) + kp2=K2RT*km2/EGFR_copy_number # [=] /nM/s + + kp3=kp2*0.2 + + # phosphorylation rate constant + # kphos is specified as being free. It has a matching option in the .conf file. + kphos kphos__FREE # [=] /s + + # dephosphorylation rate constant + # kdephos is specified as being free. It has a matching option in the .conf file. + kdephos kdephos__FREE # [=] /s + +end parameters + + +begin molecule types + # ligand + L(r) + + # receptor + R(l,r,Y~0~P) +end molecule types + +#bound ligand and p + +begin seed species + L(r) 0 + R(l,r,Y~0) EGFR_copy_number +end seed species + +begin observables + + # total number of ligands + Molecules Ltot L() + + # number of free ligands + Species freeL L(r) + + # total number of receptors + Molecules Rtot R() + + # number of bound ligands = Ltot - freeL + + # number of free receptors + #Species freeR R(l,r) + + # number of monomeric (unclustered) receptors + #Species Rmon R==1 + + # number of receptor dimers + Species Rdim R==2 + + # number of ligand-induced receptor aggregates + # = number of receptor clusters + # = number of complexes containing more than 1 receptor + #Species n_agg_gt1 R>1 + + # number of ligand-receptor bonds + # = number of ligand-occupied receptor sites + # = number of receptor-occupied ligand sites + Molecules RLbonds L(r!1).R(l!1) # = R(l!+) = L(r!+) + + # number of receptors in clusters = Rtot - R1 + + # average size of a receptor cluster (of size >1) + # = (# of receptors in clusters)/n_agg_gt1 + # = (Rtot - R1)/n_agg_gt1 + + # number of phosphorylated receptors + Molecules pR R(Y~P) + +end observables + +begin reaction rules + + # ligand capture + # a free ligand binds a receptor with a free site + L(r)+R(l)<->L(r!1).R(l!1) kp1,km1 + + # receptor dimerization + R(l!+,r)+R(l!+,r)->R(l!+,r!1).R(l!+,r!1) kp2 + + # receptor-receptor bond dissociation + R(r!1).R(r!1)->R(r)+R(r) km2 + + # receptor dimerization (no ligand) + R(l,r) + R(l,r) -> R(l,r!1).R(l,r!1) kp3 + + # dimer-mediated receptor phosphorylation + R(r!+,Y~0)->R(r!+,Y~P) kphos + + # dephosphorylation + R(Y~P)->R(Y~0) kdephos + +end reaction rules + + +end model + +begin actions +# actions + +# Simulate for 600 seconds to reach equilibrium +simulate({method=>"nf",t_start=>0,t_end=>600,n_steps=>1,suffix=>"equil",get_final_state=>1}) + +# Add ligand +setConcentration("L(r)","EGF_copy_number") + +# Simulate for 60 seconds. This simulation output is fit to the data in receptor_nf.exp +simulate({method=>"nf",t_start=>0,t_end=>60,n_steps=>12,suffix=>"receptor_nf",get_final_state=>0}) +end actions + + + +================================================ diff --git a/PyBioNetGen/tests/simplenfseed/README.md b/PyBioNetGen/tests/simplenfseed/README.md new file mode 100644 index 00000000..9deea330 --- /dev/null +++ b/PyBioNetGen/tests/simplenfseed/README.md @@ -0,0 +1,21 @@ +# simple nf seed + +BioNetGen model: simple nf seed + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: nf +- Imported from: test-case + +## Files + +- simple_nf_seed.bngl + +## Tags + +simple, nf, seed, a, b, function1, simulate diff --git a/PyBioNetGen/tests/simplenfseed/metadata.yaml b/PyBioNetGen/tests/simplenfseed/metadata.yaml new file mode 100644 index 00000000..4ec7b9b0 --- /dev/null +++ b/PyBioNetGen/tests/simplenfseed/metadata.yaml @@ -0,0 +1,22 @@ +id: "simple_nf_seed" +name: "simple nf seed" +description: "BioNetGen model: simple nf seed" +tags: ["simple", "nf", "seed", "a", "b", "function1", "simulate"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["nf"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/bngl_files/errors/simple_nf_seed.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/simplenfseed/simple_nf_seed.bngl b/PyBioNetGen/tests/simplenfseed/simple_nf_seed.bngl new file mode 100644 index 00000000..10b00e4e --- /dev/null +++ b/PyBioNetGen/tests/simplenfseed/simple_nf_seed.bngl @@ -0,0 +1,48 @@ +================================================ +begin model + + begin parameters + + v1 v1__FREE + + end parameters + + begin molecule types + A() + B() + end molecule types + + begin seed species + # initial conditions + A() 500 + B() 500 + end seed species + + begin observables + Molecules a A() + Molecules b B() + end observables + + begin functions + + function1()=v1*2 + + end functions + + begin reaction rules + A()<->B() function1,2 + end reaction rules + +end model + +begin actions + # generate_network({overwrite=>1}) + simulate({method=>"nf",t_start=>0,t_end=>20,n_steps=>20,suffix=>"nf1",seed=>42,print_functions=>1}) + +end actions + + + + + +================================================ diff --git a/PyBioNetGen/tests/trivial/README.md b/PyBioNetGen/tests/trivial/README.md new file mode 100644 index 00000000..ec61204f --- /dev/null +++ b/PyBioNetGen/tests/trivial/README.md @@ -0,0 +1,21 @@ +# trivial + +A trivial model file for testing MCMC distributions. + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: test-case + +## Files + +- trivial.bngl + +## Tags + +trivial, q, r, output, generate_network, simulate diff --git a/PyBioNetGen/tests/trivial/metadata.yaml b/PyBioNetGen/tests/trivial/metadata.yaml new file mode 100644 index 00000000..e533f071 --- /dev/null +++ b/PyBioNetGen/tests/trivial/metadata.yaml @@ -0,0 +1,22 @@ +id: "trivial" +name: "trivial" +description: "A trivial model file for testing MCMC distributions." +tags: ["trivial", "q", "r", "output", "generate_network", "simulate"] +category: "validation" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "test-case" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/PyBNG/tests/full_tests/T5-pt-trivial/trivial.bngl" +playground: + visible: false + gallery_category: "validation" + featured: false + difficulty: "advanced" diff --git a/PyBioNetGen/tests/trivial/trivial.bngl b/PyBioNetGen/tests/trivial/trivial.bngl new file mode 100644 index 00000000..38ae7165 --- /dev/null +++ b/PyBioNetGen/tests/trivial/trivial.bngl @@ -0,0 +1,59 @@ +================================================ +# A trivial model file for testing MCMC distributions. +# Ignores parameters a and b; outputs the value of parameter c. + +# And has one pointless reaction defined just to be sure BNG is acting normally + +begin model + + +begin parameters + +a a__FREE +b b__FREE +c c__FREE + +end parameters + +begin molecule types + +Q() +R() + +end molecule types + +begin seed species +Q() 100 +end seed species + +begin observables + +Molecules Q Q() + +end observables + +begin functions + +output()=c + +end functions + +begin reaction rules +Q() -> R() 1 + +end reaction rules + +end model + +begin actions + +generate_network({overwrite=>1}) + +simulate({method=>"ode",t_start=>0,t_end=>1,n_steps=>1,\ + suffix=>"data",print_functions=>1}) + +end actions + + + +================================================ diff --git a/Tutorials/General/chemistry/README.md b/Tutorials/General/chemistry/README.md new file mode 100644 index 00000000..b07831b1 --- /dev/null +++ b/Tutorials/General/chemistry/README.md @@ -0,0 +1,21 @@ +# chemistry + +Basic chemical reactions + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- chemistry.bngl + +## Tags + +published, tutorials, chemistry, a, b, c, d, e diff --git a/Tutorials/General/chemistry/chemistry.bngl b/Tutorials/General/chemistry/chemistry.bngl new file mode 100644 index 00000000..ddfab7b7 --- /dev/null +++ b/Tutorials/General/chemistry/chemistry.bngl @@ -0,0 +1,57 @@ +begin parameters +A_init 100 +B_init 100 +C_init 0 +D_init 0 +E_tot 100 +kp 1 +km 1 +end parameters + +begin molecules +A(e) +B(e) +C(e) +D(e) +E(ac,bd) +end molecules + +begin species +A(e) A_init +B(e) B_init +C(e) C_init +D(e) D_init +E(ac,bd) E_tot +end species + +begin reaction rules +1 E(ac) + A(e) -> E(ac!1).A(e!1) kp #s1,s4,s13 +2 E(bd) + B(e) -> E(bd!1).B(e!1) kp #s2,s3,s11 + +3 E(ac!1,bd!2).A(e!1).B(e!2) -> E(ac!1,bd!2).C(e!1).D(e!2) kp + +4 E(ac!1).C(e!1) -> E(ac) + C(e) km \ +exclude_reactants(1,B) +#s6,s8 +5 E(bd!1).D(e!1) -> E(bd) + D(e) km \ +exclude_reactants(1,A) +#s7,s9 + +6 E(ac,bd!1).B(e!1) + C(e) -> E(ac!2,bd!1).B(e!1).C(e!2) kp #s10 +7 E(ac!1,bd).A(e!1) + D(e) -> E(ac!1,bd!2).A(e!1).D(e!2) kp #s12 +end reaction rules + +begin observables + +E_tot E +A_tot A +B_tot B +C_tot C +D_tot D + +end observables + +generate_network({overwrite=>1}); + +writeSBML({suffix=>"kinetics"}); +#simulate_ode({suffix=>"kinetics",t_end=>10,n_steps=>100,atol=>1e-10,rtol=>1e-8}); \ No newline at end of file diff --git a/Tutorials/General/chemistry/metadata.yaml b/Tutorials/General/chemistry/metadata.yaml new file mode 100644 index 00000000..7b639a59 --- /dev/null +++ b/Tutorials/General/chemistry/metadata.yaml @@ -0,0 +1,22 @@ +id: "chemistry" +name: "chemistry" +description: "Basic chemical reactions" +tags: ["published", "tutorials", "chemistry", "a", "b", "c", "d", "e"] +category: "tutorial" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/tutorials/chemistry.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/General/polymer/README.md b/Tutorials/General/polymer/README.md new file mode 100644 index 00000000..d77549c5 --- /dev/null +++ b/Tutorials/General/polymer/README.md @@ -0,0 +1,21 @@ +# polymer + +Polymerization model + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: nf +- Imported from: tutorial + +## Files + +- polymer.bngl + +## Tags + +published, tutorials, nfsim, polymer, a, b, c, simulate_nf diff --git a/Tutorials/General/polymer/metadata.yaml b/Tutorials/General/polymer/metadata.yaml new file mode 100644 index 00000000..9e985a7b --- /dev/null +++ b/Tutorials/General/polymer/metadata.yaml @@ -0,0 +1,22 @@ +id: "polymer" +name: "polymer" +description: "Polymerization model" +tags: ["published", "tutorials", "nfsim", "polymer", "a", "b", "c", "simulate_nf"] +category: "tutorial" +compatibility: + bng2_compatible: false + simulation_methods: ["nf"] + uses_compartments: true + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/tutorials/polymer.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/General/polymer/polymer.bngl b/Tutorials/General/polymer/polymer.bngl new file mode 100644 index 00000000..2f890f56 --- /dev/null +++ b/Tutorials/General/polymer/polymer.bngl @@ -0,0 +1,60 @@ +begin model + +begin compartments +c0 3 1 +end compartments + +begin parameters +end parameters + +begin molecule types +A(b1,b2,c) +B(a1,a2,a3,c) +C(b1,b2,a1,a2,a3) +end molecule types + +begin seed species +1 @c0:A(b1,b2,c) 300.0 +2 @c0:B(a1,a2,a3,c) 200.0 +3 @c0:C(b1,b2,a1,a2,a3) 100.0 +end seed species + +begin observables +Molecules O0 @c0:A(b1!+,b2!+,c!+) +Molecules perfectmachine @c0:A(b1!+,b2!+,c!+).A(b1!+,b2!+,c!+).A(b1!+,b2!+,c!+).B(a1!+,a2!+,a3!+,c!+).B(a1!+,a2!+,a3!+,c!+).C(b1!+,b2!+,a1!+,a2!+,a3!+) +Species Agreaterthan10 @c0:A()>10 +Species Agreaterthan3 @c0:A()>3 +Species Agreaterthan100 @c0:A()>100 +end observables + +begin functions +end functions + +begin reaction rules +AB: @c0:A(b1) + @c0:B(a1) <-> @c0:A(b1!1).B(a1!1) 100.0, 0.1 +AB_0: @c0:A(b1) + @c0:B(a2) <-> @c0:A(b1!1).B(a2!1) 100.0, 0.1 +AB_1: @c0:A(b1) + @c0:B(a3) <-> @c0:A(b1!1).B(a3!1) 100.0, 0.1 +AB_2: @c0:A(b2) + @c0:B(a1) <-> @c0:A(b2!1).B(a1!1) 100.0, 0.1 +AB_3: @c0:A(b2) + @c0:B(a2) <-> @c0:A(b2!1).B(a2!1) 100.0, 0.1 +AB_4: @c0:A(b2) + @c0:B(a3) <-> @c0:A(b2!1).B(a3!1) 100.0, 0.1 +AC: @c0:A(c) + @c0:C(a1) <-> @c0:A(c!1).C(a1!1) 100.0, 0.1 +AC_0: @c0:A(c) + @c0:C(a2) <-> @c0:A(c!1).C(a2!1) 100.0, 0.1 +AC_1: @c0:A(c) + @c0:C(a3) <-> @c0:A(c!1).C(a3!1) 100.0, 0.1 +BC: @c0:B(c) + @c0:C(b1) <-> @c0:B(c!1).C(b1!1) 100.0, 0.1 +BC_0: @c0:B(c) + @c0:C(b2) <-> @c0:B(c!1).C(b2!1) 100.0, 0.1 +AB_bound: @c0:A(b1).B(a1) <-> @c0:A(b1!1).B(a1!1) 100.0, 0.1 +AB_0_bound: @c0:A(b1).B(a2) <-> @c0:A(b1!1).B(a2!1) 100.0, 0.1 +AB_1_bound: @c0:A(b1).B(a3) <-> @c0:A(b1!1).B(a3!1) 100.0, 0.1 +AB_2_bound: @c0:A(b2).B(a1) <-> @c0:A(b2!1).B(a1!1) 100.0, 0.1 +AB_3_bound: @c0:A(b2).B(a2) <-> @c0:A(b2!1).B(a2!1) 100.0, 0.1 +AB_4_bound: @c0:A(b2).B(a3) <-> @c0:A(b2!1).B(a3!1) 100.0, 0.1 +AC_bound: @c0:A(c).C(a1) <-> @c0:A(c!1).C(a1!1) 100.0, 0.1 +AC_0_bound: @c0:A(c).C(a2) <-> @c0:A(c!1).C(a2!1) 100.0, 0.1 +AC_1_bound: @c0:A(c).C(a3) <-> @c0:A(c!1).C(a3!1) 100.0, 0.1 +BC_bound: @c0:B(c).C(b1) <-> @c0:B(c!1).C(b1!1) 100.0, 0.1 +BC_0_bound: @c0:B(c).C(b2) <-> @c0:B(c!1).C(b2!1) 100.0, 0.1 +end reaction rules + +end model + +simulate_nf({t_end=>1.0,n_steps=>20}) \ No newline at end of file diff --git a/Tutorials/General/polymerdraft/README.md b/Tutorials/General/polymerdraft/README.md new file mode 100644 index 00000000..930a37aa --- /dev/null +++ b/Tutorials/General/polymerdraft/README.md @@ -0,0 +1,21 @@ +# polymer draft + +Polymerization (draft) + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: nf +- Imported from: tutorial + +## Files + +- polymer_draft.bngl + +## Tags + +published, tutorials, nfsim, polymer, draft, a, b, c, simulate_nf diff --git a/Tutorials/General/polymerdraft/metadata.yaml b/Tutorials/General/polymerdraft/metadata.yaml new file mode 100644 index 00000000..1f957b06 --- /dev/null +++ b/Tutorials/General/polymerdraft/metadata.yaml @@ -0,0 +1,22 @@ +id: "polymer_draft" +name: "polymer draft" +description: "Polymerization (draft)" +tags: ["published", "tutorials", "nfsim", "polymer", "draft", "a", "b", "c", "simulate_nf"] +category: "tutorial" +compatibility: + bng2_compatible: false + simulation_methods: ["nf"] + uses_compartments: true + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/tutorials/polymer_draft.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/General/polymerdraft/polymer_draft.bngl b/Tutorials/General/polymerdraft/polymer_draft.bngl new file mode 100644 index 00000000..45f7fa1d --- /dev/null +++ b/Tutorials/General/polymerdraft/polymer_draft.bngl @@ -0,0 +1,60 @@ +begin model + +begin compartments +c0 3 1 +end compartments + +begin parameters +end parameters + +begin molecule types +A(b1,b2,c) +B(a1,a2,a3,c) +C(b1,b2,a1,a2,a3) +end molecule types + +begin seed species +1 @c0:A(b1,b2,c) 300.0 +2 @c0:B(a1,a2,a3,c) 200.0 +3 @c0:C(b1,b2,a1,a2,a3) 100.0 +end seed species + +begin observables +Molecules O0 @c0:A(b1!+,b2!+,c!+) +Molecules perfectmachine @c0:A(b1!+,b2!+,c!+).A(b1!+,b2!+,c!+).A(b1!+,b2!+,c!+).B(a1!+,a2!+,a3!+,c!+).B(a1!+,a2!+,a3!+,c!+).C(b1!+,b2!+,a1!+,a2!+,a3!+) +Species Agreaterthan10 @c0:A()>10 +Species Agreaterthan3 @c0:A()>3 +Species Agreaterthan100 @c0:A()>100 +end observables + +# begin functions +# end functions + +begin reaction rules +AB: @c0:A(b1,b2!+) + @c0:B(a1) <-> @c0:A(b1!1,b2!+).B(a1!1) 100.0, 0.1 +AB_0: @c0:A(b1) + @c0:B(a2) <-> @c0:A(b1!1).B(a2!1) 100.0, 0.1 +AB_1: @c0:A(b1) + @c0:B(a3) <-> @c0:A(b1!1).B(a3!1) 100.0, 0.1 +AB_2: @c0:A(b2) + @c0:B(a1) <-> @c0:A(b2!1).B(a1!1) 100.0, 0.1 +AB_3: @c0:A(b2) + @c0:B(a2) <-> @c0:A(b2!1).B(a2!1) 100.0, 0.1 +AB_4: @c0:A(b2) + @c0:B(a3) <-> @c0:A(b2!1).B(a3!1) 100.0, 0.1 +AC: @c0:A(c) + @c0:C(a1) <-> @c0:A(c!1).C(a1!1) 100.0, 0.1 +AC_0: @c0:A(c) + @c0:C(a2) <-> @c0:A(c!1).C(a2!1) 100.0, 0.1 +AC_1: @c0:A(c) + @c0:C(a3) <-> @c0:A(c!1).C(a3!1) 100.0, 0.1 +BC: @c0:B(c) + @c0:C(b1) <-> @c0:B(c!1).C(b1!1) 100.0, 0.1 +BC_0: @c0:B(c) + @c0:C(b2) <-> @c0:B(c!1).C(b2!1) 100.0, 0.1 +AB_bound: @c0:A(b1).B(a1) <-> @c0:A(b1!1).B(a1!1) 100.0, 0.1 +AB_0_bound: @c0:A(b1).B(a2) <-> @c0:A(b1!1).B(a2!1) 100.0, 0.1 +AB_1_bound: @c0:A(b1).B(a3) <-> @c0:A(b1!1).B(a3!1) 100.0, 0.1 +AB_2_bound: @c0:A(b2).B(a1) <-> @c0:A(b2!1).B(a1!1) 100.0, 0.1 +AB_3_bound: @c0:A(b2).B(a2) <-> @c0:A(b2!1).B(a2!1) 100.0, 0.1 +AB_4_bound: @c0:A(b2).B(a3) <-> @c0:A(b2!1).B(a3!1) 100.0, 0.1 +AC_bound: @c0:A(c).C(a1) <-> @c0:A(c!1).C(a1!1) 100.0, 0.1 +AC_0_bound: @c0:A(c).C(a2) <-> @c0:A(c!1).C(a2!1) 100.0, 0.1 +AC_1_bound: @c0:A(c).C(a3) <-> @c0:A(c!1).C(a3!1) 100.0, 0.1 +BC_bound: @c0:B(c).C(b1) <-> @c0:B(c!1).C(b1!1) 100.0, 0.1 +BC_0_bound: @c0:B(c).C(b2) <-> @c0:B(c!1).C(b2!1) 100.0, 0.1 +end reaction rules + +end model + +simulate_nf({t_end=>1.0,n_steps=>20}) \ No newline at end of file diff --git a/Tutorials/General/quasiequilibrium/README.md b/Tutorials/General/quasiequilibrium/README.md new file mode 100644 index 00000000..b22005ab --- /dev/null +++ b/Tutorials/General/quasiequilibrium/README.md @@ -0,0 +1,21 @@ +# quasi equilibrium + +Quasi-equilibrium approximation + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- quasi_equilibrium.bngl + +## Tags + +published, toy models, quasi, equilibrium, a, b, c diff --git a/Tutorials/General/quasiequilibrium/metadata.yaml b/Tutorials/General/quasiequilibrium/metadata.yaml new file mode 100644 index 00000000..eb2aa3a7 --- /dev/null +++ b/Tutorials/General/quasiequilibrium/metadata.yaml @@ -0,0 +1,22 @@ +id: "quasi_equilibrium" +name: "quasi equilibrium" +description: "Quasi-equilibrium approximation" +tags: ["published", "toy models", "quasi", "equilibrium", "a", "b", "c"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/toy-models/quasi_equilibrium.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/General/quasiequilibrium/quasi_equilibrium.bngl b/Tutorials/General/quasiequilibrium/quasi_equilibrium.bngl new file mode 100644 index 00000000..ac94132b --- /dev/null +++ b/Tutorials/General/quasiequilibrium/quasi_equilibrium.bngl @@ -0,0 +1,57 @@ + +# quasi_equilibrium.bngl +# +# A minimal three-species model demonstrating the quasi-equilibrium approximation. +# Species A and B rapidly equilibrate while B slowly converts to C irreversibly. +# When the equilibration timescale (1/k_plus, 1/k_minus) is much faster than the +# conversion timescale (1/r), B_st/A_st ≈ K = k_plus/k_minus holds throughout, +# and the system can be reduced to an effective two-variable model. +# +# Increasing r breaks this approximation as conversion competes with equilibration. + +begin model + +begin parameters + A0 1 # Initial concentration of A + k_plus 10 # Forward rate A -> B (fast) + k_minus 10 # Reverse rate B -> A (fast) + r 0.01 # Conversion rate B -> C (slow) + # Increase this rate to break quasi-equilibrium + + # Equilibrium constant + K k_plus/k_minus # = 1 for these parameters +end parameters + +begin molecule types + A() + B() + C() +end molecule types + +begin seed species + A() A0 + B() 0 + C() 0 +end seed species + +begin observables + Molecules A_conc A() + Molecules B_conc B() + Molecules C_conc C() +end observables + +begin reaction rules + # Rapid equilibration between A and B + A() <-> B() k_plus, k_minus + + # Slow irreversible conversion of B to C + B() -> C() r +end reaction rules + +end model + +# Simulation commands +generate_network({overwrite=>1}) + +# Simulate with ODE - time in units of 1/k_minus +simulate({method=>"ode", t_end=>25, n_steps=>500, print_functions=>1}) diff --git a/Tutorials/General/simple/README.md b/Tutorials/General/simple/README.md new file mode 100644 index 00000000..7d2cff82 --- /dev/null +++ b/Tutorials/General/simple/README.md @@ -0,0 +1,21 @@ +# simple + +Simple binding model + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- simple.bngl + +## Tags + +published, tutorials, simple, s, t, dnat, trash diff --git a/Tutorials/General/simple/metadata.yaml b/Tutorials/General/simple/metadata.yaml new file mode 100644 index 00000000..0d75d977 --- /dev/null +++ b/Tutorials/General/simple/metadata.yaml @@ -0,0 +1,22 @@ +id: "simple" +name: "simple" +description: "Simple binding model" +tags: ["published", "tutorials", "simple", "s", "t", "dnat", "trash"] +category: "tutorial" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/tutorials/simple.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/General/simple/simple.bngl b/Tutorials/General/simple/simple.bngl new file mode 100644 index 00000000..c2cc6de7 --- /dev/null +++ b/Tutorials/General/simple/simple.bngl @@ -0,0 +1,107 @@ +## BNGL simple model -- demonstrate core BNG features +## To download and install BNG: +## 1) go to http://bionetgen.org +## 2) follow instructions under "Getting Started" +## +## Execute model from console: [path_to_BNG]/Perl2/BNG2.pl simple.bngl +## Plot observable trajectories: java -jar [path_to_BNG]/PhiBPlot/PhiBPlot.jar simple_ode.gdat +## +## OUTPUT files for ODE simulation (analogous file created for SSA simulation): +## simple.net : species reaction network file. +## simple_ode.cdat : ODE simulation state trajectory. +## simple_ode.gdat : ODE simulation observables trajectory (units of molecules/simcell). +## simple_ode_end.net : network file set to end-of-simulation concentrations. + +begin model +begin parameters + + NA 6.02e23 # Avogadro's number (molecules/mole) + f 0.01 # fraction of cell to simulate + V 3e-12*f # cytoplasmic volume of cell simulation (liters) + + # Initial molecule counts. + # multiply concentration by (V*NA) to convert M to molecules/cell + seed_S 1e-7 * V*NA # concentration(M) * simulation volume * NA + seed_SS 1e-8 * V*NA + seed_T 3e-7 * V*NA + + # Reaction kinetic parameters. + # divide bimolecular rate constants by (NA*V) to convert /M/sec to /(molecule/cell)/sec + k_bind_SS 3e6/(NA*V) # 2nd order rxn units: /(molecule/cell)/sec + k_unbind_SS 0.1 # 1st order rxn units: /sec + k_bind_ST 3e6/(NA*V) + k_unbind_ST 0.2 + k_phosY 1.0 + k_unphosY 0.5 + k_synthT 2.71 + k_degradeT 1e-3 + +end parameters +begin molecule types # define molecules present in the simulation + + S(s,t,tyr~Y~pY) # protein with two binding sites and a phosphorable tyrosine. + T(s) # protein with one binding site. + dnaT() # gene which codes protein T. + Trash() # a place to put degraded molecules. + +end molecule types +begin seed species # initial conditions + + S(s,t,tyr~Y) seed_S # seed a molecule. + S(s!1,t,tyr~Y).S(s!1,t,tyr~Y) seed_SS # seed a species complex. + T(s) seed_T + dnaT() 2 # two copies of gene. + $Trash() 1 # prefix "$" to hold species concentration constant. + +end seed species +begin observables # model outputs + + Molecules S_free S(s) # count instances of S not bound to another S. + Species SS_dimer S(s!1).S(s!1) # count species containing an SS dimer. + Molecules ST_instance S(t!1).T(s!1) # count all instances of S bound to T. + Species ST_species S(t!1).T(s!1) # count species containing S bound to T. + Molecules tyrP S(tyr~pY) # count all instances of phosphorylated Tyrosine. + +end observables +begin reaction rules + + # S dimerization (reversible) with forward/reverse rate constants + S(s) + S(s) <-> S(s!1).S(s!1) k_bind_SS, k_unbind_SS + + # S-T binding (reversible) + S(t) + T(s) <-> S(t!1).T(s!1) k_bind_ST, k_unbind_ST + + # tyrosine phosphorylation in context of S-dimers (one way reaction) + S(s!+,tyr~Y) -> S(s!+,tyr~pY) k_phosY + + # tyrosine de-phosphorylation, no context. (one way reaction) + S(tyr~pY) -> S(tyr~Y) k_unphosY + + # synthesize and degrade T (no modeling of mRNA intermediate) + dnaT() -> dnaT() + T(s) k_synthT + T() -> Trash() k_degradeT DeleteMolecules + # NOTE: DeleteMolecules keyword instructs BNG + # to delete T, not the complex which contains T. +end reaction rules +end model + +## model ACTIONS + +# generate network of all species and reactions +# with restrictions on iterations and complex size (aggregation) +generate_network({overwrite=>1,max_iter=>12,max_agg=>12}); + +# Run an ODE simulation. Results saved to files with prefix: "simple_ode" +saveConcentrations(); # Save concentrations (in memory) for later use. +simulate_ode({suffix=>ode,t_start=>0,t_end=>12,n_steps=>120}); + +# Run a stochastic simulation (Gillespie SSA) with new concentrations/parameters. +# Results saved to files with prefix: "simple_ssa": +# resetConcentrations(); # reset concentrations to last saved values. +# simulate_ssa({suffix=>ssa,t_start=>0,t_end=>12,n_steps=>120}); + +# additional actions: +# writeLatex(); # Output equations in Latex format. +# writeMfile(); # Output equations as a Matlab m-file. +# setConcentration("T(s)",0.0); # Set species concentration: SetConcentration("species","value") +# setParameter("k_bind_SS",2.0); # Set a parameter: setParameter("param",value") \ No newline at end of file diff --git a/Tutorials/General/toy1/README.md b/Tutorials/General/toy1/README.md new file mode 100644 index 00000000..a1f6d913 --- /dev/null +++ b/Tutorials/General/toy1/README.md @@ -0,0 +1,21 @@ +# toy1 + +Basic signaling toy + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- toy1.bngl + +## Tags + +published, tutorials, toy1, l, r, a, generate_network, writesbml, simulate_ode diff --git a/Tutorials/General/toy1/metadata.yaml b/Tutorials/General/toy1/metadata.yaml new file mode 100644 index 00000000..eb5b533a --- /dev/null +++ b/Tutorials/General/toy1/metadata.yaml @@ -0,0 +1,22 @@ +id: "toy1" +name: "toy1" +description: "Basic signaling toy" +tags: ["published", "tutorials", "toy1", "l", "r", "a", "generate_network", "writesbml", "simulate_ode"] +category: "tutorial" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/tutorials/toy1.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/General/toy1/toy1.bngl b/Tutorials/General/toy1/toy1.bngl new file mode 100644 index 00000000..319d3e84 --- /dev/null +++ b/Tutorials/General/toy1/toy1.bngl @@ -0,0 +1,98 @@ +# All text following the occurence of '#' character in a line is ignored. + +# The model consists of a monovalent extracellular ligand, +# a monovalent cell-surface receptor kinase, and a cytosolic adapter +# protein. The receptor dimerizes through a receptor-receptor +# interaction that depends on ligand binding. When two receptors +# are juxtaposed through dimerization one of the receptor kinases +# can transphosphorylate the second receptor kinase. +# Apapter protein A can bind to phosphorylated receptor tyrosine. + + +begin parameters + 1 L0 1 + 2 R0 1 + 3 A0 5 + 4 kp1 0.5 + 5 km1 0.1 + 6 kp2 1.1 + 7 km2 0.1 + 8 p1 10 + 9 d1 5 + 10 kpA 1e1 + 11 kmA 0.02 +end parameters + +begin molecules +L(r) +R(l,d,Y~U~P) +A(SH2) +end molecules + +begin species + 1 L(r) L0 # Ligand has one site for binding to receptor. + # L0 is initial concentration + 2 R(l,d,Y~U) R0 # Dimer has three sites: l for binding to a ligand, + # d for binding to another receptor, and + # Y - tyrosine. Initially Y is unphosphorylated, Y~U. + 3 A(SH2) A0 # A has a single SH2 domain that binds phosphotyrosine +end species + + +begin reaction rules + +# Ligand binding (L+R) +# Note: specifying r in R here means that the r component must not +# be bound. This prevents dissociation of ligand from R +# when R is in a dimer. + 1 L(r) + R(l,d) <-> L(r!1).R(l!1,d) kp1, km1 + +# Aggregation (R-L + R-L) +# Note: R must be bound to ligand to dimerize. + 2 R(l!+,d) + R(l!+,d) <-> R(l!+,d!2).R(l!+,d!2) kp2, km2 + +# Transphosphorylation +# Note: R must be bound to another R to be transphosphorylated. + 3 R(d!+,Y~U) -> R(d!+,Y~P) p1 + +# Dephosphorylation +# Note: R can be in any complex, but tyrosine is not protected by bound A. + 4 R(Y~P) -> R(Y~U) d1 + +# Adaptor binding phosphotyrosine (reversible). +# Note: Doesn't depend on whether R is bound to +# receptor, i.e. binding rate is same whether R is a monomer, is +# in association with a ligand, in a dimer, or in a complex. + + 5 R(Y~P) + A(SH2) <-> R(Y~P!1).A(SH2!1) kpA, kmA +end reaction rules + +begin observables + + Molecules R_dim R(d!+) # All receptors in dimer + + Molecules R_t1 R(Y~P!?) # Total of all phosphotyrosines + Molecules R_t2 R(Y~P!+) # Total of all phosphotyrosines + Molecules R_t3 R(Y~P!-) # Total of all phosphotyrosines + Molecules R_t3a R(Y~P) # Total of all phosphotyrosines + + Molecules R_t1 R(Y!?) # Total of all phosphotyrosines + Molecules R_t2 R(Y!+) # Total of all phosphotyrosines + Molecules R_t3 R(Y!-) # Total of all phosphotyrosines + Molecules R_t3a R(Y) # Total of all phosphotyrosines + +Molecules R_t3 R() # Total of all phosphotyrosines + + Molecules A_R A(SH2!1).R(Y~P!1) # Total of all A's associated with phosphotyrosines + Molecules A_tot A() # Total of A. Should be a constant during simulation. + Molecules R_tot R() # Total of R. Should be a constant during simulation. + Molecules L_tot L() # Total of L. Should be a constant during simulation. +end observables + + +generate_network(); +writeSBML(); +simulate_ode({t_end=>50,n_steps=>20}); + +# Print concentratons at unevenly spaced times (array-valued parameter) +#simulate_ode({sample_times=>[1,10,100]}); \ No newline at end of file diff --git a/Tutorials/General/toy2/README.md b/Tutorials/General/toy2/README.md new file mode 100644 index 00000000..9fc59234 --- /dev/null +++ b/Tutorials/General/toy2/README.md @@ -0,0 +1,21 @@ +# toy2 + +Enzymatic reaction toy + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- toy2.bngl + +## Tags + +published, tutorials, toy2, l, r, a, k diff --git a/Tutorials/General/toy2/metadata.yaml b/Tutorials/General/toy2/metadata.yaml new file mode 100644 index 00000000..1436eed9 --- /dev/null +++ b/Tutorials/General/toy2/metadata.yaml @@ -0,0 +1,22 @@ +id: "toy2" +name: "toy2" +description: "Enzymatic reaction toy" +tags: ["published", "tutorials", "toy2", "l", "r", "a", "k"] +category: "tutorial" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/tutorials/toy2.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/General/toy2/toy2.bngl b/Tutorials/General/toy2/toy2.bngl new file mode 100644 index 00000000..20cc4991 --- /dev/null +++ b/Tutorials/General/toy2/toy2.bngl @@ -0,0 +1,123 @@ +# This is a test model. A modeler is encouraged to play with this model by changing the file +# and seing the differences. This model can serve as a template for any model. + +# The model consists of a monovalent extracellular ligand, +# a monovalent cell-surface receptor, a bivalent cytosolic adapter protein, +# and a cytosolic kinase. The receptor dimerizes through a +# receptor-receptor interaction that depends on ligand binding. +# The adapter binds the receptor and the kinase. +# When two kinases are juxtaposed through binding to +# receptor-associated adapter proteins, one of the kinases can +# transphosphorylate the second kinase. + +begin parameters +L_tot 1 +R_tot 1 +A_tot 1 +K_tot 1 + +kpL 0.1 +kmL 0.1 +kpD 1.0 +kmD 0.1 +kpA 0.1 +kmA 0.1 +kpK 0.1 +kmK 0.1 +pK 1 +pKs 10 +dM 1 +dC 10 +end parameters + +begin molecules +L(r) +R(l,r,a) +A(r,k) +K(a,Y~U~P) +end molecules + +begin species +L(r) 0 # Set to zero for equilibration +# r binds to l of R + +R(l,r,a) R_tot +# l binds to r of L +# r binds to r of R + +A(r,k) A_tot +# r binds to a of R +# k binds to a of K + +K(a,Y~U) K_tot +# a binds to k of A +# Y is phosphorylation site that is either unphosphorylated (U) or +# phosphorylated (P) + +Null 0 +end species + +begin reaction rules +# Ligand binding (L+R) +# Note: specifying r in R here means that the r component must not +# be bound. This prevents dissociation of ligand from R +# when R is in a dimer. +1 L(r) + R(l,r) <-> L(r!1).R(l!1,r) kpL kmL + +# Aggregation (R+R) +# Note: R must be bound to ligand to dimerize. +2 L(r!1).R(l!1,r) + L(r!2).R(l!2,r) <-> L(r!1).R(l!1,r!3).L(r!2).R(l!2,r!3) kpD,kmD + +# Receptor binding to adaptor (R+A) +# Note: A and R can bind independent of whether A is bound to K or +# whether R is in a dimer. +3 A(r) + R(a) <-> A(r!1).R(a!1) kpA,kmA + +# Adaptor binding kinase +# Note: Doesn't depend on phosphorylation state of K or whether A is bound to +# receptor, i.e. binding rate is same whether A is on membrane (bound to +# R) or in cytosol. +4 A(k) + K(a) <-> A(k!1).K(a!1) kpK,kmK + +# Kinase transphosphorylation by inactive kinase +# Note: Rule doesn't specify how two K's are associated +5 K(Y~U).K(Y~U) -> K(Y~U).K(Y~P) pK + +# Kinase transphosphorylation by active kinase +# Note: Rule doesn't specify how two K's are associated +6 K(Y~P).K(Y~U) -> K(Y~P).K(Y~P) pKs + +# Dephosphorylation of kinase in membrane complex +7 R(a!1).A(r!1,k!2).K(a!2,Y~P) -> R(a!1).A(r!1,k!2).K(a!2,Y~U) dM + +# Dephosphorylation of kinase in cytosol +8 K(a,Y~P) -> K(a,Y~U) dC + +end reaction rules + +begin observables + Molecules RecDim R.R + Molecules Rec_A R(a!1).A(r!1) + Molecules Rec_K R(a!1).A(r!1,k!2).K(a!2) + Molecules Rec_Kp R(a!1).A(r!1,k!2).K(a!2,Y~P) + Molecules RecDim_Kp R.R(a!1).A(r!1,k!2).K(a!2,Y~P) + Molecules L_tot L + Molecules A_tot A + Molecules K_tot K + Molecules R_tot R +end observables + + +generate_network({overwrite=>1}); + +# Equilibration +simulate_ode({suffix=>"equil",t_end=>1000,n_steps=>10,atol=>1e-10,rtol=>1e-8,sparse=>1,steady_state=>1}); + +# Kinetics +setConcentration("L(r)","L_tot"); +writeSBML({suffix=>"kinetics"}); +simulate_ode({suffix=>"kinetics",t_end=>120,n_steps=>120,atol=>1e-10,rtol=>1e-8}); + +# Modified Kinetics, starts from end point of previous simulate_ode command +setParameter("pKs",0); +simulate_ode({suffix=>"kinetics2",t_end=>100,n_steps=>10,atol=>1e-10,rtol=>1e-8}); \ No newline at end of file diff --git a/Tutorials/NativeTutorials/AB/AB.bngl b/Tutorials/NativeTutorials/AB/AB.bngl new file mode 100644 index 00000000..992e1c0d --- /dev/null +++ b/Tutorials/NativeTutorials/AB/AB.bngl @@ -0,0 +1,26 @@ +begin model + begin parameters + A0 100 # Initial number of A molecules + B0 100 # Initial number of B molecules + ka 0.01 # A-B association rate constant (1/molecule 1/s) + kd 1 # A-B dissociation rate constant (1/s) + end parameters + begin molecule types + A(b) + B(a) + end molecule types + begin seed species + A(b) A0 + B(a) B0 + end seed species + begin observables + Molecules A A(b) + Molecules B B(a) + Molecules C A(b!1).B(a!1) + end observables + begin reaction rules + A(b) + B(a) <-> A(b!1).B(a!1) ka, kd + end reaction rules +end model + +simulate({method=>"ode",t_end=>10,n_steps=>200}) diff --git a/Tutorials/NativeTutorials/AB/README.md b/Tutorials/NativeTutorials/AB/README.md new file mode 100644 index 00000000..eb96fe49 --- /dev/null +++ b/Tutorials/NativeTutorials/AB/README.md @@ -0,0 +1,21 @@ +# AB + +BioNetGen model: AB + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- AB.bngl + +## Tags + +ab, a, b, simulate diff --git a/Tutorials/NativeTutorials/AB/metadata.yaml b/Tutorials/NativeTutorials/AB/metadata.yaml new file mode 100644 index 00000000..8c2e4b21 --- /dev/null +++ b/Tutorials/NativeTutorials/AB/metadata.yaml @@ -0,0 +1,22 @@ +id: "AB" +name: "AB" +description: "BioNetGen model: AB" +tags: ["ab", "a", "b", "simulate"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/AB/AB.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/ABC/ABC.bngl b/Tutorials/NativeTutorials/ABC/ABC.bngl new file mode 100644 index 00000000..61f7ebbb --- /dev/null +++ b/Tutorials/NativeTutorials/ABC/ABC.bngl @@ -0,0 +1,14 @@ +begin seed species + A 100 + B 100 +end seed species +begin observables + Molecules A A() + Molecules B B() + Molecules C C() +end observables +begin reaction rules + A() + B() <-> C() 0.01, 1 +end reaction rules + +simulate({method=>"ode",t_end=>10,n_steps=>200}) diff --git a/Tutorials/NativeTutorials/ABC/README.md b/Tutorials/NativeTutorials/ABC/README.md new file mode 100644 index 00000000..a1804d38 --- /dev/null +++ b/Tutorials/NativeTutorials/ABC/README.md @@ -0,0 +1,21 @@ +# ABC + +BioNetGen model: ABC + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- ABC.bngl + +## Tags + +abc, a, simulate diff --git a/Tutorials/NativeTutorials/ABC/metadata.yaml b/Tutorials/NativeTutorials/ABC/metadata.yaml new file mode 100644 index 00000000..c8edb24c --- /dev/null +++ b/Tutorials/NativeTutorials/ABC/metadata.yaml @@ -0,0 +1,22 @@ +id: "ABC" +name: "ABC" +description: "BioNetGen model: ABC" +tags: ["abc", "a", "simulate"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/ABC/ABC.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/ABCscan/ABC_scan.bngl b/Tutorials/NativeTutorials/ABCscan/ABC_scan.bngl new file mode 100644 index 00000000..553d03ba --- /dev/null +++ b/Tutorials/NativeTutorials/ABCscan/ABC_scan.bngl @@ -0,0 +1,24 @@ +begin model + begin parameters + A0 100 # Initial number of A molecules + B0 100 # Initial number of B molecules + ka 0.01 # A-B association rate constant (1/molecule 1/s) + kd 1 # A-B dissociation rate constant (1/s) + end parameters + begin seed species + A A0 + B B0 + end seed species + begin observables + Molecules A A() + Molecules B B() + Molecules C C() + end observables + begin reaction rules + A() + B() <-> C() ka, kd + end reaction rules +end model + +generate_network() +parameter_scan({parameter=>"B0",par_min=>0,par_max=>1000,n_scan_pts=>50,\ + method=>"ode",t_end=>10000}) \ No newline at end of file diff --git a/Tutorials/NativeTutorials/ABCscan/README.md b/Tutorials/NativeTutorials/ABCscan/README.md new file mode 100644 index 00000000..9baeeb1c --- /dev/null +++ b/Tutorials/NativeTutorials/ABCscan/README.md @@ -0,0 +1,21 @@ +# ABC scan + +BioNetGen model: ABC scan + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- ABC_scan.bngl + +## Tags + +abc, scan, a, generate_network, parameter_scan diff --git a/Tutorials/NativeTutorials/ABCscan/metadata.yaml b/Tutorials/NativeTutorials/ABCscan/metadata.yaml new file mode 100644 index 00000000..94b8ec64 --- /dev/null +++ b/Tutorials/NativeTutorials/ABCscan/metadata.yaml @@ -0,0 +1,22 @@ +id: "ABC_scan" +name: "ABC scan" +description: "BioNetGen model: ABC scan" +tags: ["abc", "scan", "a", "generate_network", "parameter_scan"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/ABC/ABC_scan.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/NativeTutorials/ABCssa/ABC_ssa.bngl b/Tutorials/NativeTutorials/ABCssa/ABC_ssa.bngl new file mode 100644 index 00000000..f0cbcd13 --- /dev/null +++ b/Tutorials/NativeTutorials/ABCssa/ABC_ssa.bngl @@ -0,0 +1,14 @@ +begin seed species + A 100 + B 100 +end seed species +begin observables + Molecules A A() + Molecules B B() + Molecules C C() +end observables +begin reaction rules + A() + B() <-> C() 0.01, 1 +end reaction rules + +simulate({method=>"ssa",t_end=>10,n_steps=>500}) diff --git a/Tutorials/NativeTutorials/ABCssa/README.md b/Tutorials/NativeTutorials/ABCssa/README.md new file mode 100644 index 00000000..95d73524 --- /dev/null +++ b/Tutorials/NativeTutorials/ABCssa/README.md @@ -0,0 +1,21 @@ +# ABC ssa + +BioNetGen model: ABC ssa + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ssa +- Imported from: tutorial + +## Files + +- ABC_ssa.bngl + +## Tags + +abc, ssa, a, simulate diff --git a/Tutorials/NativeTutorials/ABCssa/metadata.yaml b/Tutorials/NativeTutorials/ABCssa/metadata.yaml new file mode 100644 index 00000000..5f008a28 --- /dev/null +++ b/Tutorials/NativeTutorials/ABCssa/metadata.yaml @@ -0,0 +1,22 @@ +id: "ABC_ssa" +name: "ABC ssa" +description: "BioNetGen model: ABC ssa" +tags: ["abc", "ssa", "a", "simulate"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ssa"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/ABC/ABC_ssa.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/NativeTutorials/ABp/ABp.bngl b/Tutorials/NativeTutorials/ABp/ABp.bngl new file mode 100644 index 00000000..4e7c0b1e --- /dev/null +++ b/Tutorials/NativeTutorials/ABp/ABp.bngl @@ -0,0 +1,42 @@ +## title: ABp.bngl +## description: Simple model of enzyme kinetics in which A is a kinase and B is a +## phosphorylabe substrate. +## author: Jim Faeder +## date: 27Feb2018 +## note: Units consistent with uM for concentration, um^3=fL for volume +begin model +begin parameters + # Cell volume + V 1 # units: um^3 + # Conversion factor from uM to 1/um^3 + NaV 602*V + # Rate constants + kp1 1.0/(NaV) # 1/uM 1/s -> 1/molecules 1/s + km1 1.0e-1 # 1/s + k2 1.0e-2 # 1/s + + # Initial concentrations + A0 0.01*NaV # uM -> molecules/cell + B0 1.0*NaV # uM -> molecules/cell +end parameters +begin molecule types + A(b) + B(a,Y~0~p) +end molecule types +begin seed species + A(b) A0 + B(a,Y~0) B0 +end seed species +begin observables + Molecules Bu B(a,Y~0) + Molecules Bp B(a,Y~p) + Molecules AB A(b!1).B(a!1) +end observables +begin reaction rules + ABbind: A(b) + B(a,Y~0) <-> A(b!1).B(a!1,Y~0) kp1, km1 + ABphos: A(b!1).B(a!1,Y~0) -> A(b) + B(a,Y~p) k2 +end reaction rules +end model + +# simulate the expanded network use ODE's +simulate({method=>"ode", t_end=>20000,n_steps=>1000}) diff --git a/Tutorials/NativeTutorials/ABp/README.md b/Tutorials/NativeTutorials/ABp/README.md new file mode 100644 index 00000000..59d7da2b --- /dev/null +++ b/Tutorials/NativeTutorials/ABp/README.md @@ -0,0 +1,21 @@ +# ABp + +title: ABp.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- ABp.bngl + +## Tags + +abp, a, b, simulate diff --git a/Tutorials/NativeTutorials/ABp/metadata.yaml b/Tutorials/NativeTutorials/ABp/metadata.yaml new file mode 100644 index 00000000..bd5cc38e --- /dev/null +++ b/Tutorials/NativeTutorials/ABp/metadata.yaml @@ -0,0 +1,22 @@ +id: "ABp" +name: "ABp" +description: "title: ABp.bngl" +tags: ["abp", "a", "b", "simulate"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/ABp/ABp.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/ABpapprox/ABp_approx.bngl b/Tutorials/NativeTutorials/ABpapprox/ABp_approx.bngl new file mode 100644 index 00000000..d1726f13 --- /dev/null +++ b/Tutorials/NativeTutorials/ABpapprox/ABp_approx.bngl @@ -0,0 +1,42 @@ +## title: ABp.bngl +## description: Simple model of enzyme kinetics in which A is a kinase and B is a +## phosphorylabe substrate simulated using the approximate form of the +## rate law often called the Michaelis-Menton rate law. +## author: Jim Faeder +## date: 27Feb2018 +## note: Units consistent with uM for concentration, um^3=fL for volume +begin model +begin parameters + # Cell volume + V 1 # units: um^3 + # Conversion factor from uM to 1/um^3 + NaV 602*V + # Rate constants + kp1 1.0/(NaV) # 1/uM 1/s -> 1/molecules 1/s + km1 1.0e-1 # 1/s + k2 1.0e-2 # 1/s + Km (km1 + k2)/kp1 # Michaelis constant + + # Initial concentrations + A0 0.01*NaV # uM -> molecules/cell + B0 1.0*NaV # uM -> molecules/cell +end parameters +begin molecule types + A(b) + B(a,Y~0~p) +end molecule types +begin seed species + A(b) A0 + B(a,Y~0) B0 +end seed species +begin observables + Molecules Bu B(a,Y~0) + Molecules Bp B(a,Y~p) +end observables +begin reaction rules + ABphos: A(b) + B(a,Y~0) -> A(b) + B(a,Y~p) k2/(Km + Bu) +end reaction rules +end model + +# simulate the expanded network use ODE's +simulate({method=>"ode", t_end=>20000,n_steps=>1000}) diff --git a/Tutorials/NativeTutorials/ABpapprox/README.md b/Tutorials/NativeTutorials/ABpapprox/README.md new file mode 100644 index 00000000..c1b36f86 --- /dev/null +++ b/Tutorials/NativeTutorials/ABpapprox/README.md @@ -0,0 +1,21 @@ +# ABp approx + +title: ABp.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- ABp_approx.bngl + +## Tags + +abp, approx, km, a, b, simulate diff --git a/Tutorials/NativeTutorials/ABpapprox/metadata.yaml b/Tutorials/NativeTutorials/ABpapprox/metadata.yaml new file mode 100644 index 00000000..b6dac54f --- /dev/null +++ b/Tutorials/NativeTutorials/ABpapprox/metadata.yaml @@ -0,0 +1,22 @@ +id: "ABp_approx" +name: "ABp approx" +description: "title: ABp.bngl" +tags: ["abp", "approx", "km", "a", "b", "simulate"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/ABp/ABp_approx.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/BAB/BAB.bngl b/Tutorials/NativeTutorials/BAB/BAB.bngl new file mode 100644 index 00000000..881594a8 --- /dev/null +++ b/Tutorials/NativeTutorials/BAB/BAB.bngl @@ -0,0 +1,30 @@ +# Simple binding model with a bivalent A molecule that has two identical sites +# for binding of B. Binding at each site is not affected by the status of the other +# site (noncooperative binding). +begin model + begin parameters + A0 100 # Initial number of A molecules + B0 100 # Initial number of B molecules + ka 0.01 # A-B association rate constant (1/molecule 1/s) + kd 1 # A-B dissociation rate constant (1/s) + end parameters + begin molecule types + A(b,b) + B(a) + end molecule types + begin seed species + A(b,b) A0 + B(a) B0 + end seed species + begin observables + Molecules FreeAsites A(b) + Molecules FreeB B(a) + Molecules ABbonds A(b!1).B(a!1) + Species BAB B(a!1).A(b!1,b!2).B(a!2) + end observables + begin reaction rules + A(b) + B(a) <-> A(b!1).B(a!1) ka, kd + end reaction rules +end model + +simulate({method=>"ode",t_end=>10,n_steps=>200}) diff --git a/Tutorials/NativeTutorials/BAB/README.md b/Tutorials/NativeTutorials/BAB/README.md new file mode 100644 index 00000000..244588ea --- /dev/null +++ b/Tutorials/NativeTutorials/BAB/README.md @@ -0,0 +1,21 @@ +# BAB + +Simple binding model with a bivalent A molecule that has two identical sites + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- BAB.bngl + +## Tags + +bab, a, b, simulate diff --git a/Tutorials/NativeTutorials/BAB/metadata.yaml b/Tutorials/NativeTutorials/BAB/metadata.yaml new file mode 100644 index 00000000..a7de5c25 --- /dev/null +++ b/Tutorials/NativeTutorials/BAB/metadata.yaml @@ -0,0 +1,22 @@ +id: "BAB" +name: "BAB" +description: "Simple binding model with a bivalent A molecule that has two identical sites" +tags: ["bab", "a", "b", "simulate"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/BAB/BAB.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/BABcoop/BAB_coop.bngl b/Tutorials/NativeTutorials/BABcoop/BAB_coop.bngl new file mode 100644 index 00000000..1750177d --- /dev/null +++ b/Tutorials/NativeTutorials/BABcoop/BAB_coop.bngl @@ -0,0 +1,34 @@ +#BAB_coop +# Simple binding model with a bivalent A molecule that has two identical sites +# for binding of B. Cooperative interactions between B molecules affect the binding +# constants for binding to the second site. + +begin model + begin parameters + A0 100 # Initial number of A molecules + B0 100 # Initial number of B molecules + ka 0.01 # A-B association rate constant (1/molecule 1/s) + kd 1 # A-B dissociation rate constant (1/s) + coop 50 # Enhancement factor for cooperative binding. + end parameters + begin molecule types + A(b,b) + B(a) + end molecule types + begin seed species + A(b,b) A0 + B(a) B0 + end seed species + begin observables + Molecules AB A(b,b!1).B(a!1) + Species BAB B(a!1).A(b!1,b!2).B(a!2) + end observables + begin reaction rules + AB_1: A(b,b) + B(a) <-> A(b,b!1).B(a!1) ka, kd + AB_2: A(b!+,b) + B(a) <-> A(b!+,b!1).B(a!1) ka, kd/coop + end reaction rules +end model + +simulate({method=>"ode",t_end=>10,n_steps=>200}) +#parameter_scan({parameter=>"A0",par_min=>1,par_max=>1e4,n_scan_pts=>50,\ +# method=>"ode",t_end=>10000,log_scale=>1}) \ No newline at end of file diff --git a/Tutorials/NativeTutorials/BABcoop/README.md b/Tutorials/NativeTutorials/BABcoop/README.md new file mode 100644 index 00000000..431edaea --- /dev/null +++ b/Tutorials/NativeTutorials/BABcoop/README.md @@ -0,0 +1,21 @@ +# BAB coop + +Simple binding model with a bivalent A molecule that has two identical sites + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- BAB_coop.bngl + +## Tags + +bab, coop, a, b, simulate diff --git a/Tutorials/NativeTutorials/BABcoop/metadata.yaml b/Tutorials/NativeTutorials/BABcoop/metadata.yaml new file mode 100644 index 00000000..916a4cbb --- /dev/null +++ b/Tutorials/NativeTutorials/BABcoop/metadata.yaml @@ -0,0 +1,22 @@ +id: "BAB_coop" +name: "BAB coop" +description: "Simple binding model with a bivalent A molecule that has two identical sites" +tags: ["bab", "coop", "a", "b", "simulate"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/BAB/BAB_coop.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/BABscan/BAB_scan.bngl b/Tutorials/NativeTutorials/BABscan/BAB_scan.bngl new file mode 100644 index 00000000..ef43b1d8 --- /dev/null +++ b/Tutorials/NativeTutorials/BABscan/BAB_scan.bngl @@ -0,0 +1,32 @@ +# Simple binding model with a bivalent A molecule that has two identical sites +# for binding of B. Binding at each site is not affected by the status of the other +# site (noncooperative binding). +begin model + begin parameters + A0 100 # Initial number of A molecules + B0 100 # Initial number of B molecules + ka 0.01 # A-B association rate constant (1/molecule 1/s) + kd 1 # A-B dissociation rate constant (1/s) + end parameters + begin molecule types + A(b,b) + B(a) + end molecule types + begin seed species + A(b,b) A0 + B(a) B0 + end seed species + begin observables + Molecules FreeAsites A(b) + Molecules FreeB B(a) + Molecules ABbonds A(b!1).B(a!1) + Species BAB B(a!1).A(b!1,b!2).B(a!2) + end observables + begin reaction rules + A(b) + B(a) <-> A(b!1).B(a!1) ka, kd + end reaction rules +end model + +generate_network() +parameter_scan({parameter=>"A0",par_min=>1,par_max=>1e4,n_scan_pts=>50,\ + method=>"ode",t_end=>10000,log_scale=>1}) diff --git a/Tutorials/NativeTutorials/BABscan/README.md b/Tutorials/NativeTutorials/BABscan/README.md new file mode 100644 index 00000000..f947b74a --- /dev/null +++ b/Tutorials/NativeTutorials/BABscan/README.md @@ -0,0 +1,21 @@ +# BAB scan + +Simple binding model with a bivalent A molecule that has two identical sites + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- BAB_scan.bngl + +## Tags + +bab, scan, a, b, generate_network, parameter_scan diff --git a/Tutorials/NativeTutorials/BABscan/metadata.yaml b/Tutorials/NativeTutorials/BABscan/metadata.yaml new file mode 100644 index 00000000..6e2b416b --- /dev/null +++ b/Tutorials/NativeTutorials/BABscan/metadata.yaml @@ -0,0 +1,22 @@ +id: "BAB_scan" +name: "BAB scan" +description: "Simple binding model with a bivalent A molecule that has two identical sites" +tags: ["bab", "scan", "a", "b", "generate_network", "parameter_scan"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/BAB/BAB_scan.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/NativeTutorials/BLBR/BLBR.bngl b/Tutorials/NativeTutorials/BLBR/BLBR.bngl new file mode 100644 index 00000000..c837df83 --- /dev/null +++ b/Tutorials/NativeTutorials/BLBR/BLBR.bngl @@ -0,0 +1,50 @@ +## title: BLBR.bngl +# description: Bivalent ligand - bivalent receptor (BLBR) model, which is a simple model of polymer +# formation by receptors that can form a chain with infinite length (in the continuum limit). +# Simulating this model using a generate and simulate approach is problematic because +# for these parameters the required network of complexes is very large. Using network-free +# simulation addresses this problem. + +setOption("SpeciesLabel","HNauty"); +begin parameters + kp1 1 + km1 1 + kp2 1 + km2 1 + kp3 1 + km3 1 + R0 1000 + L0 1000 +end parameters + +begin species + R(r,r) R0 + L(l,l) L0 +end species + +begin observables + Species R1 R==1 + Species R2 R==2 + Species R3 R==3 + Species R4 R==4 + Species R5 R==5 + Species Rbig R>20 +end observables + +begin reaction rules +# Ligand addition +R(r) + L(l,l) <-> R(r!1).L(l!1,l) kp1,km1 + +# Chain elongation +R(r) + L(l,l!+) <-> R(r!1).L(l!1,l!+) kp2,km2 + +# Ring closure +#R(r).L(l) <-> R(r!1).L(l!1) kp3,km3 + +end reaction rules + +# Do partial network expansion and simulate the ODE's corresponding to the limited network. +#generate_network({max_stoich=>{R=>5,L=>5}}) +#simulate({method=>"ode",t_end=>10,n_steps=>1000}) + +simulate({method=>"nf",t_end=>10,n_steps=>1000,get_final_state=>1}) \ No newline at end of file diff --git a/Tutorials/NativeTutorials/BLBR/README.md b/Tutorials/NativeTutorials/BLBR/README.md new file mode 100644 index 00000000..f3b13786 --- /dev/null +++ b/Tutorials/NativeTutorials/BLBR/README.md @@ -0,0 +1,21 @@ +# BLBR + +title: BLBR.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode, nf +- Imported from: tutorial + +## Files + +- BLBR.bngl + +## Tags + +blbr, setoption, r, l, simulate diff --git a/Tutorials/NativeTutorials/BLBR/metadata.yaml b/Tutorials/NativeTutorials/BLBR/metadata.yaml new file mode 100644 index 00000000..c2375a14 --- /dev/null +++ b/Tutorials/NativeTutorials/BLBR/metadata.yaml @@ -0,0 +1,22 @@ +id: "BLBR" +name: "BLBR" +description: "title: BLBR.bngl" +tags: ["blbr", "setoption", "r", "l", "simulate"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode", "nf"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/CBNGL/BLBR.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/NativeTutorials/Chyleklibrary/Chylek_library.bngl b/Tutorials/NativeTutorials/Chyleklibrary/Chylek_library.bngl new file mode 100644 index 00000000..434ea66e --- /dev/null +++ b/Tutorials/NativeTutorials/Chyleklibrary/Chylek_library.bngl @@ -0,0 +1,369 @@ +# Created by BioNetGen 2.2.6 + +begin model +begin parameters + NA 6.022e23 + celldensity 1e9 + Fx 0.02 + ECFvol 1/celldensity + simECFvol ECFvol*Fx + Cellvol 1.4e-12 + simCellvol Cellvol*Fx + ProteinTot 3e5 + SimProteinTot Fx*ProteinTot + LigTot 5e4 + SimLigTot Fx*LigTot + lambda_p 1.7e-2 + lambda_m 5.4e-2 + kfl 0 + kxl 1.3/SimProteinTot + krl 1.4e-1 + kfRecLyn1 4.2e7/(NA*simCellvol) + krRecLyn1 20 + kfRecLyn2 kfRecLyn1 + krRecLyn2 0.12 + kpLynB1 30 + kpLynB2 100 + kpLynG1 1 + kpLynG2 3 + kfLynIn 10 + krLynIn 3e-4 + kpLynLyn 100 + kpFynFyn 100 + kfRecSyk 5.1e7/(NA*simCellvol) + krRecSyk 0.13 + kpSykSyk0 100 + kpSykSykP 200 + kpLynSyk1 30 + kpLynSyk2 100 + kfPagLynSH3 8.4e6/(NA*simCellvol) + krPagLynSH3 30 + kfPagLynSH3_2 1e3 + kfPagLynSH2 2.5e7/(NA*simCellvol) + kfPagLynSH2_2 1e3 + krPagLyn2point 30 + kpLynPag 1000 + kfCskPag 2.5e4/(NA*simCellvol) + krCskPag 3e-3 + kpCskLyn 1000 + eff 5 + kfRecFyn1 kfRecLyn1 + krRecFyn1 krRecLyn1 + kfRecFyn2 kfRecLyn2 + krRecFyn2 krRecLyn2 + kfFynIn kfLynIn + krFynIn krLynIn + kpFynB1 kpLynB1/eff + kpFynB2 kpLynB2/eff + kpFynG1 kpLynG1/eff + kpFynG2 kpLynG2/eff + kpFynSyk1 kpLynSyk1/eff + kpFynSyk2 kpLynSyk2/eff + kfPagFynSH3 kfPagLynSH3 + krPagFynSH3 krPagLynSH3 + kfPagFynSH3_2 kfPagLynSH3_2 + kfPagFynSH2 kfPagLynSH2 + kfPagFynSH2_2 kfPagLynSH2_2 + krPagFyn2point krPagLyn2point + kpFynPag kpLynPag/eff + kpCskFyn kpCskLyn + kfSykLat kfRecLyn1 + krSykLat krRecLyn1 + kpSykLat1 kpSykSyk0 + kpSykLat2 kpSykSykP + KD_LatPlcg 62e-9 + krLatPlcg krRecLyn2 + kfLatPlcg (krLatPlcg/KD_LatPlcg)/(NA*simCellvol) + kfPlcgPip2 1e9/(NA*simCellvol) + krPlcgPip2 1 + kcPlcgP 3.2e2 + kcPlcg0 kcPlcgP/50 + krLatGrb2 krRecLyn2 + kfLatGrb2 2.5e8/(NA*simCellvol) + KD_Grb2Gab2 8e-6 + krGrb2Gab2 1 + kfGrb2Gab2 (1/KD_Grb2Gab2)/(NA*simCellvol) + kfFynGab2 kfSykLat + krFynGab2 krSykLat + kpFynGab2 kpFynB1 + kfGab2Pi3k kfRecLyn2 + krGab2Pi3k krRecLyn2 + kfPi3kPip2 kfPlcgPip2 + krPi3kPip2 krPlcgPip2 + kpPi3k kcPlcgP + kfBtkPip3 1.4e6/(NA*simCellvol) + krBtkPip3 1 + kfBtkPlcg kfSykLat + krBtkPlcg krSykLat + kpBtkPlcg kpSykSykP + kfShipRec kfRecLyn2/5 + krShipRec krRecLyn2/5 + kfShipPip3 kfPlcgPip2 + krShipPip3 krPlcgPip2 + kdpShipPip3 kcPlcgP + kfShipPip2 kfBtkPip3 + krShipPip2 krBtkPip3 + kfLatGrap2 6.6e6/(NA*simCellvol) + krLatGrap2 1 + kfGrap2Lcp2 9.5e6/(NA*simCellvol) + krGrap2Lcp2 0.06 + KD_Lcp2Plcg1 1e-6 + krLcp2Plcg1 1 + kfLcp2Plcg1 (krLcp2Plcg1/KD_Lcp2Plcg1)/(NA*simCellvol) + kPten 1 + kfP5 1 + krP5 1 + p 1e-3 + dp 5 + _rateLaw1 100*kfShipRec + _rateLaw2 0.01*kdpShipPip3 + _rateLaw3 0.001*kdpShipPip3 + ActiveKinase1 0.5*SimProteinTot + ActiveKinase2 0.1*SimProteinTot + ActiveKinase3 0.05*SimProteinTot + kcSyk 100 + kcFyn 100 + KD1 (79e-9*NA)*simCellvol + KD2 (62e-9*NA)*simCellvol + krSH2 0.12 + kfSH2_1 krSH2/KD1 + kfSH2_2 krSH2/KD2 + kfPH 1.4e6/(NA*simCellvol) + krPH 1 + kfSH3 1e6/(NA*simCellvol) + kfSH3_3D 1e6/(NA*simCellvol) + kfSH3_2D 100*kfSH3_3D + krSH3 1 + kcBtk 1e-3 + kfP 1e9/(NA*simCellvol) + krP 1 + kcP 10 + kDeg 0.1 + kX 5e-3 + _rateLaw11 10*kfP + _rateLaw12 5 + _rateLaw13 5 + _rateLaw14 5 + _rateLaw15 5 +end parameters +begin molecule types + Sink() + pre() + Pag1(PRS1,Y165_Y183~0~P,PRS2,Y317~0~P,Y386_Y409~0~P) + Grap2(SH2,SH3) + Lcp2(RxxK,PRS) + PI3K(SH2,cat) + Inpp5d(SH2,IPP,C2) + Syk(tSH2,Y346~0~P,cat,Y519_Y520~0~P) + zero() + Lat(Y136~0~P,Y175~0~P) + Lyn(U,SH3,SH2,Y397~0~P,Y508~0~P) + Gab2(PRS,PH,Y441~0~P) + Lig(hap~b~e,hap~b~e) + Plcg1(SH2,SH3,cat,Y783~0~P) + Grb2(SH2,cSH3) + Rec(fab,fab,b_Y218~0~P,b_Y224~0~P,g_Y65_Y76~0~P) + Csk(SH2) + PI(OH3~0~P,OH4~0~P,OH5~0~P,head~0~1) + Fyn(U,SH3,SH2,cat,Y420~0~P,Y531~0~P) + BTK(PH,cat) +end molecule types +begin observables + Molecules PIP3 PI(OH3~P!?,OH4~P,OH5~P,head~1!?) + Molecules PIP2 PI(OH3~0!?,OH4~P,OH5~P,head~1!?) +end observables +begin functions + Replenish() = (kX*PIP2)*(1-(PIP2/SimProteinTot)) +end functions +begin species + Lig(hap~b,hap~b) SimLigTot + Rec(b_Y218~0,b_Y224~0,fab,fab,g_Y65_Y76~0) SimProteinTot + Pag1(PRS1,PRS2,Y165_Y183~0,Y317~0,Y386_Y409~0) SimProteinTot + Csk(SH2) SimProteinTot + Lat(Y136~0,Y175~0) SimProteinTot + Grb2(SH2,cSH3) SimProteinTot + Inpp5d(C2,IPP,SH2) SimProteinTot + Grap2(SH2,SH3) SimProteinTot + Lcp2(PRS,RxxK) SimProteinTot + Sink() SimProteinTot + PI3K(SH2,cat) SimProteinTot + PI(OH3~0,OH4~P,OH5~P,head~1) SimProteinTot + pre() SimProteinTot + Lyn(SH2,SH3,U,Y397~0,Y508~0) SimProteinTot + Fyn(SH2,SH3,U,Y420~0,Y531~0,cat) SimProteinTot + Syk(Y346~0,Y519_Y520~0,cat,tSH2) SimProteinTot + Plcg1(SH2,SH3,Y783~0,cat) SimProteinTot + Gab2(PH,PRS,Y441~0) SimProteinTot + BTK(PH,cat) SimProteinTot +end species +begin reaction rules + R1: Lig(hap~b) <-> Lig(hap~e) lambda_p, lambda_m + R2: Lig(hap~e,hap~e) + Rec(fab) -> Lig(hap~e,hap~e!1).Rec(fab!1) kfl + R3: Lig(hap~b,hap~e) + Rec(fab) -> Lig(hap~b,hap~e!1).Rec(fab!1) kfl + R4: Lig(hap~e,hap~e!1).Rec(fab!1) + Rec(fab) -> Lig(hap~e!1,hap~e!2).Rec(fab!2).Rec(fab!1) kxl + R5: Lig(hap~e!1).Rec(fab!1) -> Lig(hap~e) + Rec(fab) krl + R6: Rec(b_Y218~0) + Lyn(U,SH3,SH2) -> Rec(b_Y218~0!1).Lyn(U!1,SH3,SH2) kfRecLyn1 + R7: Rec(b_Y218~0!1).Lyn(U!1) -> Rec(b_Y218~0) + Lyn(U) krRecLyn1 + R8: Rec(b_Y218~P) + Lyn(U,SH3,SH2) -> Rec(b_Y218~P!1).Lyn(U,SH3,SH2!1) kfRecLyn2 + R9: Rec(b_Y218~P!1).Lyn(SH2!1) -> Rec(b_Y218~P) + Lyn(SH2) krRecLyn2 + R10: Lyn(U,SH3,SH2,Y508~P) -> Lyn(U,SH3,SH2!1,Y508~P!1) kfLynIn + R11: Lyn(SH2!1,Y508~P!1) -> Lyn(SH2,Y508~P) krLynIn + R12: Lyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218~0) -> Lyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218~P) kpLynB1 + R13: Lyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218~0) -> Lyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218~P) kpLynB2 + R14: Lyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y224~0) -> Lyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y224~P) kpLynB1 + R15: Lyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y224~0) -> Lyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y224~P) kpLynB2 + R16: Lyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~0) -> Lyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P) kpLynG1 + R17: Lyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~0) -> Lyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P) kpLynG2 + R18: Lyn(U!1).Rec(b_Y218!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218!4).Lyn(U!4,Y397~0) -> Lyn(U!1).Rec(b_Y218!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218!4).Lyn(U!4,Y397~P) kpLynLyn + R19: Lyn(U!1).Rec(b_Y218!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218!4).Lyn(SH2!4,Y397~0) -> Lyn(U!1).Rec(b_Y218!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218!4).Lyn(SH2!4,Y397~P) kpLynLyn + R20: Lyn(SH2!1).Rec(b_Y218!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218!4).Lyn(U!4,Y397~0) -> Lyn(SH2!1).Rec(b_Y218!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218!4).Lyn(U!4,Y397~P) kpLynLyn + R21: Lyn(SH2!1).Rec(b_Y218!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218!4).Lyn(SH2!4,Y397~0) -> Lyn(SH2!1).Rec(b_Y218!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218!4).Lyn(SH2!4,Y397~P) kpLynLyn + R22: Syk(tSH2) + Rec(g_Y65_Y76~P) <-> Syk(tSH2!1).Rec(g_Y65_Y76~P!1) kfRecSyk, krRecSyk + R23: Lyn(U!1,Y397~P).Rec(fab!2,b_Y218~0!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y346~0) -> Lyn(U!1,Y397~P).Rec(fab!2,b_Y218~0!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y346~P) kpLynSyk1 + R24: Lyn(SH2!1,Y397~P).Rec(fab!2,b_Y218~P!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y346~0) -> Lyn(SH2!1,Y397~P).Rec(fab!2,b_Y218~P!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y346~P) kpLynSyk2 + R25: Syk(tSH2!1,Y519_Y520~0).Rec(fab!2,g_Y65_Y76~P!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y519_Y520~0) -> Syk(tSH2!1,Y519_Y520~0).Rec(fab!2,g_Y65_Y76~P!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y519_Y520~P) kpSykSyk0 + R26: Syk(tSH2!1,Y519_Y520~P).Rec(fab!2,g_Y65_Y76~P!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y519_Y520~0) -> Syk(tSH2!1,Y519_Y520~P).Rec(fab!2,g_Y65_Y76~P!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y519_Y520~P) kpSykSykP + R27: Lyn(U,SH3,SH2) + Pag1(PRS2,Y386_Y409) -> Lyn(U,SH3!1,SH2).Pag1(PRS2!1,Y386_Y409) kfPagLynSH3 + R28: Lyn(U,SH3,SH2!1).Pag1(PRS2,Y386_Y409~P!1) -> Lyn(U,SH3!1,SH2!2).Pag1(PRS2!1,Y386_Y409~P!2) kfPagLynSH3_2 + R29: Lyn(SH3!1,SH2).Pag1(PRS2!1,Y386_Y409) -> Lyn(SH3,SH2) + Pag1(PRS2,Y386_Y409) krPagLynSH3 + R30: Lyn(U,SH3,SH2) + Pag1(PRS2,Y386_Y409~P) -> Lyn(U,SH3,SH2!1).Pag1(PRS2,Y386_Y409~P!1) kfPagLynSH2 + R31: Lyn(U,SH3!1,SH2).Pag1(PRS2!1,Y386_Y409~P) -> Lyn(U,SH3!1,SH2!2).Pag1(PRS2!1,Y386_Y409~P!2) kfPagLynSH2_2 + R32: Lyn(SH3!1,SH2!2).Pag1(PRS2!1,Y386_Y409~P!2) -> Lyn(SH3,SH2) + Pag1(PRS2,Y386_Y409~P) krPagLyn2point + R33: Lyn(SH3!1,Y508,Y397~P).Pag1(PRS2!1,Y386_Y409~0) -> Lyn(SH3!1,Y508,Y397~P).Pag1(PRS2!1,Y386_Y409~P) kpLynPag + R34: Lyn(SH3,SH2!1,Y508,Y397~P).Pag1(Y165_Y183~0,Y386_Y409~P!1) -> Lyn(SH3,SH2!1,Y508,Y397~P).Pag1(Y165_Y183~P,Y386_Y409~P!1) kpLynPag + R35: Lyn(SH3!1,SH2!2,Y508,Y397~P).Pag1(PRS2!1,Y165_Y183~0,Y386_Y409~P!2) -> Lyn(SH3!1,SH2!2,Y508,Y397~P).Pag1(PRS2!1,Y165_Y183~P,Y386_Y409~P!2) kpLynPag + R36: Lyn(SH3!1,SH2,Y508,Y397~P).Pag1(PRS2!1,Y165_Y183~0) -> Lyn(SH3!1,SH2,Y508,Y397~P).Pag1(PRS2!1,Y165_Y183~P) kpLynPag + R37: Lyn(SH2!1,Y508,Y397~P).Pag1(Y317~0,Y386_Y409~P!1) -> Lyn(SH2!1,Y508,Y397~P).Pag1(Y317~P,Y386_Y409~P!1) kpLynPag + R38: Lyn(SH3,SH2!1,Y508,Y397~P).Pag1(Y317~0,Y386_Y409~P!1) -> Lyn(SH3,SH2!1,Y508,Y397~P).Pag1(Y317~P,Y386_Y409~P!1) kpLynPag + R39: Lyn(SH3!1,SH2!2,Y508,Y397~P).Pag1(PRS2!1,Y317~0,Y386_Y409~P!2) -> Lyn(SH3!1,SH2!2,Y508,Y397~P).Pag1(PRS2!1,Y317~P,Y386_Y409~P!2) kpLynPag + R40: Lyn(SH3!1,SH2,Y508,Y397~P).Pag1(PRS2!1,Y317~0) -> Lyn(SH3!1,SH2,Y508,Y397~P).Pag1(PRS2!1,Y317~P) kpLynPag + R41: Csk(SH2) + Pag1(Y317~P) <-> Csk(SH2!1).Pag1(Y317~P!1) kfCskPag, krCskPag + R42: Lyn(SH3,SH2!1,Y508~0).Pag1(Y386_Y409~P!1,Y317~P!2).Csk(SH2!2) -> Lyn(SH3,SH2!1,Y508~P).Pag1(Y386_Y409~P!1,Y317~P!2).Csk(SH2!2) kpCskLyn + R43: Lyn(SH3!1,SH2,Y508~0).Pag1(PRS2!1,Y317~P!2).Csk(SH2!2) -> Lyn(SH3!1,SH2,Y508~P).Pag1(PRS2!1,Y317~P!2).Csk(SH2!2) kpCskLyn + R44: Lyn(SH3!1,SH2!2,Y508~0).Pag1(PRS2!1,Y386_Y409~P!2,Y317~P!3).Csk(SH2!3) -> Lyn(SH3!1,SH2!2,Y508~P).Pag1(PRS2!1,Y386_Y409~P!2,Y317~P!3).Csk(SH2!3) kpCskLyn + R45: Rec(b_Y218~0) + Fyn(U,SH3,SH2) -> Rec(b_Y218~0!1).Fyn(U!1,SH3,SH2) kfRecFyn1 + R46: Rec(b_Y218~0!1).Fyn(U!1) -> Rec(b_Y218~0) + Fyn(U) krRecFyn1 + R47: Rec(b_Y218~P) + Fyn(U,SH3,SH2) -> Rec(b_Y218~P!1).Fyn(U,SH3,SH2!1) kfRecFyn2 + R48: Rec(b_Y218~P!1).Fyn(SH2!1) -> Rec(b_Y218~P) + Fyn(SH2) krRecFyn2 + R49: Fyn(U,SH3,SH2,Y531~P) -> Fyn(U,SH3,SH2!1,Y531~P!1) kfFynIn + R50: Fyn(SH2!1,Y531~P!1) -> Fyn(SH2,Y531~P) krFynIn + R51: Fyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218~0) -> Fyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218~P) kpFynB1 + R52: Fyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218~0) -> Fyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218~P) kpFynB2 + R53: Fyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y224~0) -> Fyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y224~P) kpFynB1 + R54: Fyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y224~0) -> Fyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y224~P) kpFynB2 + R55: Fyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~0) -> Fyn(U!1).Rec(b_Y218~0!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P) kpFynG1 + R56: Fyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~0) -> Fyn(SH2!1).Rec(b_Y218~P!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P) kpFynG2 + R57: Fyn(U!1,Y420~P).Rec(fab!2,b_Y218~0!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y346~0) -> Fyn(U!1,Y420~P).Rec(fab!2,b_Y218~0!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y346~P) kpFynSyk1 + R58: Fyn(SH2!1,Y420~P).Rec(fab!2,b_Y218~P!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y346~0) -> Fyn(SH2!1,Y420~P).Rec(fab!2,b_Y218~P!1).Lig(hap~e!2,hap~e!3).Rec(fab!3,g_Y65_Y76~P!4).Syk(tSH2!4,Y346~P) kpFynSyk2 + R59: Fyn(U!1).Rec(b_Y218!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218!4).Fyn(U!4,Y420~0) -> Fyn(U!1).Rec(b_Y218!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218!4).Fyn(U!4,Y420~P) kpFynFyn + R60: Fyn(U!1).Rec(b_Y218!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218!4).Fyn(SH2!4,Y420~0) -> Fyn(U!1).Rec(b_Y218!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218!4).Fyn(SH2!4,Y420~P) kpFynFyn + R61: Fyn(SH2!1).Rec(b_Y218!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218!4).Fyn(U!4,Y420~0) -> Fyn(SH2!1).Rec(b_Y218!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218!4).Fyn(U!4,Y420~P) kpFynFyn + R62: Fyn(SH2!1).Rec(b_Y218!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218!4).Fyn(SH2!4,Y420~0) -> Fyn(SH2!1).Rec(b_Y218!1,fab!2).Lig(hap~e!2,hap~e!3).Rec(fab!3,b_Y218!4).Fyn(SH2!4,Y420~P) kpFynFyn + R63: Fyn(U,SH3,SH2,Y420~P) + Pag1(PRS1,Y165_Y183) -> Fyn(U,SH3!1,SH2,Y420~P).Pag1(PRS1!1,Y165_Y183) kfPagFynSH3 + R64: Fyn(U,SH3,SH2!1,Y420~P).Pag1(PRS1,Y165_Y183~P!1) -> Fyn(U,SH3!1,SH2!2,Y420~P).Pag1(PRS1!1,Y165_Y183~P!2) kfPagFynSH3_2 + R65: Fyn(SH3!1,SH2,Y420~P).Pag1(PRS1!1,Y165_Y183) -> Fyn(SH3,SH2,Y420~P) + Pag1(PRS1,Y165_Y183) krPagFynSH3 + R66: Fyn(U,SH3,SH2,Y420~P) + Pag1(PRS1,Y165_Y183~P) -> Fyn(U,SH3,SH2!1,Y420~P).Pag1(PRS1,Y165_Y183~P!1) kfPagFynSH2 + R67: Fyn(U,SH3!1,SH2,Y420~P).Pag1(PRS1!1,Y165_Y183~P) -> Fyn(U,SH3!1,SH2!2,Y420~P).Pag1(PRS1!1,Y165_Y183~P!2) kfPagFynSH2_2 + R68: Fyn(SH3!1,SH2!2,Y420~P).Pag1(PRS1!1,Y165_Y183~P!2) -> Fyn(SH3,SH2,Y420~P) + Pag1(PRS1,Y165_Y183~P) krPagFyn2point + R69: Fyn(SH3,SH2!1,Y531,Y420~P).Pag1(Y386_Y409~0,Y165_Y183~P!1) -> Fyn(SH3,SH2!1,Y531,Y420~P).Pag1(Y386_Y409~P,Y165_Y183~P!1) kpFynPag + R70: Fyn(SH3!1,SH2!2,Y531,Y420~P).Pag1(PRS1!1,Y386_Y409~0,Y165_Y183~P!2) -> Fyn(SH3!1,SH2!2,Y531,Y420~P).Pag1(PRS1!1,Y386_Y409~P,Y165_Y183~P!2) kpFynPag + R71: Fyn(SH3!1,SH2,Y531,Y420~P).Pag1(PRS1!1,Y386_Y409~0) -> Fyn(SH3!1,SH2,Y531,Y420~P).Pag1(PRS1!1,Y386_Y409~P) kpFynPag + R72: Fyn(SH3,SH2!1,Y531,Y420~P).Pag1(Y317~0,Y165_Y183~P!1) -> Fyn(SH3,SH2!1,Y531,Y420~P).Pag1(Y317~P,Y165_Y183~P!1) kpFynPag + R73: Fyn(SH3!1,SH2!2,Y531,Y420~P).Pag1(PRS1!1,Y317~0,Y165_Y183~P!2) -> Fyn(SH3!1,SH2!2,Y531,Y420~P).Pag1(PRS1!1,Y317~P,Y165_Y183~P!2) kpFynPag + R74: Fyn(SH3!1,SH2,Y531,Y420~P).Pag1(PRS1!1,Y317~0) -> Fyn(SH3!1,SH2,Y531,Y420~P).Pag1(PRS1!1,Y317~P) kpFynPag + R75: Fyn(SH3,SH2!1,Y531~0).Pag1(Y165_Y183~P!1,Y317~P!2).Csk(SH2!2) -> Fyn(SH3,SH2!1,Y531~P).Pag1(Y165_Y183~P!1,Y317~P!2).Csk(SH2!2) kpCskFyn + R76: Fyn(SH3!1,SH2,Y531~0).Pag1(PRS1!1,Y317~P!2).Csk(SH2!2) -> Fyn(SH3!1,SH2,Y531~P).Pag1(PRS1!1,Y317~P!2).Csk(SH2!2) kpCskFyn + R77: Fyn(SH3!1,SH2!2,Y531~0).Pag1(PRS1!1,Y165_Y183~P!2,Y317~P!3).Csk(SH2!3) -> Fyn(SH3!1,SH2!2,Y531~P).Pag1(PRS1!1,Y165_Y183~P!2,Y317~P!3).Csk(SH2!3) kpCskFyn + R78: Syk(tSH2!+,cat) + Lat(Y175~0) -> Syk(tSH2!+,cat!1).Lat(Y175~0!1) kfSykLat + R79: Syk(cat!1).Lat(Y175~0!1) -> Syk(cat) + Lat(Y175~0) krSykLat + R80: Syk(cat!1,Y519_Y520~P).Lat(Y175~0!1) -> Syk(cat,Y519_Y520~P) + Lat(Y175~P) kpSykLat2 + R81: Syk(cat!1,Y519_Y520~0).Lat(Y175~0!1) -> Syk(cat,Y519_Y520~0) + Lat(Y175~P) kpSykLat1 + R82: Lat(Y175~P) + Grb2(SH2) <-> Lat(Y175~P!1).Grb2(SH2!1) kfLatGrb2, krLatGrb2 + R83: Lat(Y175~P) + Grap2(SH2) <-> Lat(Y175~P!1).Grap2(SH2!1) kfLatGrap2, krLatGrap2 + R84: Grap2(SH3) + Lcp2(RxxK) <-> Grap2(SH3!1).Lcp2(RxxK!1) kfGrap2Lcp2, krGrap2Lcp2 + R85: Grb2(cSH3) + Gab2(PRS) <-> Grb2(cSH3!1).Gab2(PRS!1) kfGrb2Gab2, krGrb2Gab2 + R86: Lcp2(PRS) + Plcg1(SH3) <-> Lcp2(PRS!1).Plcg1(SH3!1) kfLcp2Plcg1, krLcp2Plcg1 + R87: Fyn(U!+,SH2,cat) + Lat(Y175~P!1).Grb2(SH2!1,cSH3!2).Gab2(PRS!2,Y441~0) -> Fyn(U!+,SH2,cat!1).Lat(Y175~P!2).Grb2(SH2!2,cSH3!3).Gab2(PRS!3,Y441~0!1) kfFynGab2 + R88: Rec(b_Y218~P!1).Fyn(U,SH2!1,cat) + Lat(Y175~P!1).Grb2(SH2!1,cSH3!2).Gab2(PRS!2,Y441~0) -> Rec(b_Y218~P!1).Fyn(U,SH2!1,cat!2).Lat(Y175~P!3).Grb2(SH2!3,cSH3!4).Gab2(PRS!4,Y441~0!2) kfFynGab2 + R89: Fyn(cat!1).Gab2(Y441~0!1) -> Fyn(cat) + Gab2(Y441~0) krFynGab2 + R90: Fyn(cat!1).Gab2(Y441~0!1) -> Fyn(cat) + Gab2(Y441~P) kpFynGab2 + R91: Inpp5d(SH2,C2) + Rec(b_Y224~P) -> Inpp5d(SH2!1,C2).Rec(b_Y224~P!1) kfShipRec + R92: Inpp5d(IPP,C2!+) + Rec(b_Y224~P) -> Inpp5d(IPP!1,C2!+).Rec(b_Y224~P!1) _rateLaw1 + R93: Inpp5d(SH2!1).Rec(b_Y224~P!1) -> Inpp5d(SH2) + Rec(b_Y224~P) krShipRec + R94: Inpp5d(SH2!+,IPP) + PI(OH3~P,OH4~P,OH5~P,head~1) <-> Inpp5d(SH2!+,IPP!1).PI(OH3~P,OH4~P,OH5~P!1,head~1) kfShipPip3, krShipPip3 + R95: Inpp5d(SH2!+,IPP!1).PI(OH3~P,OH4~P,OH5~P!1,head~1) -> Inpp5d(SH2!+,IPP) + PI(OH3~P,OH4~P,OH5~0,head~1) _rateLaw2 + R96: Rec(b_Y218~0) -> Rec(b_Y218~P) p + R97: Rec(b_Y218~P) -> Rec(b_Y218~0) dp + R98: Rec(b_Y224~0) -> Rec(b_Y224~P) p + R99: Rec(b_Y224~P) -> Rec(b_Y224~0) dp + R100: Rec(g_Y65_Y76~0) -> Rec(g_Y65_Y76~P) p + R101: Rec(g_Y65_Y76~P) -> Rec(g_Y65_Y76~0) dp + R102: Lyn(Y508~0) -> Lyn(Y508~P) p + R103: Lyn(Y508~P) -> Lyn(Y508~0) dp + R104: Lyn(Y397~0) -> Lyn(Y397~P) p + R105: Lyn(Y397~P) -> Lyn(Y397~0) dp + R106: Fyn(Y531~0) -> Fyn(Y531~P) p + R107: Fyn(Y531~P) -> Fyn(Y531~0) dp + R108: Fyn(Y420~0) -> Fyn(Y420~P) p + R109: Fyn(Y420~P) -> Fyn(Y420~0) dp + R110: Syk(Y346~0) -> Syk(Y346~P) p + R111: Syk(Y346~P) -> Syk(Y346~0) dp + R112: Syk(Y519_Y520~0) -> Syk(Y519_Y520~P) p + R113: Syk(Y519_Y520~P) -> Syk(Y519_Y520~0) dp + R114: Pag1(Y317~0) -> Pag1(Y317~P) p + R115: Pag1(Y317~P) -> Pag1(Y317~0) dp + R116: Pag1(Y165_Y183~0) -> Pag1(Y165_Y183~P) p + R117: Pag1(Y165_Y183~P) -> Pag1(Y165_Y183~0) dp + R118: Pag1(Y386_Y409~0) -> Pag1(Y386_Y409~P) p + R119: Pag1(Y386_Y409~P) -> Pag1(Y386_Y409~0) dp + R120: Gab2(Y441~0) -> Gab2(Y441~P) p + R121: Gab2(Y441~P) -> Gab2(Y441~0) dp + R122: Lat(Y136~0) -> Lat(Y136~P) p + R123: Lat(Y136~P) -> Lat(Y136~0) dp + R124: Lat(Y175~0) -> Lat(Y175~P) p + R125: Lat(Y175~P) -> Lat(Y175~0) dp + R126: Plcg1(Y783~0) -> Plcg1(Y783~P) p + R127: Plcg1(Y783~P) -> Plcg1(Y783~0) dp + R128: Lat(Y136~0) + Syk(cat) <-> Lat(Y136~0!1).Syk(cat!1) kfSH3, krSH3 + R129: Lat(Y136~0!1).Syk(cat!1) -> Lat(Y136~P) + Syk(cat) kcSyk + R130: Lat(Y175~0) + Syk(cat) <-> Lat(Y175~0!1).Syk(cat!1) kfSH3, krSH3 + R131: Lat(Y175~0!1).Syk(cat!1) -> Lat(Y175~P) + Syk(cat) kcSyk + R132: Lat(Y136~P) + Plcg1(SH2) <-> Lat(Y136~P!1).Plcg1(SH2!1) kfSH2_2, krSH2 + R133: Lat(Y175~P) + Grb2(SH2) <-> Lat(Y175~P!1).Grb2(SH2!1) kfSH2_1, krSH2 + R134: Lat(Y175~P!1).Grb2(SH2!1,cSH3!2).Gab2(PRS!2,PH,Y441~0) + Fyn(cat) -> Lat(Y175~P!1).Grb2(SH2!1,cSH3!2).Gab2(PRS!2,PH,Y441~0!3).Fyn(cat!3) kfSH3 + R135: Lat(Y175~P!1).Grb2(SH2!1,cSH3!2).Gab2(PRS!2,PH!+,Y441~0) + Fyn(cat) -> Lat(Y175~P!1).Grb2(SH2!1,cSH3!2).Gab2(PRS!2,PH!+,Y441~0!3).Fyn(cat!3) kfSH3 + R136: Gab2(PRS,PH!+,Y441~0) + Fyn(cat) -> Gab2(PRS,PH!+,Y441~0!1).Fyn(cat!1) kfSH3 + R137: Grb2(SH2,cSH3!1).Gab2(PRS!1,PH!+,Y441~0) + Fyn(cat) -> Grb2(SH2,cSH3!1).Gab2(PRS!1,PH!+,Y441~0!2).Fyn(cat!2) kfSH3 + R138: Gab2(Y441~0!1).Fyn(cat!1) -> Gab2(Y441~0) + Fyn(cat) krSH3 + R139: Gab2(Y441~0!1).Fyn(cat!1) -> Gab2(Y441~P) + Fyn(cat) kcFyn + R140: Grb2(SH2,cSH3) + Gab2(PRS,PH!+) -> Grb2(SH2,cSH3!1).Gab2(PRS!1,PH!+) kfSH3_3D + R141: Grb2(SH2!+,cSH3) + Gab2(PRS,PH) -> Grb2(SH2!+,cSH3!1).Gab2(PRS!1,PH) kfSH3_3D + R142: Grb2(SH2,cSH3) + Gab2(PRS,PH) -> Grb2(SH2,cSH3!1).Gab2(PRS!1,PH) kfSH3_3D + R143: Grb2(SH2!+,cSH3) + Gab2(PRS,PH!+) -> Grb2(SH2!+,cSH3!1).Gab2(PRS!1,PH!+) kfSH3_2D + R144: Grb2(cSH3!1).Gab2(PRS!1) -> Grb2(cSH3) + Gab2(PRS) krSH3 + R145: Gab2(Y441~P) + PI3K(SH2) <-> Gab2(Y441~P!1).PI3K(SH2!1) kfSH2_1, krSH2 + R146: Gab2(PH) + PI(OH3~P,OH4~P,OH5~P,head~1) <-> Gab2(PH!1).PI(OH3~P,OH4~P,OH5~P,head~1!1) kfPH, krPH + R147: Lat(Y175~P!1).Grb2(SH2!1,cSH3!2).Gab2(PRS!2,PH,Y441~P!3).PI3K(SH2!3,cat) + PI(OH3~0,OH4~P,OH5~P,head~1) -> Lat(Y175~P!1).Grb2(SH2!1,cSH3!2).Gab2(PRS!2,PH,Y441~P!3).PI3K(SH2!3,cat!4).PI(OH3~0!4,OH4~P,OH5~P,head~1) kfP + R148: Lat(Y175~P!1).Grb2(SH2!1,cSH3!2).Gab2(PRS!2,PH!+,Y441~P!3).PI3K(SH2!3,cat) + PI(OH3~0,OH4~P,OH5~P,head~1) -> Lat(Y175~P!1).Grb2(SH2!1,cSH3!2).Gab2(PRS!2,PH!+,Y441~P!3).PI3K(SH2!3,cat!4).PI(OH3~0!4,OH4~P,OH5~P,head~1) kfP + R149: Gab2(PRS,PH!+,Y441~P!1).PI3K(SH2!1,cat) + PI(OH3~0,OH4~P,OH5~P,head~1) -> Gab2(PRS,PH!+,Y441~P!1).PI3K(SH2!1,cat!2).PI(OH3~0!2,OH4~P,OH5~P,head~1) kfP + R150: Grb2(SH2,cSH3!1).Gab2(PRS!1,PH!+,Y441~P!2).PI3K(SH2!2,cat) + PI(OH3~0,OH4~P,OH5~P,head~1) -> Grb2(SH2,cSH3!1).Gab2(PRS!1,PH!+,Y441~P!2).PI3K(SH2!2,cat!3).PI(OH3~0!3,OH4~P,OH5~P,head~1) kfP + R151: PI3K(cat!1).PI(OH3~0!1,OH4~P,OH5~P,head~1) -> PI3K(cat) + PI(OH3~0,OH4~P,OH5~P,head~1) krP + R152: PI3K(cat!1).PI(OH3~0!1,OH4~P,OH5~P,head~1) -> PI3K(cat) + PI(OH3~P,OH4~P,OH5~P,head~1) kcP + R153: PI(OH3~P,OH4~P,OH5~P,head~1) + BTK(PH) <-> PI(OH3~P,OH4~P,OH5~P,head~1!1).BTK(PH!1) kfPH, krPH + R154: BTK(PH!+,cat) + Plcg1(SH2!+,Y783~0) -> BTK(PH!+,cat!1).Plcg1(SH2!+,Y783~0!1) kfSH3 + R155: BTK(cat!1).Plcg1(Y783~0!1) -> BTK(cat) + Plcg1(Y783~0) krSH3 + R156: BTK(cat!1).Plcg1(Y783~0!1) -> BTK(cat) + Plcg1(Y783~P) kcSyk + R157: Plcg1(cat,SH2!+,Y783~P) + PI(OH3~0,OH4~P,OH5~P,head~1) -> Plcg1(cat!1,SH2!+,Y783~P).PI(OH3~0,OH4~P,OH5~P,head~1!1) _rateLaw11 + R158: Plcg1(cat!1).PI(head~1!1) -> Plcg1(cat) + PI(head~1) krP + R159: Plcg1(cat!1).PI(head~1!1) -> Plcg1(cat) + PI(head~0) kcP + R160: PI(OH3~0,OH4~P,OH5~P,head~0) -> zero() kDeg + R161: PI(OH3~P,OH4~P,OH5~P,head~1) -> PI(OH3~0,OH4~P,OH5~P,head~1) kPten + R162: pre() -> pre() + PI(OH3~0,OH4~P,OH5~P,head~1) Replenish() +end reaction rules +end model + +# 1. Run with this line uncommented to generate the opts file. Copy this file to the top level project folder +# (if using RuleBender). +#visualize({type=>"opts"}) +# 2. Now uncomment the next line to use the opts file. +#visualize({type=>"regulatory",groups=>1,collapse=>1,opts=>"../../../Chylek_library_opts.txt",doNotUseContextWhenGrouping=>1}) diff --git a/Tutorials/NativeTutorials/Chyleklibrary/README.md b/Tutorials/NativeTutorials/Chyleklibrary/README.md new file mode 100644 index 00000000..e5027509 --- /dev/null +++ b/Tutorials/NativeTutorials/Chyleklibrary/README.md @@ -0,0 +1,21 @@ +# Chylek library + +Created by BioNetGen 2.2.6 + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- Chylek_library.bngl + +## Tags + +chylek, library, kflatplcg, kfgrb2gab2, kflcp2plcg1, kd1, kd2, sink, pre, pag1 diff --git a/Tutorials/NativeTutorials/Chyleklibrary/metadata.yaml b/Tutorials/NativeTutorials/Chyleklibrary/metadata.yaml new file mode 100644 index 00000000..d2bbfabd --- /dev/null +++ b/Tutorials/NativeTutorials/Chyleklibrary/metadata.yaml @@ -0,0 +1,22 @@ +id: "Chylek_library" +name: "Chylek library" +description: "Created by BioNetGen 2.2.6" +tags: ["chylek", "library", "kflatplcg", "kfgrb2gab2", "kflcp2plcg1", "kd1", "kd2", "sink", "pre", "pag1"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/LargerModels/Chylek_library.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/NativeTutorials/CircadianOscillator/CircadianOscillator.bngl b/Tutorials/NativeTutorials/CircadianOscillator/CircadianOscillator.bngl new file mode 100644 index 00000000..7bbc4b1d --- /dev/null +++ b/Tutorials/NativeTutorials/CircadianOscillator/CircadianOscillator.bngl @@ -0,0 +1,93 @@ +## title: Vilar Circadian Oscillator Model +## author: Jim Faeder +## date: 31Mar2016 +## Reference: Vilar, JMG et al. PNAS, 99:5988-5992 (2002) + +begin parameters + alpha_A 50 # 1/h + alpha_Ap 500 # + alpha_R 0.01 + alpha_Rp 50 + beta_A 50 + beta_R 5 + delta_MA 10 + delta_MR 0.5 + delta_A 1 + delta_R 0.2/4 + gamma_A 1 # 1/molec 1/h + gamma_R 1 + gamma_C 2 + theta_A 50 # 1/h + theta_R 100 +end parameters + +begin molecule types + A(r,d) + R(a) + pA(a) + pR(a) + mRNA_A() + mRNA_R() +end molecule types + +begin seed species + A(r,d) 0 + R(a) 0 + pA(a) 1 + pR(a) 1 +end seed species + +begin observables + Molecules Afree A(r,d) # note: These are the observables reported in the paper + Molecules Rfree R(a) # + Molecules Atot A() + Molecules Rtot R() +end observables + +begin reaction rules +# Transcription +Atransc_basal: \ + pA(a) -> pA(a) + mRNA_A() alpha_A +Atransc_active: \ + pA(a!+) -> pA(a!+) + mRNA_A() alpha_Ap +Rtransc_basal: \ + pR(a) -> pR(a) + mRNA_R() alpha_R +Rtransc_active: \ + pR(a!+) -> pR(a!+) + mRNA_R() alpha_Rp + +# Translation +Atransl: \ + mRNA_A() -> mRNA_A() + A(r,d) beta_A +Rtransl: \ + mRNA_R() -> mRNA_R() + R(a) beta_R + +# Activation-Promoter binding +A_binds_pA: \ + A(r,d) + pA(a) <-> A(r,d!1).pA(a!1) gamma_A, theta_A +A_binds_pR: \ + A(r,d) + pR(a) <-> A(r,d!1).pR(a!1) gamma_R, theta_R + +# Repressor-Activator binding +A_binds_R: \ + A(r,d) + R(a) -> A(r!1,d).R(a!1) gamma_C + +# Degradation + +# mRNA +mRNA_Adeg:\ + mRNA_A() -> 0 delta_MA +mRNA_Rdeg:\ + mRNA_R() -> 0 delta_MR + +# Protein +# A degrades unless bound to DNA +Afreedeg: \ + A(d,r) -> 0 delta_A +Abounddeg: \ + A(d,r!1).R(a!1) -> R(a) delta_A +Rdeg: \ + R(a) -> 0 delta_R + +end reaction rules + +simulate({method=>"ssa",t_end=>400,n_steps=>1000}) \ No newline at end of file diff --git a/Tutorials/NativeTutorials/CircadianOscillator/README.md b/Tutorials/NativeTutorials/CircadianOscillator/README.md new file mode 100644 index 00000000..3e38a638 --- /dev/null +++ b/Tutorials/NativeTutorials/CircadianOscillator/README.md @@ -0,0 +1,21 @@ +# CircadianOscillator + +Circadian rhythm + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ssa +- Imported from: tutorial + +## Files + +- CircadianOscillator.bngl + +## Tags + +published, tutorial, native, circadianoscillator, a, r, pa, pr, mrna_a, mrna_r diff --git a/Tutorials/NativeTutorials/CircadianOscillator/metadata.yaml b/Tutorials/NativeTutorials/CircadianOscillator/metadata.yaml new file mode 100644 index 00000000..00d32498 --- /dev/null +++ b/Tutorials/NativeTutorials/CircadianOscillator/metadata.yaml @@ -0,0 +1,22 @@ +id: "CircadianOscillator" +name: "CircadianOscillator" +description: "Circadian rhythm" +tags: ["published", "tutorial", "native", "circadianoscillator", "a", "r", "pa", "pr", "mrna_a", "mrna_r"] +category: "tutorial" +compatibility: + bng2_compatible: false + simulation_methods: ["ssa"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/SynDeg/CircadianOscillator.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/NativeTutorials/ComplexDegradation/ComplexDegradation.bngl b/Tutorials/NativeTutorials/ComplexDegradation/ComplexDegradation.bngl new file mode 100644 index 00000000..c21c4048 --- /dev/null +++ b/Tutorials/NativeTutorials/ComplexDegradation/ComplexDegradation.bngl @@ -0,0 +1,36 @@ +## Title: ComplexDegradation.bngl +## Description: Demonstrates behavior of various rules specifying degradation +# of complexes and how this can be controlled by the DeleteMolecules +# keyword. +## Author: James R. Faeder +## Date: 01Mar2018 + +begin seed species + A(b) 1 + B(a,c) 1 + C(b) 1 + A(b!1).B(a!1,c) 1 + A(b!1).B(a!1,c!2).C(b!2) 1 +end seed species +begin reaction rules + # Degrades only free A (A(b)). (1 reaction) + Rule01: A(b) -> 0 1 + + # Degrades all species in which A is present. (3 reactions) + Rule02: A() -> 0 1 + + # Degrades only A molecule in species where A is present. + # (3 reactions, 2 with non-zero products) + Rule03: A() -> 0 1 DeleteMolecules # Keywords are case-sensitive! + + # Degrades B when complexed with A, but only if fragment containing B + # contains no additional molecules. (1 reaction) + Rule04: A(b!1).B(a!1) -> A(b) 1 + + # Degrades B when complexed with A allowing additional species to be generated + # if B is complexed with other molecules. (2 reactions) + Rule05: A(b!1).B(a!1) -> A(b) 1 DeleteMolecules +end reaction rules + +# TextReaction flag creates reacionts with full species patterns. +generate_network({TextReaction=>1}) \ No newline at end of file diff --git a/Tutorials/NativeTutorials/ComplexDegradation/README.md b/Tutorials/NativeTutorials/ComplexDegradation/README.md new file mode 100644 index 00000000..437cd7cb --- /dev/null +++ b/Tutorials/NativeTutorials/ComplexDegradation/README.md @@ -0,0 +1,21 @@ +# ComplexDegradation + +Degradation model + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- ComplexDegradation.bngl + +## Tags + +published, tutorial, native, complexdegradation, a, b, c, generate_network diff --git a/Tutorials/NativeTutorials/ComplexDegradation/metadata.yaml b/Tutorials/NativeTutorials/ComplexDegradation/metadata.yaml new file mode 100644 index 00000000..f7085164 --- /dev/null +++ b/Tutorials/NativeTutorials/ComplexDegradation/metadata.yaml @@ -0,0 +1,22 @@ +id: "ComplexDegradation" +name: "ComplexDegradation" +description: "Degradation model" +tags: ["published", "tutorial", "native", "complexdegradation", "a", "b", "c", "generate_network"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/SynDeg/ComplexDegradation.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/NativeTutorials/Creamer2012/Creamer_2012.bngl b/Tutorials/NativeTutorials/Creamer2012/Creamer_2012.bngl new file mode 100644 index 00000000..83e078a8 --- /dev/null +++ b/Tutorials/NativeTutorials/Creamer2012/Creamer_2012.bngl @@ -0,0 +1,1921 @@ +begin parameters + +NA 6.0221415e23 # Avogadro's number (molecues/mol) +Vo 1.0e-10 # Extracellular volume=1/cell_density (L) + +#Initial values + +EGF_tot 5*1.0e-9*NA*Vo +HRG_tot 5*1.0e-9*NA*Vo +EGFR_tot 4.27672520173064e5 +ErbB2_tot 1.42093237149675e4 +ErbB3_tot 1.74843554666751e5 +ErbB4_tot 8.91594202782983e4 +p52Shc1_tot 6.01531854462274e4 +Grb2_tot 5.91055062496997e4 +Sos1_tot 4.09301535229042e4 +Gab1_tot 4.80466223642856e4 +PI3K_tot 3.56731320547328e5 +PDK1_tot 8.92880892502848e5 +Akt1_tot 3.4017537819372e5 +RAS_tot 8.65718002843658e5 +p120RasGAP_tot 9.32786886419808e4 +Raf1_tot 4.80188361349246e4 +MEK1_tot 6.63956495470586e4 +ERK2_tot 6.16394706849877e5 + + +#Setting K values + +EGFequil1 = 1.82539211740452e-6 # EGFkp1/EGFkm1 +EGFequil2 = 3.24395882030410e-6 # EGFkp2/EGFkm2 +EGFequil3 = 2.88434511422028e-6 # EGFkp3/EGFkm3 + +HRG3equil1 = 2.7585877061741e-6 # HRG3kp1/HRG3km1 +HRG3equil2 = 3.4169236535230e-5 # HRG3kp2/HRG3km2 +HRG3equil3 = 3.03813568286261e-5 # HRG3kp3/HRG3km3 + +HRG4equil1 = 3.55574858868965e-6# HRG4kp1/HRG4km1 +HRG4equil2 = 3.58838215596531e-5# HRG4kp2/HRG4km2 +HRG4equil3 = 3.19058690718630e-5# HRG4kp3/HRG4km3 + +EGFkp1 0 #1.6752764844066e-6 +EGFkp2 0 #1.31766379762354e-6 +EGFkp3 0 #2.82831275074602e-7 + +EGFkm1 9.17762528080067e-1 +EGFkm2 4.06190050680118e-1 +EGFkm3 9.80573627199459e-2 + +HRG3kp1 0 #2.25177730824231e-7 +HRG3kp2 0 #5.48266629995157e-6 +HRG3kp3 0 #1.56149921651503e-5 #HRG3km3*EGFequil3*HRG3equil2/EGFequil2 + +HRG3km1 8.16279034087813e-2 +HRG3km2 1.60456213128985e-1 +HRG3km3 5.13966254148249e-1 + +HRG4kp1 0 #2.88261678079618e-6 +HRG4kp2 0 #5.1027110057525e-6 +HRG4kp3 0 #7.73131997833758e-6 #HRG4km3*EGFequil3*HRG4equil2/EGFequil2 + +HRG4km1 8.10691956671343e-1 +HRG4km2 1.422008800615e-1 +HRG4km3 2.42316545614977e-1 + +DimEquil1 = Dimkp1/Dimkm1 +DimEquil2 = Dimkp2/Dimkm2 +DimEquil4 = Dimkp4/Dimkm4 +DimEquil6 = Dimkp6/Dimkm6 +DimEquil7 = Dimkp7/Dimkm7 +DimEquil10 = Dimkp10/Dimkm10 +DimEquil11 = Dimkp11/Dimkm11 +DimEquil15 = Dimkp15/Dimkm15 +DimEquil17 = Dimkp17/Dimkm17 +DimEquil19 = Dimkp19/Dimkm19 +DimEquil20 = Dimkp20/Dimkm20 +DimEquil22 = Dimkp22/Dimkm22 +DimEquil23 = Dimkp23/Dimkm23 +DimEquil26 = Dimkp26/Dimkm26 +DimEquil27 = Dimkp27/Dimkm27 + +Dimkp1 5.0959890629278e-6 +Dimkp2 Dimkm2*DimEquil1*EGFequil2/EGFequil1 +Dimkp3 Dimkm3*DimEquil2*EGFequil3/EGFequil1 +Dimkp4 3.55124048645837e-7 +Dimkp5 Dimkm5*DimEquil4*EGFequil2/EGFequil1 +Dimkp6 5.93863482345085e-7 +Dimkp7 Dimkm7*DimEquil6*EGFequil2/EGFequil1 +Dimkp8 Dimkm8*DimEquil6*HRG3equil2/HRG3equil1 +Dimkp9 Dimkm9*DimEquil7*EGFequil3/EGFequil1 +Dimkp10 5.95858524293305e-6 +Dimkp11 Dimkm11*DimEquil10*EGFequil2/EGFequil1 +Dimkp12 Dimkm12*DimEquil10*HRG4equil2/HRG4equil1 +Dimkp13 Dimkm13*DimEquil11*EGFequil3/EGFequil1 +Dimkp14 9.40444138151105e-7 +Dimkp15 8.64565481767477e-6 +Dimkp16 Dimkm16*DimEquil15*HRG3equil2/HRG3equil1 +Dimkp17 6.60964194053378e-7 +Dimkp18 Dimkm18*DimEquil17*HRG4equil2/HRG4equil1 +Dimkp19 2.34931041558104e-6 +Dimkp20 Dimkm20*DimEquil19*HRG3equil2/HRG3equil1 +Dimkp21 Dimkm21*DimEquil20*HRG3equil3/HRG3equil1 +Dimkp22 9.44327814569465e-6 +Dimkp23 Dimkm23*DimEquil22*HRG3equil2/HRG3equil1 +Dimkp24 Dimkm24*DimEquil22*HRG4equil2/HRG4equil1 +Dimkp25 Dimkm25*DimEquil23*HRG3equil3/HRG3equil1 +Dimkp26 2.43135131855894e-6 +Dimkp27 Dimkm27*DimEquil26*HRG4equil2/HRG4equil1 +Dimkp28 Dimkm28*DimEquil27*HRG4equil3/HRG4equil1 + + +Dimkm1 6.82335881150971e-1 +Dimkm2 8.60446362688242e-1 +Dimkm3 5.30901820046591e-1 +Dimkm4 3.2906848719399e-2 +Dimkm5 3.61328871705183e-1 +Dimkm6 2.91209182767864e-2 +Dimkm7 4.10248490881162e-2 +Dimkm8 7.06334928569754e-1 +Dimkm9 5.064620571136e-1 +Dimkm10 5.4868243150637e-2 +Dimkm11 2.09675101809484e-1 +Dimkm12 2.87423426816554e-1 +Dimkm13 5.48638129462967e-1 +Dimkm14 5.35056553608581e-2 +Dimkm15 4.45127253423715e-1 +Dimkm16 2.24099123790756e-1 +Dimkm17 3.39468196721401e-1 +Dimkm18 7.43735228789512e-2 +Dimkm19 1.51427204579608e-2 +Dimkm20 6.47926498517387e-2 +Dimkm21 7.82869781142506e-2 +Dimkm22 8.48650355450826e-1 +Dimkm23 6.61204708354308e-1 +Dimkm24 9.19541811794608e-1 +Dimkm25 3.37299538300942e-2 +Dimkm26 2.04189992563573e-1 +Dimkm27 7.29286884022918e-1 +Dimkm28 7.43108065474286e-1 + + +Intkp1 8.32705126548996e-2 +Intkp15 5.86246294682792e-3 + +iLigkp1 8.93979864006803e-1 +iLigkp2 7.56616609711335e-1 + +iLigkp3 1.40929275291501e-2 +iLigkp4 6.46661221517235e-2 + +iDimkp1 3.5207168888922e-2 +iDimkp2 9.17315380364937e-1 +iDimkp3 7.93734840774044e-1 +iDimkp4 9.78655334522932e-2 +iDimkp5 3.65206163171712e-1 +iDimkp6 6.86255010679577e-1 +iDimkp7 1.99168704665789e-1 +iDimkp8 9.6335351868629e-2 +iDimkp9 7.87528140525939e-1 +iDimkp10 1.66421484864486e-2 + +Phosphokp1 8.88772107233018e-1 +Phosphokp2 4.2878246307489e-1 +Phosphokp3 1.95396201245302e-2 +Phosphokp4 2.00161517127765e-1 +Phosphokp5 7.06003182769046e-1 +Phosphokp6 7.6616659390412e-2 +Phosphokp7 1.80218044939915e-1 +Phosphokp8 4.34778121114391e-1 +Phosphokp9 6.39089429079519e-1 +Phosphokp10 5.9756050915588e-2 +Phosphokp11 2.53799737608887e-1 +Phosphokp12 5.63302566441462e-2 +Phosphokp13 2.82790620799852e-1 +Phosphokp14 1.22324552773364e-1 +Phosphokp15 9.67835541778362e-1 +Phosphokp16 3.51414620272385e-2 +Phosphokp17 5.21022165483879e-2 +Phosphokp18 3.1157068215756e-2 +Phosphokp19 8.443340013154e-2 +Phosphokp20 6.80116300490647e-2 +Phosphokp21 4.51367418859485e-1 +Phosphokp22 7.74887216709453e-2 +Phosphokp23 4.60083703581773e-1 +Phosphokp24 2.05792755059326e-1 +Phosphokp25 1.9661113965264e-2 +Phosphokp26 2.95134086701501e-1 +Phosphokp27 9.07050520292188e-1 +Phosphokp28 1.21049084190338e-2 +Phosphokp29 9.50488082789428e-2 +Phosphokp30 9.35460962603844e-2 +Phosphokp31 6.54846548500461e-2 +Phosphokp32 3.94313272466951e-1 +Phosphokp33 3.14072666810171e-1 +Phosphokp34 8.45442806483862e-1 +Phosphokp35 6.99553162146515e-1 +Phosphokp36 3.93438369234849e-2 +Phosphokp37 1.4547403805293e-2 +Phosphokp38 1.17107729876903e-2 +Phosphokp39 4.02838224075356e-2 +Phosphokp40 2.78079467363796e-2 +Phosphokp41 6.21195843955167e-2 +Phosphokp42 3.84566849273881e-2 +Phosphokp43 6.53045295503028e-2 +Phosphokp44 5.56999926968433e-1 +Phosphokp45 1.5472022436839e-2 +Phosphokp46 2.78694500019026e-2 +Phosphokp47 5.72714409115287e-2 +Phosphokp48 7.71759002007548e-1 +Phosphokp49 6.01611442493851e-2 +Phosphokp50 4.87347060541873e-2 +Phosphokp51 4.35687421786884e-2 +Phosphokp52 1.18362096686366e-2 +Phosphokp53 6.36787651207112e-1 +Phosphokp54 3.54646060845124e-1 +Phosphokp55 5.90317591027224e-1 +Phosphokp56 8.4467134352829e-2 + +Phosphokm1 7.26993260956493e-3 +Phosphokm2 9.74974910327381e-2 +Phosphokm3 2.68584632202874e-1 +Phosphokm4 5.50094046126816e-1 +Phosphokm5 7.67126639405035e-1 +Phosphokm6 2.75612797520029e-3 +Phosphokm7 6.85030301720076e-3 +Phosphokm8 4.87439992623973e-2 +Phosphokm9 5.72269724841397e-1 +Phosphokm10 9.44031999570728e-1 +Phosphokm11 8.81635543298421e-2 +Phosphokm12 6.65205478076501e-2 +Phosphokm13 7.3601652035394e-2 +Phosphokm14 1.5084976290579e-1 +Phosphokm15 2.74034930234802e-2 +Phosphokm16 4.79850299988658e-2 +Phosphokm17 3.67233415392832e-3 +Phosphokm18 7.13755713699078e-2 +Phosphokm19 1.20814195649541e-2 +Phosphokm20 5.91549834797695e-2 + +Grb2kp1 9.48751042996452e-6 +Grb2kp2 4.49259489482017e-7 +Grb2kp3 6.03697072678887e-6 +Grb2kp4 7.26714190078701e-7 +Grb2kp5 7.80974367513346e-6 + +Grb2km1 6.74470404588556e-2 +Grb2km2 3.21266715315215e-1 +Grb2km3 9.2695034884224e-1 +Grb2km4 1.27959374406095e-2 +Grb2km5 7.21220480153556e-1 + +Shc1kp0 1.97883551485319e-7 +Shc1kp1 4.57411536575194e-6 +Shc1kp2 4.74191085720764e-6 +Shc1kp3 3.28710008853551e-6 +Shc1kp4 4.34278757626282e-7 +Shc1kp5 4.57221757547808e-6 +Shc1kp6 5.72021770430524e-6 +Shc1kp7 3.23935077662424e-7 +Shc1kp8 9.25660200452455e-6 + +Shc1km0 4.49575735437162e-2 +Shc1km1 6.67230763160359e-2 +Shc1km2 5.79656246540662e-2 +Shc1km3 7.47800677001061e-1 +Shc1km4 9.51265970211182e-1 +Shc1km5 6.50096102370838e-1 +Shc1km6 1.55457060924141e-1 +Shc1km7 1.24736961289233e-1 +Shc1km8 3.83019454603652e-1 + +Shc1kp9 5.69833036091512e-1 +Shc1kp10 5.59482986809144e-1 +Shc1kp11 2.42858250499268e-1 +Shc1kp12 1.5443440933692e-2 +Shc1kp13 9.89657844783909e-1 +Shc1kp14 1.53725031821727e-2 +Shc1kp15 4.22356483806294e-2 +Shc1kp16 7.44568988338312e-1 +Shc1kp17 1.14399259149258e-2 +Shc1kp18 6.63532129002988e-1 +Shc1kp19 8.5178640861298e-2 +Shc1kp20 5.94148145316552e-1 +Shc1kp21 2.0700566805906e-1 +Shc1kp22 6.23710111799534e-1 +Shc1kp23 2.63775121304968e-1 +Shc1kp24 5.32149459123519e-1 +Shc1kp25 9.49394026611117e-1 +Shc1kp26 4.953415509737e-1 +Shc1kp27 7.6819206332508e-1 +Shc1kp28 4.85997292760425e-1 +Shc1kp29 7.82487101445372e-1 +Shc1kp30 3.00808468223011e-1 +Shc1kp31 2.65779406020073e-2 +Shc1kp32 5.29010839763077e-2 + + +Shc1km14 8.88151462022222e-2 + +Scafoldkp1 7.81993810926309e-7 +Scafoldkp2 5.2905293019769e-6 +Scafoldkp3 5*Scafoldkp2 + +Scafoldkm1 3.39662220127485e-1 +Scafoldkm2 6.38794564439524e-2 +Scafoldkm3 Scafoldkm2 + + +Sos1kp1 2.83307444159129e-6 +Sos1kp3 1.10049191751608e-6 + +Sos1kp5 2.32751420105001e-2 +Sos1kp6 5*Sos1kp5 +Sos1kp7 3.68445191357574e-2 +Sos1kp8 1.58767045993943e-1 +Sos1kp9 7.79377967231056e-2 + +Sos1km5 3.82133045165284e-2 +Sos1km6 5*Sos1km5 + + +MAPKkp1 2.34858647510049e-6 +MAPKkp2 7.97187030086059e-1 +MAPKkp3 3.76471948496902e-1 +MAPKkp4 8.40146299281042e-1 +MAPKkp5 8.65474093754534e-1 +MAPKkp6 8.25953667549936e-2 +MAPKkp7 7.41979697938558e-2 +MAPKkp8 1.37135935836113e-3 +MAPKkp9 8.18059543701685e-7 +MAPKkp10 8.54707689482359e-6 +MAPKkp11 9.11852147803069e-2 +MAPKkp12 9.50469680832043e-1 +MAPKkp13 4.20150542888183e-2 +MAPKkp15 2.33197003501971e-2 +MAPKkp16 8.50946608676458e-7 +MAPKkp17 4.62874983163874e-1 +MAPKkp18 3.35431298757868e-2 +MAPKkp19 3.32559533601363e-1 +MAPKkp20 2.09334798311488e-2 +MAPKkp21 3.06698724199856e-7 +MAPKkp22 8.88161417106301e-6 +MAPKkp23 7.08681212084929e-6 +MAPKkp24 4.08615417714418e-7 +MAPKkp25 4.90729612515253e-6 +MAPKkp26 1.84517732382585e-6 +MAPKkp27 2.24786074034722e-6 +MAPKkp28 1.96454339477236e-7 +MAPKkp29 2.22526846482702e-7 +MAPKkp30 1.90968360095593e-6 +MAPKkp31 7.79954799619554e-7 +MAPKkp32 7.75963929608389e-7 +MAPKkp33 2.59665864412602e-2 +MAPKkp34 2.43591083356245e-2 +MAPKkp35 7.16980303326022e-2 +MAPKkp36 2.49429517376035e-1 +MAPKkp37 8.55283324348136e-2 +MAPKkp38 4.45729674507919e-2 +MAPKkp39 4.2054915619633e-1 +MAPKkp40 7.34095564918618e-2 +MAPKkp41 1.10316513094398e-2 +MAPKkp42 5.88228995495206e-2 +MAPKkp43 9.61443776159791e-1 +MAPKkp44 5.54780338440048e-2 +MAPKkp45 4.48285458762001e-3 +MAPKkp46 1.80883788097742e-2 +MAPKkp47 4.99203801450802e-3 +MAPKkp48 8.31336309299819e-3 +MAPKkp49 8.56531321402417e-2 +MAPKkp50 4.51531525768462e-1 +MAPKkp51 2.41716382509588e-2 +MAPKkp52 4.80306028262771e-1 + + +Gab1kp1 1.96995906486126e-6 +Gab1kp3 1.26884248252077e-1 +Gab1kp4 6.59955402545501e-2 +Gab1kp5 2.74649622535037e-1 +Gab1kp6 4.3149249204576e-2 +Gab1kp7 7.43735567137946e-1 +Gab1kp8 5.09433307106832e-1 +Gab1kp9 7.84981187122992e-1 +Gab1kp10 9.58526974679023e-2 +Gab1kp11 6.89178573211149e-1 +Gab1kp12 9.68556225363977e-1 +Gab1kp13 9.43317263519674e-2 +Gab1kp14 4.94750548020704e-2 +Gab1kp15 8.06143925513339e-2 +Gab1kp16 2.19269118931788e-1 +Gab1kp17 1.89942763529712e-2 +Gab1kp18 1.89528365333723e-1 +Gab1kp19 6.03030348115124e-2 +Gab1kp20 3.54071892177262e-2 +Gab1kp21 3.99232860454623e-1 +Gab1kp22 5.63319907552716e-2 +Gab1kp23 3.10843424122953e-2 +Gab1kp24 6.84002889697763e-2 +Gab1kp25 6.39876833170325e-1 +Gab1kp26 9.82736084289934e-2 +Gab1kp27 9.18433441172982e-2 +Gab1kp28 3.82822878829575e-1 +Gab1kp29 8.21161423705763e-1 +Gab1kp30 9.20446819241408e-2 +Gab1kp31 2.21644107443666e-1 +Gab1kp32 3.63754251476098e-2 +Gab1kp33 2.3667792426341e-2 +Gab1kp34 4.44827588111809e-2 +Gab1kp35 3.08440990344997e-1 +Gab1kp36 5.54549199955773e-2 +Gab1kp37 7.74552310273276e-1 +Gab1kp38 7.50355932645846e-2 +Gab1kp39 5.76021606139506e-2 +Gab1kp40 4.53089771642914e-1 +Gab1kp41 8.99505991878266e-2 +Gab1kp42 3.78959951192263e-1 +Gab1kp43 6.50754783263528e-1 +Gab1kp44 6.81419244007412e-1 +Gab1kp45 1.89643033383857e-1 +Gab1kp46 1.02351033220879e-2 +Gab1kp47 4.73869586053684e-1 +Gab1kp48 2.45137939979401e-1 +Gab1kp49 7.44917984527444e-1 +Gab1kp50 1.26045363101139e-2 +Gab1kp51 3.16955880399047e-1 +Gab1kp52 4.33161963713894e-2 +Gab1kp53 5.17343683338817e-2 +Gab1kp54 7.48601277549528e-2 +Gab1kp55 6.92340425584058e-1 +Gab1kp56 4.07780811638111e-2 +Gab1kp57 1.40041104876053e-2 +Gab1kp58 9.48753480457526e-2 +Gab1kp59 7.5016080657968e-1 +Gab1kp60 3.66672032784976e-2 +Gab1kp61 1.79009642048845e-2 +Gab1kp62 6.38332656408699e-2 +Gab1kp63 6.84007275429656e-2 +Gab1kp64 1.0710450029589e-1 +Gab1kp65 5.41563482962238e-2 +Gab1kp66 8.84462541321437e-1 +Gab1kp67 7.47350965386988e-1 +Gab1kp68 5.65594739491638e-2 +Gab1kp69 7.17689305501494e-1 +Gab1kp70 1.79330734762095e-1 +Gab1kp71 6.88931712557604e-1 +Gab1kp72 9.22136524885445e-2 +Gab1kp73 2.98344535037069e-1 +Gab1kp74 7.64644004450076e-2 +Gab1kp75 9.3958164303171e-2 +Gab1kp76 8.8252420049796e-1 +Gab1kp77 2.65565223728305e-1 +Gab1kp78 8.4993010543607e-1 +Gab1kp79 9.93832547054416e-1 +Gab1kp80 2.85970169779949e-2 +Gab1kp81 8.60664808545255e-1 +Gab1kp82 3.64938764618722e-1 +Gab1kp83 3.97312566269352e-2 +Gab1kp84 3.20288574330021e-1 +Gab1kp85 9.43054858692847e-1 +Gab1kp86 1.51265490820168e-1 +Gab1kp87 8.35850377271163e-1 +Gab1kp88 3.9780775924408e-2 +Gab1kp89 6.30932503134102e-1 +Gab1kp90 3.32391948687405e-2 +Gab1kp91 9.02017698365222e-2 +Gab1kp92 5.37650024214315e-1 +Gab1kp93 1.52462712529331e-1 +Gab1kp94 7.44822529477142e-2 +Gab1kp95 3.81255548764085e-2 +Gab1kp96 6.72974270318821e-2 +Gab1kp97 5.72918654990821e-2 +Gab1kp98 5.45264200264478e-1 +Gab1kp99 7.84350181988844e-2 +Gab1kp100 1.34235843242573e-2 +Gab1kp101 3.65112322534793e-1 +Gab1kp102 4.42764099548992e-1 +Gab1kp103 3.82546347527449e-1 +Gab1kp104 6.35883074076855e-1 +Gab1kp105 2.59756886335555e-2 +Gab1kp106 8.67259547156402e-1 +Gab1kp107 4.86156447305251e-1 +Gab1kp108 3.77418118675064e-2 +Gab1kp109 3.90671913515649e-1 +Gab1kp110 3.56725621880395e-2 +Gab1kp111 3.82074278974778e-1 +Gab1kp112 5.25107067249229e-2 +Gab1kp113 5.39435189730705e-1 +Gab1kp114 9.34735231509552e-1 +Gab1kp115 1.45329501078618e-2 +Gab1kp116 8.51311537687985e-2 +Gab1kp117 3.54169909715336e-1 +Gab1kp118 4.33863429051934e-1 +Gab1kp119 3.39300906504241e-1 +Gab1kp120 3.85128293076843e-1 +Gab1kp121 3.6412969122229e-2 +Gab1kp122 3.42139323434344e-1 +Gab1kp123 1.25890011675489e-1 +Gab1kp124 1.94813470549195e-1 +Gab1kp125 9.8003934982591e-2 +Gab1kp126 4.92423817966665e-2 +Gab1kp127 9.76560811665314e-1 +Gab1kp128 3.92729076406397e-2 +Gab1kp129 5.53728123038621e-1 +Gab1kp130 7.69883583742472e-2 +Gab1kp131 7.27273779712493e-2 +Gab1kp132 2.73106646626792e-2 +Gab1kp133 8.93155681304097e-1 +Gab1kp134 4.5877312169635e-2 +Gab1kp135 2.02635815571568e-2 +Gab1kp136 3.65005005212328e-1 +Gab1kp137 3.62453153129877e-2 +Gab1kp138 6.56010933793874e-1 +Gab1kp139 1.20687516377745e-2 +Gab1kp140 9.0068597109921e-1 +Gab1kp141 7.94889774029508e-1 +Gab1kp142 1.47879843065186e-2 +Gab1kp143 3.82145997625815e-1 +Gab1kp144 7.39492359635028e-1 +Gab1kp145 3.14858173375256e-1 +Gab1kp146 9.07136916358093e-1 +Gab1kp147 2.13946826210275e-1 +Gab1kp148 2.22305968575301e-1 +Gab1kp149 8.14790581270913e-1 +Gab1kp150 3.52672941805116e-1 +Gab1kp151 2.3375040442304e-1 +Gab1kp152 3.75503845672807e-2 +Gab1kp153 2.22274772107301e-1 +Gab1kp154 8.4191964204494e-2 +Gab1kp155 8.54033761596293e-2 + +Gab1kp156 1.46657846706313e-6 +Gab1kp157 6.834203762122e-7 +Gab1kp158 2.28068860916886e-7 +Gab1kp159 2.38343153678147e-6 +Gab1kp160 7.4594943271976e-6 +Gab1kp161 4.58433700010636e-6 +Gab1kp162 9.21239244666731e-1 +Gab1kp163 4.83857466703586e-1 +Gab1kp164 3.68569830054378e-1 +Gab1kp165 3.04402959768407e-2 +Gab1kp166 1.4605078022521e-2 +Gab1kp167 1.5471681936429e-1 +Gab1kp168 9.42829803930488e-2 +Gab1kp169 7.09585670734958e-1 +Gab1kp170 9.99307828310231e-2 +Gab1kp171 4.60012468602565e-7 +Gab1kp172 4.62955624807586e-2 + + +PI3Kkp1 5.88410107982645e-7 +PI3Kkp2 9.80542618619103e-6 +PI3Kkp3 6.66744738668615e-7 +PI3Kkp4 3.10295546030824e-1 +PI3Kkp5 8.27527892544981e-6 +PI3Kkp6 4.44842583219685e-2 + +PI3Kkp7 1.94595846478239e-6 +PI3Kkp8 1.76813220419643e-6 +PI3Kkp9 6.386829800952e-6 +PI3Kkp10 5.15064097908112e-6 +PI3Kkp11 7.85287947262356e-7 +PI3Kkp12 4.37909434779328e-6 +PI3Kkp13 4.60027889585098e-7 + +PI3Kkm7 7.0508917514033e-1 +PI3Kkm8 6.72236279174069e-1 +PI3Kkm9 4.97861425615832e-2 +PI3Kkm10 1.41917372721451e-2 +PI3Kkm11 5.77649463506566e-1 +PI3Kkm12 8.78805058758934e-2 +PI3Kkm13 1.7532444673634e-2 + +PIP3kp1 5.48782230800754e-2 +PIP3kp1_5 5*PIP3kp1 +PIP3kp3 9.67988792384551e-3 + + +Akt1kp1 9.88533437962741e-7 +Akt1kp2 2.21983420789547e-6 +Akt1kp3 1.02753819132869e-6 +Akt1kp4 5.0119136591926e-1 +Akt1kp5 8.34868759634759e-1 +Akt1kp6 3.61676724413996e-2 +Akt1kp7 3.69211236144935e-7 +Akt1kp8 2.62409039589227e-2 +Akt1kp9 4.76384581518204e-2 +Akt1kp10 2.05533084211891e-2 +Akt1kp11 5.36964405281211e-2 +Akt1kp12 2.74620431360807e-3 + + +Akt1km1 1.73047023274262e-2 +Akt1km2 1.43226416524573e-1 + + +rGAPkp1 7.97543429085357e-7 +rGAPkp2 7.27732102199911e-6 +rGAPkp3 7.89216962179904e-2 +rGAPkp4 4.1163628948874e-1 + +rGAPkm1 9.63672004244575e-1 +end parameters + + +begin molecule types + +# Each species needs a location tag (outside,membrane,cytoplasms,destroyed etc..) +EGF(EGFL,deg~F~T,loc~Ex~En) +HRG(EGFL,deg~F~T,loc~Ex~En) +EGFR(I_III,II,T669~O~P,Y992~O~P,Y1068~O~P,Y1086~O~P,Y1114~O~P,Y1148~O~P,Y1173~O~P,loc~M~En) +ErbB2(II,Y1139~O~P,Y1196~O~P,Y1222~O~P,Y1248~O~P,loc~M~En) +ErbB3(I_III,II,Y1054~O~P,Y1197~O~P,Y1222~O~P,Y1260~O~P,Y1276~O~P,Y1289~O~P,Y1328~O~P,loc~M~En) +ErbB4(I_III,II,Y1056~O~P,Y1188~O~P,Y1242~O~P,loc~M~En) +p52Shc1(PTB,Y317~O~P,loc~C) +Grb2(SH2r,SH2s,cSH3,nSH3,loc~C) +Sos1(PRS,REM,GEF,S1132~O~P,S1167~O~P,S1178~O~P,S1193~O~P,loc~C) +#S581 means S551, Y619 means Y627, Y657 means Y659 +Gab1(PH,PRS1_PRS2,T312~O~P,S381~O~P,Y447~O~P,S454~O~P,Y472~O~P,T476~O~P,S581~O~P,S597~O~P,Y619~O~P,Y657~O~P,loc~C) +PI3K(lipid_kinase,R_p85_nSH2_cSH2,G_p85_nSH2_cSH2,p110_RBD,loc~C) +PIP3(C3P,two~F~T,loc~M) +PDK1(PH,STkinase,loc~C) +Akt1(PH,STkinase,T308~O~P,S473~O~P,loc~C) +KRas(GTPase,g~GDP~GTP,loc~M) +p120RasGAP(nSH2,GAP) +Raf1(RBD,STkinase,S29~O~P,S43~O~P,S259~O~P,S289~O~P,S296~O~P,S301~O~P,S338~O~P,Y341~O~P,S471~O~P,T491~O~P,S494~O~P,S642~O~P,loc~C) +MEK1(delta,S218~O~P,S222~O~P,T292~O~P,loc~C) +ERK2(CD,STkinase,T185~O~P,Y187~O~P,loc~C) + +end molecule types + + + +begin species + +EGF(EGFL,deg~F,loc~Ex) EGF_tot +HRG(EGFL,deg~F,loc~Ex) HRG_tot +EGFR(I_III,II,T669~O,Y992~O,Y1068~O,Y1086~O,Y1114~O,Y1148~O,Y1173~O,loc~M) EGFR_tot +ErbB2(II,Y1139~O,Y1196~O,Y1222~O,Y1248~O,loc~M) ErbB2_tot +ErbB3(I_III,II,Y1054~O,Y1197~O,Y1222~O,Y1260~O,Y1276~O,Y1289~O,Y1328~O,loc~M) ErbB3_tot +ErbB4(I_III,II,Y1056~O,Y1188~O,Y1242~O,loc~M) ErbB4_tot +p52Shc1(PTB,Y317~O,loc~C) p52Shc1_tot +Grb2(SH2r,SH2s,cSH3,nSH3,loc~C) Grb2_tot +Sos1(PRS,REM,GEF,S1132~O,S1167~O,S1178~O,S1193~O,loc~C) Sos1_tot +Gab1(PH,PRS1_PRS2,T312~O,S381~O,Y447~O,S454~O,Y472~O,T476~O,S581~O,S597~O,Y619~O,Y657~O,loc~C) Gab1_tot +PI3K(lipid_kinase,G_p85_nSH2_cSH2,R_p85_nSH2_cSH2,p110_RBD,loc~C) PI3K_tot +PIP3(C3P,two~F,loc~M) 0 +PDK1(PH,STkinase,loc~C) PDK1_tot +Akt1(PH,STkinase,T308~O,S473~O,loc~C) Akt1_tot +KRas(GTPase,g~GDP,loc~M) RAS_tot +p120RasGAP(nSH2,GAP) p120RasGAP_tot +Raf1(RBD,STkinase,S29~O,S43~O,S259~O,S289~O,S296~O,S301~O,S338~O,Y341~O,S471~O,T491~O,S494~O,S642~O,loc~C) Raf1_tot +MEK1(delta,S218~O,S222~O,T292~O,loc~C) MEK1_tot +ERK2(CD,STkinase,T185~O,Y187~O,loc~C) ERK2_tot + +end species + +#Species that are being observed + +begin observables +Molecules EGFREGFR EGFR(II!1,loc~M).EGFR(II!1,loc~M) +Molecules EGFRErbB2 EGFR(II!1,loc~M).ErbB2(II!1,loc~M) +Molecules EGFRErbB3 EGFR(II!1,loc~M).ErbB3(II!1,loc~M) +Molecules EGFRErbB4 EGFR(II!1,loc~M).ErbB4(II!1,loc~M) +Molecules ErbB2ErbB2 ErbB2(II!1,loc~M).ErbB2(II!1,loc~M) +Molecules ErbB2ErbB3 ErbB2(II!1,loc~M).ErbB3(II!1,loc~M) +Molecules ErbB2ErbB4 ErbB2(II!1,loc~M).ErbB4(II!1,loc~M) +Molecules ErbB3ErbB3 ErbB3(II!1,loc~M).ErbB3(II!1,loc~M) +Molecules ErbB3ErbB4 ErbB3(II!1,loc~M).ErbB4(II!1,loc~M) +Molecules ErbB4ErbB4 ErbB4(II!1,loc~M).ErbB4(II!1,loc~M) + +Molecules EGFREGFREn EGFR(II!1,loc~En).EGFR(II!1,loc~En) +Molecules EGFRErbB2En EGFR(II!1,loc~En).ErbB2(II!1,loc~En) +Molecules EGFRErbB3En EGFR(II!1,loc~En).ErbB3(II!1,loc~En) +Molecules EGFRErbB4En EGFR(II!1,loc~En).ErbB4(II!1,loc~En) +Molecules ErbB2ErbB2En ErbB2(II!1,loc~En).ErbB2(II!1,loc~En) +Molecules ErbB2ErbB3En ErbB2(II!1,loc~En).ErbB3(II!1,loc~En) +Molecules ErbB2ErbB4En ErbB2(II!1,loc~En).ErbB4(II!1,loc~En) +Molecules ErbB3ErbB3En ErbB3(II!1,loc~En).ErbB3(II!1,loc~En) +Molecules ErbB3ErbB4En ErbB3(II!1,loc~En).ErbB4(II!1,loc~En) +Molecules ErbB4ErbB4En ErbB4(II!1,loc~En).ErbB4(II!1,loc~En) + + + +Molecules ERK_T185 ERK2(T185~P!?) +Molecules AKT_S473 Akt1(S473~P!?) + + +Molecules EGFR_669 EGFR(T669~P!?) +Molecules EGFR_992 EGFR(Y992~P!?) +Molecules EGFR_1068 EGFR(Y1068~P!?) +Molecules EGFR_1086 EGFR(Y1086~P!?) +Molecules EGFR_1114 EGFR(Y1114~P!?) +Molecules EGFR_1148 EGFR(Y1148~P!?) +Molecules EGFR_1173 EGFR(Y1173~P!?) + +Molecules ErbB2_1139 ErbB2(Y1139~P!?) +Molecules ErbB2_1196 ErbB2(Y1196~P!?) +Molecules ErbB2_1222 ErbB2(Y1222~P!?) +Molecules ErbB2_1248 ErbB2(Y1248~P!?) + +Molecules ErbB3_1054 ErbB3(Y1054~P!?) +Molecules ErbB3_1197 ErbB3(Y1197~P!?) +Molecules ErbB3_1222 ErbB3(Y1222~P!?) +Molecules ErbB3_1260 ErbB3(Y1260~P!?) +Molecules ErbB3_1276 ErbB3(Y1276~P!?) +Molecules ErbB3_1289 ErbB3(Y1289~P!?) +Molecules ErbB3_1328 ErbB3(Y1328~P!?) + +Molecules ErbB4_1056 ErbB4(Y1056~P!?) +Molecules ErbB4_1188 ErbB4(Y1188~P!?) +Molecules ErbB4_1242 ErbB4(Y1242~P!?) + +Molecules pSHC p52Shc1(Y317~P!?) + +Molecules Sos1_1132 Sos1(S1132~P!?) +Molecules Sos1_1167 Sos1(S1167~P!?) +Molecules Sos1_1178 Sos1(S1178~P!?) +Molecules Sos1_1193 Sos1(S1193~P!?) + +Molecules Gab1_312 Gab1(T312~P!?) +Molecules Gab1_381 Gab1(S381~P!?) +Molecules Gab1_447 Gab1(Y447~P!?) +Molecules Gab1_454 Gab1(S454~P!?) +Molecules Gab1_472 Gab1(Y472~P!?) +Molecules Gab1_476 Gab1(T476~P!?) +Molecules Gab1_581 Gab1(S581~P!?) +Molecules Gab1_597 Gab1(S597~P!?) +Molecules Gab1_619 Gab1(Y619~P!?) +Molecules Gab1_657 Gab1(Y657~P!?) + + +Molecules Raf1_29 Raf1(S29~P!?) +Molecules Raf1_43 Raf1(S43~P!?) +Molecules Raf1_259 Raf1(S259~P!?) +Molecules Raf1_289 Raf1(S289~P!?) +Molecules Raf1_296 Raf1(S296~P!?) +Molecules Raf1_301 Raf1(S301~P!?) +Molecules Raf1_338 Raf1(S338~P!?) +Molecules Raf1_341 Raf1(Y341~P!?) +Molecules Raf1_471 Raf1(S471~P!?) +Molecules Raf1_491 Raf1(T491~P!?) +Molecules Raf1_494 Raf1(S494~P!?) +Molecules Raf1_642 Raf1(S642~P!?) + +Molecules MEK1_218 MEK1(S218~P!?) +Molecules MEK1_222 MEK1(S222~P!?) +Molecules MEK1_292 MEK1(T292~P!?) + +Molecules pERK_Y187 ERK2(Y187~P!?) + +Molecules AKT_T308 Akt1(T308~P!?) +end observables + + +####################### RULES BEGIN HERE ####################### +begin reaction rules +############## LIGAND BINDING ############## + +# EGF binding to an EGFR monomer +1 EGFR(I_III,II,loc~M) + EGF(EGFL,deg~F,loc~Ex) <-> EGFR(I_III!1,II,loc~M).EGF(EGFL!1,deg~F,loc~Ex) EGFkp1,EGFkm1 + +# HRG binding to an ErbB3 monomer +2 ErbB3(I_III,II,loc~M) + HRG(EGFL,deg~F,loc~Ex) <-> ErbB3(I_III!1,II,loc~M).HRG(EGFL!1,deg~F,loc~Ex) HRG3kp1,HRG3km1 + +# HRG binding to an ErbB4 monomer +3 ErbB4(I_III,II,loc~M) + HRG(EGFL,deg~F,loc~Ex) <-> ErbB4(I_III!1,II,loc~M).HRG(EGFL!1,deg~F,loc~Ex) HRG4kp1,HRG4km1 + + +#EGF binding to an EGFR homodimer +4 EGFR(I_III,II!1,loc~M).EGFR(I_III,II!1,loc~M) + EGF(EGFL,deg~F,loc~Ex) <-> EGFR(I_III,II!1,loc~M).EGFR(I_III!2,II!1,loc~M).EGF(EGFL!2,deg~F,loc~Ex) EGFkp2,EGFkm2 +5 EGF(EGFL!2,deg~F,loc~Ex).EGFR(I_III!2,II!1,loc~M).EGFR(I_III,II!1,loc~M) + EGF(EGFL,deg~F,loc~Ex) <-> EGF(EGFL!2,deg~F,loc~Ex).EGFR(I_III!2,II!1,loc~M).EGFR(I_III!3,II!1,loc~M).EGF(EGFL!3,deg~F,loc~Ex) EGFkp3,EGFkm3 + +#EGF binding to an EGFR-ErbB2 heterodimer +6 ErbB2(II!1,loc~M).EGFR(I_III,II!1,loc~M) + EGF(EGFL,deg~F,loc~Ex) <-> ErbB2(II!1,loc~M).EGFR(I_III!2,II!1,loc~M).EGF(EGFL!2,deg~F,loc~Ex) EGFkp2,EGFkm2 + +#Ligand binding to an EGFR-ErbB3 heterodimer +7 EGF(EGFL,deg~F,loc~Ex) + EGFR(I_III,II!1,loc~M).ErbB3(I_III,II!1,loc~M) <-> EGF(EGFL!2,deg~F,loc~Ex).EGFR(I_III!2,II!1,loc~M).ErbB3(I_III,II!1,loc~M) EGFkp2,EGFkm2 +8 EGFR(I_III,II!1,loc~M).ErbB3(I_III,II!1,loc~M) + HRG(EGFL,deg~F,loc~Ex) <-> EGFR(I_III,II!1,loc~M).ErbB3(I_III!2,II!1,loc~M).HRG(EGFL!2,deg~F,loc~Ex) HRG3kp2,HRG3km2 +9 EGF(EGFL!2,deg~F,loc~Ex).EGFR(I_III!2,II!1,loc~M).ErbB3(I_III,II!1,loc~M) + HRG(EGFL,deg~F,loc~Ex) <-> EGF(EGFL!2,deg~F,loc~Ex).EGFR(I_III!2,II!1,loc~M).ErbB3(I_III!3,II!1,loc~M).HRG(EGFL!3,deg~F,loc~Ex) HRG3kp3,HRG3km3 +10 EGF(EGFL,deg~F,loc~Ex) + EGFR(I_III,II!1,loc~M).ErbB3(I_III!3,II!1,loc~M).HRG(EGFL!3,deg~F,loc~Ex) <-> EGF(EGFL!2,deg~F,loc~Ex).EGFR(I_III!2,II!1,loc~M).ErbB3(I_III!3,II!1,loc~M).HRG(EGFL!3,deg~F,loc~Ex) EGFkp3,EGFkm3 + +#Ligand binding to an EGFR-ErbB4 heterodimer +11 EGF(EGFL,deg~F,loc~Ex) + EGFR(I_III,II!1,loc~M).ErbB4(I_III,II!1,loc~M) <-> EGF(EGFL!2,deg~F,loc~Ex).EGFR(I_III!2,II!1,loc~M).ErbB4(I_III,II!1,loc~M) EGFkp2,EGFkm2 +12 EGFR(I_III,II!1,loc~M).ErbB4(I_III,II!1,loc~M) + HRG(EGFL,deg~F,loc~Ex) <-> EGFR(I_III,II!1,loc~M).ErbB4(I_III!2,II!1,loc~M).HRG(EGFL!2,deg~F,loc~Ex) HRG4kp2,HRG4km2 +13 EGF(EGFL!2,deg~F,loc~Ex).EGFR(I_III!2,II!1,loc~M).ErbB4(I_III,II!1,loc~M) + HRG(EGFL,deg~F,loc~Ex) <-> EGF(EGFL!2,deg~F,loc~Ex).EGFR(I_III!2,II!1,loc~M).ErbB4(I_III!3,II!1,loc~M).HRG(EGFL!3,deg~F,loc~Ex) HRG4kp3,HRG4km3 +14 EGF(EGFL,deg~F,loc~Ex) + EGFR(I_III,II!1,loc~M).ErbB4(I_III!3,II!1,loc~M).HRG(EGFL!3,deg~F,loc~Ex) <-> EGF(EGFL!2,deg~F,loc~Ex).EGFR(I_III!2,II!1,loc~M).ErbB4(I_III!3,II!1,loc~M).HRG(EGFL!3,deg~F,loc~Ex) EGFkp3,EGFkm3 + + +#HRG binding to an ErbB2-ErbB3 heterodimer +15 ErbB2(II!1,loc~M).ErbB3(I_III,II!1,loc~M) + HRG(EGFL,deg~F,loc~Ex) <-> ErbB2(II!1,loc~M).ErbB3(I_III!2,II!1,loc~M).HRG(EGFL!2,deg~F,loc~Ex) HRG3kp2,HRG3km2 + +#HRG binding to an ErbB2-ErbB4 heterodimer +16 ErbB2(II!1,loc~M).ErbB4(I_III,II!1,loc~M) + HRG(EGFL,deg~F,loc~Ex) <-> ErbB2(II!1,loc~M).ErbB4(I_III!2,II!1,loc~M).HRG(EGFL!2,deg~F,loc~Ex) HRG4kp2,HRG4km2 + + +#HRG binding to an ErbB3 homodimer +17 ErbB3(I_III,II!1,loc~M).ErbB3(I_III,II!1,loc~M) + HRG(EGFL,deg~F,loc~Ex) <-> ErbB3(I_III,II!1,loc~M).ErbB3(I_III!2,II!1,loc~M).HRG(EGFL!2,deg~F,loc~Ex) HRG3kp2,HRG3km2 +18 HRG(EGFL!2,deg~F,loc~Ex).ErbB3(I_III!2,II!1,loc~M).ErbB3(I_III,II!1,loc~M) + HRG(EGFL,deg~F,loc~Ex) <-> HRG(EGFL!2,deg~F,loc~Ex).ErbB3(I_III!2,II!1,loc~M).ErbB3(I_III!3,II!1,loc~M).HRG(EGFL!3,deg~F,loc~Ex) HRG3kp3,HRG3km3 + +#Ligand binding to an ErbB3-ErbB4 heterodimer +19 ErbB3(I_III,II!1,loc~M).ErbB4(I_III,II!1,loc~M) + HRG(EGFL,deg~F,loc~Ex) <-> ErbB3(I_III,II!1,loc~M).ErbB4(I_III!2,II!1,loc~M).HRG(EGFL!2,deg~F,loc~Ex) HRG4kp2,HRG4km2 +20 HRG(EGFL,deg~F,loc~Ex) + ErbB3(I_III,II!1,loc~M).ErbB4(I_III,II!1,loc~M) <-> HRG(EGFL!2,deg~F,loc~Ex).ErbB3(I_III!2,II!1,loc~M).ErbB4(I_III,II!1,loc~M) HRG3kp2,HRG3km2 +21 HRG(EGFL!2,deg~F,loc~Ex).ErbB3(I_III!2,II!1,loc~M).ErbB4(I_III,II!1,loc~M) + HRG(EGFL,deg~F,loc~Ex) <-> HRG(EGFL!2,deg~F,loc~Ex).ErbB3(I_III!2,II!1,loc~M).ErbB4(I_III!3,II!1,loc~M).HRG(EGFL!3,deg~F,loc~Ex) HRG4kp3,HRG4km3 +22 HRG(EGFL,deg~F,loc~Ex) + ErbB3(I_III,II!1,loc~M).ErbB4(I_III!3,II!1,loc~M).HRG(EGFL!3,deg~F,loc~Ex) <-> HRG(EGFL!2,deg~F,loc~Ex).ErbB3(I_III!2,II!1,loc~M).ErbB4(I_III!3,II!1,loc~M).HRG(EGFL!3,deg~F,loc~Ex) HRG3kp3,HRG3km3 + +#HRG binding to an ErbB4 homodimer +23 ErbB4(I_III,II!1,loc~M).ErbB4(I_III,II!1,loc~M) + HRG(EGFL,deg~F,loc~Ex) <-> ErbB4(I_III,II!1,loc~M).ErbB4(I_III!2,II!1,loc~M).HRG(EGFL!2,deg~F,loc~Ex) HRG4kp2,HRG4km2 +24 HRG(EGFL!2,deg~F,loc~Ex).ErbB4(I_III!2,II!1,loc~M).ErbB4(I_III,II!1,loc~M) + HRG(EGFL,deg~F,loc~Ex) <-> HRG(EGFL!2,deg~F,loc~Ex).ErbB4(I_III!2,II!1,loc~M).ErbB4(I_III!3,II!1,loc~M).HRG(EGFL!3,deg~F,loc~Ex) HRG4kp3,HRG4km3 + + +############## RECEPTOR DIMERIZATION ############## + +# EGFR-EGFR +# EGFR-EGFR dimerization with no EGF bound +25 EGFR(I_III,II,loc~M) + EGFR(I_III,II,loc~M) <-> EGFR(I_III,II!1,loc~M).EGFR(I_III,II!1,loc~M) Dimkp1,Dimkm1 + +# EGFR-EGFR dimerization with one EGF bound +26 EGFR(I_III!1,II,loc~M).EGF(EGFL!1,loc~Ex) + EGFR(I_III,II,loc~M) <-> EGFR(I_III!1,II!2,loc~M).EGF(EGFL!1,loc~Ex).EGFR(I_III,II!2,loc~M) Dimkp2,Dimkm2 + +# EGFR-EGFR dimerization with two EGF bound +27 EGFR(I_III!1,II,loc~M).EGF(EGFL!1,loc~Ex) + EGFR(I_III!2,II,loc~M).EGF(EGFL!2,loc~Ex) <-> EGFR(I_III!1,II!3,loc~M).EGF(EGFL!1,loc~Ex).EGFR(I_III!2,II!3,loc~M).EGF(EGFL!2,loc~Ex) Dimkp3,Dimkm3 + + +# EGFR-ErbB2 +# EGFR-ErbB2 dimerization with no EGF bound +28 EGFR(I_III,II,loc~M) + ErbB2(II,loc~M) <-> EGFR(I_III,II!1,loc~M).ErbB2(II!1,loc~M) Dimkp4,Dimkm4 + +# EGFR-ErbB2 dimerization with EGF bound +29 EGFR(I_III!1,II,loc~M).EGF(EGFL!1,loc~Ex) + ErbB2(II,loc~M) <-> EGFR(I_III!1,II!2,loc~M).EGF(EGFL!1,loc~Ex).ErbB2(II!2,loc~M) Dimkp5,Dimkm5 + + +# EGFR-ErbB3 +# EGFR-ErbB3 dimerization with no ligand bound +30 EGFR(I_III,II,loc~M) + ErbB3(I_III,II,loc~M) <-> EGFR(I_III,II!1,loc~M).ErbB3(I_III,II!1,loc~M) Dimkp6,Dimkm6 + +# EGFR-ErbB3 dimerization with EGF bound +31 EGFR(I_III!1,II,loc~M).EGF(EGFL!1,loc~Ex) + ErbB3(I_III,II,loc~M) <-> EGFR(I_III!1,II!2,loc~M).EGF(EGFL!1,loc~Ex).ErbB3(I_III,II!2,loc~M) Dimkp7,Dimkm7 + +# EGFR-ErbB3 dimerization with HRG bound +32 ErbB3(I_III!1,II,loc~M).HRG(EGFL!1,loc~Ex) + EGFR(I_III,II,loc~M) <-> ErbB3(I_III!1,II!2,loc~M).HRG(EGFL!1,loc~Ex).EGFR(I_III,II!2,loc~M) Dimkp8,Dimkm8 + +# EGFR-ErbB3 dimerization with EGF and HRG bound +33 EGFR(I_III!1,II,loc~M).EGF(EGFL!1,loc~Ex) + ErbB3(I_III!2,II,loc~M).HRG(EGFL!2,loc~Ex) <-> EGFR(I_III!1,II!3,loc~M).EGF(EGFL!1,loc~Ex).ErbB3(I_III!2,II!3,loc~M).HRG(EGFL!2,loc~Ex) Dimkp9,Dimkm9 + + +# EGFR-ErbB4 +# EGFR-ErbB4 dimerization with no ligand bound +34 EGFR(I_III,II,loc~M) + ErbB4(I_III,II,loc~M) <-> EGFR(I_III,II!1,loc~M).ErbB4(I_III,II!1,loc~M) Dimkp10,Dimkm10 + +# EGFR-ErbB4 dimerization with EGF bound +35 EGFR(I_III!1,II,loc~M).EGF(EGFL!1,loc~Ex) + ErbB4(I_III,II,loc~M) <-> EGFR(I_III!1,II!2,loc~M).EGF(EGFL!1,loc~Ex).ErbB4(I_III,II!2,loc~M) Dimkp11,Dimkm11 + +# EGFR-ErbB4 dimerization with HRG bound +36 ErbB4(I_III!1,II,loc~M).HRG(EGFL!1,loc~Ex) + EGFR(I_III,II,loc~M) <-> ErbB4(I_III!1,II!2,loc~M).HRG(EGFL!1,loc~Ex).EGFR(I_III,II!2,loc~M) Dimkp12,Dimkm12 + +# EGFR-ErbB4 dimerization with EGF and HRG bound +37 EGFR(I_III!1,II,loc~M).EGF(EGFL!1,loc~Ex) + ErbB4(I_III!2,II,loc~M).HRG(EGFL!2,loc~Ex) <-> EGFR(I_III!1,II!3,loc~M).EGF(EGFL!1,loc~Ex).ErbB4(I_III!2,II!3,loc~M).HRG(EGFL!2,loc~Ex) Dimkp13,Dimkm13 + + +# ErbB2-ErbB2 dimerization +38 ErbB2(II,loc~M) + ErbB2(II,loc~M) <-> ErbB2(II!1,loc~M).ErbB2(II!1,loc~M) Dimkp14,Dimkm14 + + +# ErbB2-ErbB3 +# ErbB2-ErbB3 dimerization with no ligand bound +39 ErbB2(II,loc~M) + ErbB3(I_III,II,loc~M) <-> ErbB2(II!1,loc~M).ErbB3(I_III,II!1,loc~M) Dimkp15,Dimkm15 + +# ErbB2-ErbB3 dimerization with HRG bound +40 ErbB3(I_III!1,II,loc~M).HRG(EGFL!1,loc~Ex) + ErbB2(II,loc~M) <-> ErbB3(I_III!1,II!2,loc~M).HRG(EGFL!1,loc~Ex).ErbB2(II!2,loc~M) Dimkp16,Dimkm16 + + +# ErbB2-ErbB4 +# ErbB2-ErbB4 dimerization with no ligand bound +41 ErbB2(II,loc~M) + ErbB4(I_III,II,loc~M) <-> ErbB2(II!1,loc~M).ErbB4(I_III,II!1,loc~M) Dimkp17,Dimkm17 + +# ErbB2-ErbB4 dimerization with HRG bound +42 ErbB4(I_III!1,II,loc~M).HRG(EGFL!1,loc~Ex) + ErbB2(II,loc~M) <-> ErbB4(I_III!1,II!2,loc~M).HRG(EGFL!1,loc~Ex).ErbB2(II!2,loc~M) Dimkp18,Dimkm18 + + +# ErbB3-ErbB3 +# ErbB3-ErbB3 dimerization with no HRG bound +43 ErbB3(I_III,II,loc~M) + ErbB3(I_III,II,loc~M) <-> ErbB3(I_III,II!1,loc~M).ErbB3(I_III,II!1,loc~M) Dimkp19,Dimkm19 + +# ErbB3-ErbB3 dimerization with one HRG bound +44 ErbB3(I_III!1,II,loc~M).HRG(EGFL!1,loc~Ex) + ErbB3(I_III,II,loc~M) <-> ErbB3(I_III!1,II!2,loc~M).HRG(EGFL!1,loc~Ex).ErbB3(I_III,II!2,loc~M) Dimkp20,Dimkm20 + +# ErbB3-ErbB3 dimerization with two HRG bound +45 ErbB3(I_III!1,II,loc~M).HRG(EGFL!1,loc~Ex) + ErbB3(I_III!2,II,loc~M).HRG(EGFL!2,loc~Ex) <-> ErbB3(I_III!1,II!3,loc~M).HRG(EGFL!1,loc~Ex).ErbB3(I_III!2,II!3,loc~M).HRG(EGFL!2,loc~Ex) Dimkp21,Dimkm21 + + +# ErbB3-ErbB4 +# ErbB3-ErbB4 dimerization with no HRG bound +46 ErbB3(I_III,II,loc~M) + ErbB4(I_III,II,loc~M) <-> ErbB3(I_III,II!1,loc~M).ErbB4(I_III,II!1,loc~M) Dimkp22,Dimkm22 + +# ErbB3-ErbB4 dimerization with HRG bound on ErbB3 +47 ErbB3(I_III!1,II,loc~M).HRG(EGFL!1,loc~Ex) + ErbB4(I_III,II,loc~M) <-> ErbB3(I_III!1,II!2,loc~M).HRG(EGFL!1,loc~Ex).ErbB4(I_III,II!2,loc~M) Dimkp23,Dimkm23 + +# ErbB3-ErbB4 dimerization with HRG bound on ErbB4 +48 ErbB3(I_III,II,loc~M) + ErbB4(I_III!1,II,loc~M).HRG(EGFL!1,loc~Ex) <-> ErbB3(I_III,II!2,loc~M).ErbB4(I_III!1,II!2,loc~M).HRG(EGFL!1,loc~Ex) Dimkp24,Dimkm24 + +# ErbB3-ErbB4 dimerization with HRG bound on both receptors +49 ErbB3(I_III!1,II,loc~M).HRG(EGFL!1,loc~Ex) + ErbB4(I_III!2,II,loc~M).HRG(EGFL!2,loc~Ex) <-> ErbB3(I_III!1,II!3,loc~M).HRG(EGFL!1,loc~Ex).ErbB4(I_III!2,II!3,loc~M).HRG(EGFL!2,loc~Ex) Dimkp25,Dimkm25 + + +# ErbB4-ErbB4 +# ErbB4-ErbB4 dimerization with no HRG bound +50 ErbB4(I_III,II,loc~M) + ErbB4(I_III,II,loc~M) <-> ErbB4(I_III,II!1,loc~M).ErbB4(I_III,II!1,loc~M) Dimkp26,Dimkm26 + +# ErbB4-ErbB4 dimerization with one HRG bound +51 ErbB4(I_III!1,II,loc~M).HRG(EGFL!1,loc~Ex) + ErbB4(I_III,II,loc~M) <-> ErbB4(I_III!1,II!2,loc~M).HRG(EGFL!1,loc~Ex).ErbB4(I_III,II!2,loc~M) Dimkp27,Dimkm27 + +# ErbB4-ErbB4 dimerization with two HRG bound +52 ErbB4(I_III!1,II,loc~M).HRG(EGFL!1,loc~Ex) + ErbB4(I_III!2,II,loc~M).HRG(EGFL!2,loc~Ex) <-> ErbB4(I_III!1,II!3,loc~M).HRG(EGFL!1,loc~Ex).ErbB4(I_III!2,II!3,loc~M).HRG(EGFL!2,loc~Ex) Dimkp28,Dimkm28 + + + +############## RECEPTOR INTERNALIZATION ############## + +#EGFR-EGFR +#EGFR-EGFR dimers get internalized with two EGF bound +53 EGFR(I_III!1,II!3,loc~M).EGF(EGFL!1,loc~Ex).EGFR(I_III!2,II!3,loc~M).EGF(EGFL!2,loc~Ex) -> EGFR(I_III!1,II!3,loc~En).EGF(EGFL!1,loc~En).EGFR(I_III!2,II!3,loc~En).EGF(EGFL!2,loc~En) Intkp1 + +#EGFR-EGFR dimers get internalized with one EGF bound +54 EGFR(I_III!1,II!2,loc~M).EGF(EGFL!1,loc~Ex).EGFR(I_III,II!2,loc~M) -> EGFR(I_III!1,II!2,loc~En).EGF(EGFL!1,loc~En).EGFR(I_III,II!2,loc~En) Intkp1 + +#EGFR-EGFR dimers get internalized with no ligand bound +55 EGFR(I_III,II!2,loc~M).EGFR(I_III,II!2,loc~M) -> EGFR(I_III,II!2,loc~En).EGFR(I_III,II!2,loc~En) Intkp1 + + +#EGFR-ErbB2 dimers get internalized with EGF bound +56 EGFR(I_III!1,II!2,loc~M).EGF(EGFL!1,loc~Ex).ErbB2(II!2,loc~M) -> EGFR(I_III!1,II!2,loc~En).EGF(EGFL!1,loc~En).ErbB2(II!2,loc~En) Intkp1 + +#EGFR-ErbB2 dimers get internalized with no ligand bound +57 EGFR(I_III,II!2,loc~M).ErbB2(II!2,loc~M) -> EGFR(I_III,II!2,loc~En).ErbB2(II!2,loc~En) Intkp1 + + +#EGFR-ErbB3 dimers get internalized with EGF and HRG bound +58 EGFR(I_III!1,II!3,loc~M).EGF(EGFL!1,loc~Ex).ErbB3(I_III!2,II!3,loc~M).HRG(EGFL!2,loc~Ex) -> EGFR(I_III!1,II!3,loc~En).EGF(EGFL!1,loc~En).ErbB3(I_III!2,II!3,loc~En).HRG(EGFL!2,loc~En) Intkp1 + +#EGFR-ErbB3 dimers get internalized with HRG bound +59 EGFR(I_III,II!3,loc~M).ErbB3(I_III!2,II!3,loc~M).HRG(EGFL!2,loc~Ex) -> EGFR(I_III,II!3,loc~En).ErbB3(I_III!2,II!3,loc~En).HRG(EGFL!2,loc~En) Intkp1 + +#EGFR-ErbB3 dimers get internalized with EGF bound +60 EGFR(I_III!1,II!3,loc~M).EGF(EGFL!1,loc~Ex).ErbB3(I_III,II!3,loc~M) -> EGFR(I_III!1,II!3,loc~En).EGF(EGFL!1,loc~En).ErbB3(I_III,II!3,loc~En) Intkp1 + +#EGFR-ErbB3 dimers get internalized with no ligand bound +61 EGFR(I_III,II!3,loc~M).ErbB3(I_III,II!3,loc~M) -> EGFR(I_III,II!3,loc~En).ErbB3(I_III,II!3,loc~En) Intkp1 + + +#EGFR-ErbB4 dimers get internalized with EGF and HRG bound +62 EGFR(I_III!1,II!3,loc~M).EGF(EGFL!1,loc~Ex).ErbB4(I_III!2,II!3,loc~M).HRG(EGFL!2,loc~Ex) -> EGFR(I_III!1,II!3,loc~En).EGF(EGFL!1,loc~En).ErbB4(I_III!2,II!3,loc~En).HRG(EGFL!2,loc~En) Intkp1 + +#EGFR-ErbB4 dimers get internalized with HRG bound +63 EGFR(I_III,II!3,loc~M).ErbB4(I_III!2,II!3,loc~M).HRG(EGFL!2,loc~Ex) -> EGFR(I_III,II!3,loc~En).ErbB4(I_III!2,II!3,loc~En).HRG(EGFL!2,loc~En) Intkp1 + +#EGFR-ErbB4 dimers get internalized with EGF bound +64 EGFR(I_III!1,II!3,loc~M).EGF(EGFL!1,loc~Ex).ErbB4(I_III,II!3,loc~M) -> EGFR(I_III!1,II!3,loc~En).EGF(EGFL!1,loc~En).ErbB4(I_III,II!3,loc~En) Intkp1 + +#EGFR-ErbB4 dimers get internalized with no ligand bound +65 EGFR(I_III,II!3,loc~M).ErbB4(I_III,II!3,loc~M) -> EGFR(I_III,II!3,loc~En).ErbB4(I_III,II!3,loc~En) Intkp1 + + +#ErbB2-ErbB2 dimers get internalized +66 ErbB2(II!1,loc~M).ErbB2(II!1,loc~M) -> ErbB2(II!1,loc~En).ErbB2(II!1,loc~En) Intkp1 + + +#ErbB3-ErbB2 dimers get internalized with HRG bound +67 ErbB3(I_III!1,II!2,loc~M).HRG(EGFL!1,loc~Ex).ErbB2(II!2,loc~M) -> ErbB3(I_III!1,II!2,loc~En).HRG(EGFL!1,loc~En).ErbB2(II!2,loc~En) Intkp1 + +#ErbB3-ErbB2 dimers get internalized with no ligand bound +68 ErbB3(I_III,II!2,loc~M).ErbB2(II!2,loc~M) -> ErbB3(I_III,II!2,loc~En).ErbB2(II!2,loc~En) Intkp1 + + +#ErbB4-ErbB2 dimers get internalized with HRG bound +69 ErbB4(I_III!1,II!2,loc~M).HRG(EGFL!1,loc~Ex).ErbB2(II!2,loc~M) -> ErbB4(I_III!1,II!2,loc~En).HRG(EGFL!1,loc~En).ErbB2(II!2,loc~En) Intkp1 + +#ErbB4-ErbB2 dimers get internalized with no ligand bound +70 ErbB4(I_III,II!2,loc~M).ErbB2(II!2,loc~M) -> ErbB4(I_III,II!2,loc~En).ErbB2(II!2,loc~En) Intkp1 + + +#ErbB3-ErbB3 dimers get internalized with two HRG bound +71 ErbB3(I_III!1,II!2,loc~M).HRG(EGFL!1,loc~Ex).ErbB3(I_III!3,II!2,loc~M).HRG(EGFL!3,loc~Ex) -> ErbB3(I_III!1,II!2,loc~En).HRG(EGFL!1,loc~En).ErbB3(I_III!3,II!2,loc~En).HRG(EGFL!3,loc~En) Intkp1 + +#ErbB3-ErbB3 dimers get internalized with one HRG bound +72 ErbB3(I_III!1,II!2,loc~M).HRG(EGFL!1,loc~Ex).ErbB3(I_III,II!2,loc~M) -> ErbB3(I_III!1,II!2,loc~En).HRG(EGFL!1,loc~En).ErbB3(I_III,II!2,loc~En) Intkp1 + +#ErbB3-ErbB3 dimers get internalized with no HRG bound +73 ErbB3(I_III,II!2,loc~M).ErbB3(I_III,II!2,loc~M) -> ErbB3(I_III,II!2,loc~En).ErbB3(I_III,II!2,loc~En) Intkp1 + + +#ErbB3-ErbB4 dimers get internalized with two HRG bound +74 ErbB3(I_III!1,II!2,loc~M).HRG(EGFL!1,loc~Ex).ErbB4(I_III!3,II!2,loc~M).HRG(EGFL!3,loc~Ex) -> ErbB3(I_III!1,II!2,loc~En).HRG(EGFL!1,loc~En).ErbB4(I_III!3,II!2,loc~En).HRG(EGFL!3,loc~En) Intkp1 + +#ErbB3-ErbB4 dimers get internalized with HRG bound to ErbB3 +75 ErbB3(I_III!1,II!2,loc~M).HRG(EGFL!1,loc~Ex).ErbB4(I_III,II!2,loc~M) -> ErbB3(I_III!1,II!2,loc~En).HRG(EGFL!1,loc~En).ErbB4(I_III,II!2,loc~En) Intkp1 + +#ErbB3-ErbB4 dimers get internalized with HRG bound to ErbB4 +76 ErbB3(I_III,II!2,loc~M).ErbB4(I_III!1,II!2,loc~M).HRG(EGFL!1,loc~Ex) -> ErbB3(I_III,II!2,loc~En).ErbB4(I_III!1,II!2,loc~En).HRG(EGFL!1,loc~En) Intkp1 + +#ErbB3-ErbB4 dimers get internalized with no HRG bound to both receptors +77 ErbB3(I_III,II!2,loc~M).ErbB4(I_III,II!2,loc~M) -> ErbB3(I_III,II!2,loc~En).ErbB4(I_III,II!2,loc~En) Intkp1 + + +#ErbB4-ErbB4 dimers get internalized with two HRG bound +78 ErbB4(I_III!1,II!2,loc~M).HRG(EGFL!1,loc~Ex).ErbB4(I_III!3,II!2,loc~M).HRG(EGFL!3,loc~Ex) -> ErbB4(I_III!1,II!2,loc~En).HRG(EGFL!1,loc~En).ErbB4(I_III!3,II!2,loc~En).HRG(EGFL!3,loc~En) Intkp1 + +#ErbB4-ErbB4 dimers get internalized with one HRG bound +79 ErbB4(I_III!1,II!2,loc~M).HRG(EGFL!1,loc~Ex).ErbB4(I_III,II!2,loc~M) -> ErbB4(I_III!1,II!2,loc~En).HRG(EGFL!1,loc~En).ErbB4(I_III,II!2,loc~En) Intkp1 + +#ErbB4-ErbB4 dimers get internalized with no HRG bound +80 ErbB4(I_III,II!2,loc~M).ErbB4(I_III,II!2,loc~M) -> ErbB4(I_III,II!2,loc~En).ErbB4(I_III,II!2,loc~En) Intkp1 + + +#internalized EGFR releases ligand +81 EGFR(I_III!1,loc~En).EGF(EGFL!1,deg~F,loc~En) -> EGFR(I_III,loc~En) + EGF(EGFL,deg~F,loc~En) iLigkp1 + +#internalized ErbB3 releases ligand +82 ErbB3(I_III!1,loc~En).HRG(EGFL!1,deg~F,loc~En) -> ErbB3(I_III,loc~En) + HRG(EGFL,deg~F,loc~En) iLigkp2 + +#internalized ErbB4 releases ligand +83 ErbB4(I_III!1,loc~En).HRG(EGFL!1,deg~F,loc~En) -> ErbB4(I_III,loc~En) + HRG(EGFL,deg~F,loc~En) iLigkp3 + +#internalized ligand gets degraded +84 EGF(EGFL,deg~F,loc~En) -> EGF(EGFL,deg~T,loc~En) iLigkp4 +85 HRG(EGFL,deg~F,loc~En) -> HRG(EGFL,deg~T,loc~En) iLigkp4 + + +#internalized receptors dissociate +86 EGFR(II!3,loc~En).EGFR(II!3,loc~En) -> EGFR(II,loc~En) + EGFR(II,loc~En) iDimkp1 +87 EGFR(II!2,loc~En).ErbB2(II!2,loc~En) -> EGFR(II,loc~En) + ErbB2(II,loc~En) iDimkp2 +88 EGFR(II!3,loc~En).ErbB3(II!3,loc~En) -> EGFR(II,loc~En) + ErbB3(II,loc~En) iDimkp3 +89 EGFR(II!3,loc~En).ErbB4(II!3,loc~En) -> EGFR(II,loc~En) + ErbB4(II,loc~En) iDimkp4 + +90 ErbB2(II!2,loc~En).ErbB2(II!2,loc~En) -> ErbB2(II,loc~En) + ErbB2(II,loc~En) iDimkp5 +91 ErbB2(II!2,loc~En).ErbB3(II!2,loc~En) -> ErbB2(II,loc~En) + ErbB3(II,loc~En) iDimkp6 +92 ErbB2(II!2,loc~En).ErbB4(II!2,loc~En) -> ErbB2(II,loc~En) + ErbB4(II,loc~En) iDimkp7 + +93 ErbB3(II!2,loc~En).ErbB3(II!2,loc~En) -> ErbB3(II,loc~En) + ErbB3(II,loc~En) iDimkp8 +94 ErbB3(II!2,loc~En).ErbB4(II!2,loc~En) -> ErbB3(II,loc~En) + ErbB4(II,loc~En) iDimkp9 + +95 ErbB4(II!2,loc~En).ErbB4(II!2,loc~En) -> ErbB4(II,loc~En) + ErbB4(II,loc~En) iDimkp10 + +#non-dimerized receptors with no ligand bound return to the membrane +96 EGFR(I_III,II,loc~En) -> EGFR(I_III,II,loc~M) Intkp15 +97 ErbB2(II,loc~En) -> ErbB2(II,loc~M) Intkp15 +98 ErbB3(I_III,II,loc~En) -> ErbB3(I_III,II,loc~M) Intkp15 +99 ErbB4(I_III,II,loc~En) -> ErbB4(I_III,II,loc~M) Intkp15 + +############## RECEPTOR CROSS-PHOSPHORYLATION ############## + +# Receptor Phosphorylation Reactions + +# NOTE: The philosophy of these rules is that both ligand binding sites in a dimer must be occupied in order for kinase domains to be active + +## EGFR +## (EGFR-EGFR dimers)(992,1068,1086,1114,1148,1173) +## (ErbB2-EGFR dimers)(992,1068,1086,1114,1148,1173) +## (ErbB4-EGFR dimers)(992,1068,1086,1114,1148,1173) + +## ErbB2 +## (EGFR-ErbB2 dimers)(1139,1196,1222,1248) +## (ErbB4-ErbB2 dimers)(1139,1196,1222,1248) + +## ErbB3 +## (EGFR-ErbB3 dimers)(1054,1197,1222,Y1260,1276,1289,1328) +## (ErbB2-ErbB3 dimers)(1054,1197,1222,Y1260,1276,1289,1328) +## (ErbB4-ErbB3 dimers)(1054,1197,1222,Y1260,1276,1289,1328) + +## ErbB4 +## (EGFR-ErbB4 dimers)(1056,1188,1242) +## (ErbB2-ErbB4 dimers)(1056,1188,1242) +## (ErbB4-ErbB4 dimers)(1056,1188,1242) + +## ----------------------------------------- + +# cross-phosphorylation of EGFR +# (EGFR-EGFR dimers) Cross-Phosphorylation of EGFR by EGFR at +# (992,1068,1086,1114,1148,1173) +100 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).EGFR(I_III!3,II!1,Y992~O).EGF(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).EGFR(I_III!3,II!1,Y992~P).EGF(EGFL!3) Phosphokp1 +101 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).EGFR(I_III!3,II!1,Y1068~O).EGF(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).EGFR(I_III!3,II!1,Y1068~P).EGF(EGFL!3) Phosphokp2 +102 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).EGFR(I_III!3,II!1,Y1086~O).EGF(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).EGFR(I_III!3,II!1,Y1086~P).EGF(EGFL!3) Phosphokp3 +103 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).EGFR(I_III!3,II!1,Y1114~O).EGF(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).EGFR(I_III!3,II!1,Y1114~P).EGF(EGFL!3) Phosphokp4 +104 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).EGFR(I_III!3,II!1,Y1148~O).EGF(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).EGFR(I_III!3,II!1,Y1148~P).EGF(EGFL!3) Phosphokp5 +105 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).EGFR(I_III!3,II!1,Y1173~O).EGF(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).EGFR(I_III!3,II!1,Y1173~P).EGF(EGFL!3) Phosphokp6 + + +# (ErbB2-EGFR dimers) Cross-Phosphorylation of EGFR by ErbB2 at +# (992,1068,1086,1114,1148,1173) +106 ErbB2(II!1).EGFR(I_III!3,II!1,Y992~O).EGF(EGFL!3) -> ErbB2(II!1).EGFR(I_III!3,II!1,Y992~P).EGF(EGFL!3) Phosphokp7 +107 ErbB2(II!1).EGFR(I_III!3,II!1,Y1068~O).EGF(EGFL!3) -> ErbB2(II!1).EGFR(I_III!3,II!1,Y1068~P).EGF(EGFL!3) Phosphokp8 +108 ErbB2(II!1).EGFR(I_III!3,II!1,Y1086~O).EGF(EGFL!3) -> ErbB2(II!1).EGFR(I_III!3,II!1,Y1086~P).EGF(EGFL!3) Phosphokp9 +109 ErbB2(II!1).EGFR(I_III!3,II!1,Y1114~O).EGF(EGFL!3) -> ErbB2(II!1).EGFR(I_III!3,II!1,Y1114~P).EGF(EGFL!3) Phosphokp10 +110 ErbB2(II!1).EGFR(I_III!3,II!1,Y1148~O).EGF(EGFL!3) -> ErbB2(II!1).EGFR(I_III!3,II!1,Y1148~P).EGF(EGFL!3) Phosphokp11 +111 ErbB2(II!1).EGFR(I_III!3,II!1,Y1173~O).EGF(EGFL!3) -> ErbB2(II!1).EGFR(I_III!3,II!1,Y1173~P).EGF(EGFL!3) Phosphokp12 + +# (ErbB4-EGFR dimers) Cross-Phosphorylation of EGFR by ErbB4 at +# (992,1068,1086,1114,1148,1173) +112 HRG(EGFL!2).ErbB4(I_III!2,II!1).EGFR(I_III!3,II!1,Y992~O).EGF(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).EGFR(I_III!3,II!1,Y992~P).EGF(EGFL!3) Phosphokp13 +113 HRG(EGFL!2).ErbB4(I_III!2,II!1).EGFR(I_III!3,II!1,Y1068~O).EGF(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).EGFR(I_III!3,II!1,Y1068~P).EGF(EGFL!3) Phosphokp14 +114 HRG(EGFL!2).ErbB4(I_III!2,II!1).EGFR(I_III!3,II!1,Y1086~O).EGF(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).EGFR(I_III!3,II!1,Y1086~P).EGF(EGFL!3) Phosphokp15 +115 HRG(EGFL!2).ErbB4(I_III!2,II!1).EGFR(I_III!3,II!1,Y1114~O).EGF(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).EGFR(I_III!3,II!1,Y1114~P).EGF(EGFL!3) Phosphokp16 +116 HRG(EGFL!2).ErbB4(I_III!2,II!1).EGFR(I_III!3,II!1,Y1148~O).EGF(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).EGFR(I_III!3,II!1,Y1148~P).EGF(EGFL!3) Phosphokp17 +117 HRG(EGFL!2).ErbB4(I_III!2,II!1).EGFR(I_III!3,II!1,Y1173~O).EGF(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).EGFR(I_III!3,II!1,Y1173~P).EGF(EGFL!3) Phosphokp18 + + + +# Cross-phosphorylation of ErbB2 +# (EGFR-ErbB2 dimers) Cross-Phosphorylation of ErbB2 by EGFR at +# (1139,1196,1222,1248) +118 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB2(II!1,Y1139~O) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB2(II!1,Y1139~P) Phosphokp19 +119 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB2(II!1,Y1196~O) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB2(II!1,Y1196~P) Phosphokp20 +120 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB2(II!1,Y1222~O) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB2(II!1,Y1222~P) Phosphokp21 +121 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB2(II!1,Y1248~O) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB2(II!1,Y1248~P) Phosphokp22 + + +# Cross-phosphorylation of ErbB2 +# (ErbB4-ErbB2 dimers) Cross-Phosphorylation of ErbB2 by ErbB4 at +# (1139,1196,1222,1248) +122 HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB2(II!1,Y1139~O) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB2(II!1,Y1139~P) Phosphokp23 +123 HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB2(II!1,Y1196~O) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB2(II!1,Y1196~P) Phosphokp24 +124 HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB2(II!1,Y1222~O) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB2(II!1,Y1222~P) Phosphokp25 +125 HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB2(II!1,Y1248~O) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB2(II!1,Y1248~P) Phosphokp26 + + +# cross-phosphorylation of ErbB3 +# (EGFR-ErbB3 dimers) cross-phosphorylation of ErbB3 by EGFR at +# (1054,1197,1222,Y1260,1276,1289,1328) +126 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB3(I_III!3,II!1,Y1054~O).HRG(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB3(I_III!3,II!1,Y1054~P).HRG(EGFL!3) Phosphokp27 +127 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB3(I_III!3,II!1,Y1197~O).HRG(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB3(I_III!3,II!1,Y1197~P).HRG(EGFL!3) Phosphokp28 +128 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB3(I_III!3,II!1,Y1222~O).HRG(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB3(I_III!3,II!1,Y1222~P).HRG(EGFL!3) Phosphokp29 +129 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB3(I_III!3,II!1,Y1260~O).HRG(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB3(I_III!3,II!1,Y1260~P).HRG(EGFL!3) Phosphokp30 +130 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB3(I_III!3,II!1,Y1276~O).HRG(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB3(I_III!3,II!1,Y1276~P).HRG(EGFL!3) Phosphokp31 +131 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB3(I_III!3,II!1,Y1289~O).HRG(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB3(I_III!3,II!1,Y1289~P).HRG(EGFL!3) Phosphokp32 +132 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB3(I_III!3,II!1,Y1328~O).HRG(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB3(I_III!3,II!1,Y1328~P).HRG(EGFL!3) Phosphokp33 + + +# (ErbB2-ErbB3 dimers) cross-phosphorylation of Erbb3 by ErbB2 at +# (1054,1197,1222,Y1260,1276,1289,1328) +133 ErbB2(II!1).ErbB3(I_III!3,II!1,Y1054~O).HRG(EGFL!3) -> ErbB2(II!1).ErbB3(I_III!3,II!1,Y1054~P).HRG(EGFL!3) Phosphokp34 +134 ErbB2(II!1).ErbB3(I_III!3,II!1,Y1197~O).HRG(EGFL!3) -> ErbB2(II!1).ErbB3(I_III!3,II!1,Y1197~P).HRG(EGFL!3) Phosphokp35 +135 ErbB2(II!1).ErbB3(I_III!3,II!1,Y1222~O).HRG(EGFL!3) -> ErbB2(II!1).ErbB3(I_III!3,II!1,Y1222~P).HRG(EGFL!3) Phosphokp36 +136 ErbB2(II!1).ErbB3(I_III!3,II!1,Y1260~O).HRG(EGFL!3) -> ErbB2(II!1).ErbB3(I_III!3,II!1,Y1260~P).HRG(EGFL!3) Phosphokp37 +137 ErbB2(II!1).ErbB3(I_III!3,II!1,Y1276~O).HRG(EGFL!3) -> ErbB2(II!1).ErbB3(I_III!3,II!1,Y1276~P).HRG(EGFL!3) Phosphokp38 +138 ErbB2(II!1).ErbB3(I_III!3,II!1,Y1289~O).HRG(EGFL!3) -> ErbB2(II!1).ErbB3(I_III!3,II!1,Y1289~P).HRG(EGFL!3) Phosphokp39 +139 ErbB2(II!1).ErbB3(I_III!3,II!1,Y1328~O).HRG(EGFL!3) -> ErbB2(II!1).ErbB3(I_III!3,II!1,Y1328~P).HRG(EGFL!3) Phosphokp40 + + +# (ErbB4-ErbB3 dimers) cross-phosphorylation of Erbb3 by ErbB4 at +# (1054,1197,1222,Y1260,1276,1289,1328) +140 HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB3(I_III!3,II!1,Y1054~O).HRG(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB3(I_III!3,II!1,Y1054~P).HRG(EGFL!3) Phosphokp41 +141 HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB3(I_III!3,II!1,Y1197~O).HRG(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB3(I_III!3,II!1,Y1197~P).HRG(EGFL!3) Phosphokp42 +142 HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB3(I_III!3,II!1,Y1222~O).HRG(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB3(I_III!3,II!1,Y1222~P).HRG(EGFL!3) Phosphokp43 +143 HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB3(I_III!3,II!1,Y1260~O).HRG(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB3(I_III!3,II!1,Y1260~P).HRG(EGFL!3) Phosphokp44 +144 HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB3(I_III!3,II!1,Y1276~O).HRG(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB3(I_III!3,II!1,Y1276~P).HRG(EGFL!3) Phosphokp45 +145 HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB3(I_III!3,II!1,Y1289~O).HRG(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB3(I_III!3,II!1,Y1289~P).HRG(EGFL!3) Phosphokp46 +146 HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB3(I_III!3,II!1,Y1328~O).HRG(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB3(I_III!3,II!1,Y1328~P).HRG(EGFL!3) Phosphokp47 + + +# cross-phosphorylation of ErbB4 +# (EGFR-ErbB4 dimers) cross-phosphorylation of ErbB4 by EGFR at +# (1056,1188,1242) +147 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB4(I_III!3,II!1,Y1056~O).HRG(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB4(I_III!3,II!1,Y1056~P).HRG(EGFL!3) Phosphokp48 +148 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB4(I_III!3,II!1,Y1188~O).HRG(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB4(I_III!3,II!1,Y1188~P).HRG(EGFL!3) Phosphokp49 +149 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB4(I_III!3,II!1,Y1242~O).HRG(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).ErbB4(I_III!3,II!1,Y1242~P).HRG(EGFL!3) Phosphokp50 + + +# (ErbB2-ErbB4 dimers) cross-phosphorylation of ErbB4 by ErbB2 at +# (1056,1188,1242) +150 ErbB2(II!1).ErbB4(I_III!3,II!1,Y1056~O).HRG(EGFL!3) -> ErbB2(II!1).ErbB4(I_III!3,II!1,Y1056~P).HRG(EGFL!3) Phosphokp51 +151 ErbB2(II!1).ErbB4(I_III!3,II!1,Y1188~O).HRG(EGFL!3) -> ErbB2(II!1).ErbB4(I_III!3,II!1,Y1188~P).HRG(EGFL!3) Phosphokp52 +152 ErbB2(II!1).ErbB4(I_III!3,II!1,Y1242~O).HRG(EGFL!3) -> ErbB2(II!1).ErbB4(I_III!3,II!1,Y1242~P).HRG(EGFL!3) Phosphokp53 + + +# (ErbB4-ErbB4 dimers) cross-phosphorylation of ErbB4 by ErbB4 at +# (1056,1188,1242) +153 HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB4(I_III!3,II!1,Y1056~O).HRG(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB4(I_III!3,II!1,Y1056~P).HRG(EGFL!3) Phosphokp54 +154 HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB4(I_III!3,II!1,Y1188~O).HRG(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB4(I_III!3,II!1,Y1188~P).HRG(EGFL!3) Phosphokp55 +155 HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB4(I_III!3,II!1,Y1242~O).HRG(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).ErbB4(I_III!3,II!1,Y1242~P).HRG(EGFL!3) Phosphokp56 + +############## INTRINSIC RECEPTOR DEPHOSPHORYLATION ############## + +# EGFR (992,1068,1086,1114,1148,1173) +156 EGFR(Y992~P) -> EGFR(Y992~O) Phosphokm1 +157 EGFR(Y1068~P) -> EGFR(Y1068~O) Phosphokm2 +158 EGFR(Y1086~P) -> EGFR(Y1086~O) Phosphokm3 +159 EGFR(Y1114~P) -> EGFR(Y1114~O) Phosphokm4 +160 EGFR(Y1148~P) -> EGFR(Y1148~O) Phosphokm5 +161 EGFR(Y1173~P) -> EGFR(Y1173~O) Phosphokm6 + + +# ErbB2 (1139,1196,1222,1248) +162 ErbB2(Y1139~P) -> ErbB2(Y1139~O) Phosphokm7 +163 ErbB2(Y1196~P) -> ErbB2(Y1196~O) Phosphokm8 +164 ErbB2(Y1222~P) -> ErbB2(Y1222~O) Phosphokm9 +165 ErbB2(Y1248~P) -> ErbB2(Y1248~O) Phosphokm10 + + +# ErbB3 (1054,1197,1222,Y1260,1276,1289,1328) +166 ErbB3(Y1054~P) -> ErbB3(Y1054~O) Phosphokm11 +167 ErbB3(Y1197~P) -> ErbB3(Y1197~O) Phosphokm12 +168 ErbB3(Y1222~P) -> ErbB3(Y1222~O) Phosphokm13 +169 ErbB3(Y1260~P) -> ErbB3(Y1260~O) Phosphokm14 +170 ErbB3(Y1276~P) -> ErbB3(Y1276~O) Phosphokm15 +171 ErbB3(Y1289~P) -> ErbB3(Y1289~O) Phosphokm16 +172 ErbB3(Y1328~P) -> ErbB3(Y1328~O) Phosphokm17 + + +# ErbB3 (1056,1188,1242) +173 ErbB4(Y1056~P) -> ErbB4(Y1056~O) Phosphokm18 +174 ErbB4(Y1188~P) -> ErbB4(Y1188~O) Phosphokm19 +175 ErbB4(Y1242~P) -> ErbB4(Y1242~O) Phosphokm20 + +############## Grb2 BINDING TO A RECEPTOR ############## + +## EGFR = 1068,1114,1148,1173 +## ErbB2 = 1139 + +# EGFR +# Y1068,Y1086,Y1148,Y1173 +176 EGFR(Y1068~P) + Grb2(SH2r,SH2s) <-> EGFR(Y1068~P!1).Grb2(SH2r!1,SH2s) Grb2kp1,Grb2km1 +177 EGFR(Y1114~P) + Grb2(SH2r,SH2s) <-> EGFR(Y1114~P!1).Grb2(SH2r!1,SH2s) Grb2kp2,Grb2km2 +178 EGFR(Y1148~P) + Grb2(SH2r,SH2s) <-> EGFR(Y1148~P!1).Grb2(SH2r!1,SH2s) Grb2kp3,Grb2km3 +179 EGFR(Y1173~P) + Grb2(SH2r,SH2s) <-> EGFR(Y1173~P!1).Grb2(SH2r!1,SH2s) Grb2kp4,Grb2km4 + +# ErbB2 +# Y1139 +180 ErbB2(Y1139~P) + Grb2(SH2r,SH2s) <-> ErbB2(Y1139~P!1).Grb2(SH2r!1,SH2s) Grb2kp5,Grb2km5 + + +############## Shc BINDING TO A RECEPTOR ############## + +## EGFR - 992,1086,1114 +## ErbB2 - 1196,1222,1248 +## ErbB3 - 1328 +## ErbB4 - 1188,1242 + +# EGFR +#Y992,Y086,Y1114 +181 EGFR(Y992~P) + p52Shc1(PTB) <-> EGFR(Y992~P!1).p52Shc1(PTB!1) Shc1kp0,Shc1km0 +182 EGFR(Y1086~P) + p52Shc1(PTB) <-> EGFR(Y1086~P!1).p52Shc1(PTB!1) Shc1kp1,Shc1km1 +183 EGFR(Y1114~P) + p52Shc1(PTB) <-> EGFR(Y1114~P!1).p52Shc1(PTB!1) Shc1kp2,Shc1km2 + +# ErbB2 +#Y1196,Y1222,Y1248 +184 ErbB2(Y1196~P) + p52Shc1(PTB) <-> ErbB2(Y1196~P!1).p52Shc1(PTB!1) Shc1kp3,Shc1km3 +185 ErbB2(Y1222~P) + p52Shc1(PTB) <-> ErbB2(Y1222~P!1).p52Shc1(PTB!1) Shc1kp4,Shc1km4 +186 ErbB2(Y1248~P) + p52Shc1(PTB) <-> ErbB2(Y1248~P!1).p52Shc1(PTB!1) Shc1kp5,Shc1km5 + +# ErbB3 +#Y1328 +187 ErbB3(Y1328~P) + p52Shc1(PTB) <-> ErbB3(Y1328~P!1).p52Shc1(PTB!1) Shc1kp6,Shc1km6 + +#ErbB4 +#Y1188,Y1242 +188 ErbB4(Y1188~P) + p52Shc1(PTB) <-> ErbB4(Y1188~P!1).p52Shc1(PTB!1) Shc1kp7,Shc1km7 +189 ErbB4(Y1242~P) + p52Shc1(PTB) <-> ErbB4(Y1242~P!1).p52Shc1(PTB!1) Shc1kp8,Shc1km8 + +# Transphosphorylation of Shc by a receptor +# EGFR-EGFR where EGFR transphosphorylates Shc +#Y992,Y086,Y1114 +190 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).p52Shc1(Y317~O,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).p52Shc1(Y317~P,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) Shc1kp9 +191 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).p52Shc1(Y317~O,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).p52Shc1(Y317~P,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) Shc1kp10 +192 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).p52Shc1(Y317~O,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).p52Shc1(Y317~P,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Shc1kp11 + +# EGFR-ErbB2 where EGFR transphosphorylates Shc +#Y1196,Y1222,Y1248 +193 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).p52Shc1(Y317~O,PTB!4).ErbB2(II!1,Y1196~P!4) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).p52Shc1(Y317~P,PTB!4).ErbB2(II!1,Y1196~P!4) Shc1kp12 +194 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).p52Shc1(Y317~O,PTB!4).ErbB2(II!1,Y1222~P!4) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).p52Shc1(Y317~P,PTB!4).ErbB2(II!1,Y1222~P!4) Shc1kp13 +195 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).p52Shc1(Y317~O,PTB!4).ErbB2(II!1,Y1248~P!4) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).p52Shc1(Y317~P,PTB!4).ErbB2(II!1,Y1248~P!4) Shc1kp14 + +# EGFR-ErbB3 where EGFR transphosphorylates Shc +#Y1328 +196 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).p52Shc1(Y317~O,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).p52Shc1(Y317~P,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) Shc1kp15 + +# EGFR-ErbB4 where EGFR transphosphorylates Shc +#Y1188,Y1242 +197 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).p52Shc1(Y317~O,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).p52Shc1(Y317~P,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) Shc1kp16 +198 EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).p52Shc1(Y317~O,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) -> EGF(EGFL!2).EGFR(I_III!2,II!1,T669~O).p52Shc1(Y317~P,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) Shc1kp17 + + +# ErbB2-EGFR where ErbB2 transphosphorylates Shc +#Y992,Y086,Y1114 +199 ErbB2(II!1).p52Shc1(Y317~O,PTB!4).EGFR(I_III!2,II!1,Y992~P!4).EGF(EGFL!2) -> ErbB2(II!1).p52Shc1(Y317~P,PTB!4).EGFR(I_III!2,II!1,Y992~P!4).EGF(EGFL!2) Shc1kp18 +200 ErbB2(II!1).p52Shc1(Y317~O,PTB!4).EGFR(I_III!2,II!1,Y1086~P!4).EGF(EGFL!2) -> ErbB2(II!1).p52Shc1(Y317~P,PTB!4).EGFR(I_III!2,II!1,Y1086~P!4).EGF(EGFL!2) Shc1kp19 +201 ErbB2(II!1).p52Shc1(Y317~O,PTB!4).EGFR(I_III!2,II!1,Y1114~P!4).EGF(EGFL!2) -> ErbB2(II!1).p52Shc1(Y317~P,PTB!4).EGFR(I_III!2,II!1,Y1114~P!4).EGF(EGFL!2) Shc1kp20 + +# ErbB2-ErbB3 where ErbB2 transphosphorylates Shc +#Y1328 +202 ErbB2(II!1).p52Shc1(Y317~O,PTB!4).ErbB3(I_III!2,II!1,Y1328~P!4).HRG(EGFL!2) -> ErbB2(II!1).p52Shc1(Y317~P,PTB!4).ErbB3(I_III!2,II!1,Y1328~P!4).HRG(EGFL!2) Shc1kp21 + +# ErbB2-ErbB4 where ErbB2 transphosphorylates Shc +#Y1188,Y1242 +203 ErbB2(II!1).p52Shc1(Y317~O,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) -> ErbB2(II!1).p52Shc1(Y317~P,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) Shc1kp22 +204 ErbB2(II!1).p52Shc1(Y317~O,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) -> ErbB2(II!1).p52Shc1(Y317~P,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) Shc1kp23 + + +# ErbB4-EGFR where ErbB4 transphosphorylates Shc +#Y086,Y1114 +205 HRG(EGFL!2).ErbB4(I_III!2,II!1).p52Shc1(Y317~O,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).p52Shc1(Y317~P,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) Shc1kp24 +206 HRG(EGFL!2).ErbB4(I_III!2,II!1).p52Shc1(Y317~O,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).p52Shc1(Y317~P,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) Shc1kp25 +207 HRG(EGFL!2).ErbB4(I_III!2,II!1).p52Shc1(Y317~O,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).p52Shc1(Y317~P,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Shc1kp26 + +# ErbB4-ErbB2 where ErbB4 transphosphorylates Shc +#Y1196,Y1222,Y1248 +208 HRG(EGFL!2).ErbB4(I_III!2,II!1).p52Shc1(Y317~O,PTB!4).ErbB2(II!1,Y1196~P!4) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).p52Shc1(Y317~P,PTB!4).ErbB2(II!1,Y1196~P!4) Shc1kp27 +209 HRG(EGFL!2).ErbB4(I_III!2,II!1).p52Shc1(Y317~O,PTB!4).ErbB2(II!1,Y1222~P!4) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).p52Shc1(Y317~P,PTB!4).ErbB2(II!1,Y1222~P!4) Shc1kp28 +210 HRG(EGFL!2).ErbB4(I_III!2,II!1).p52Shc1(Y317~O,PTB!4).ErbB2(II!1,Y1248~P!4) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).p52Shc1(Y317~P,PTB!4).ErbB2(II!1,Y1248~P!4) Shc1kp29 + +# ErbB4-ErbB3 where ErbB4 transphosphorylates Shc +#Y1328 +211 HRG(EGFL!2).ErbB4(I_III!2,II!1).p52Shc1(Y317~O,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).p52Shc1(Y317~P,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) Shc1kp30 + +# ErbB4-ErbB4 where ErbB4 transphosphorylates Shc +#Y1188,Y1242 +212 HRG(EGFL!2).ErbB4(I_III!2,II!1).p52Shc1(Y317~O,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).p52Shc1(Y317~P,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) Shc1kp31 +213 HRG(EGFL!2).ErbB4(I_III!2,II!1).p52Shc1(Y317~O,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) -> HRG(EGFL!2).ErbB4(I_III!2,II!1).p52Shc1(Y317~P,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) Shc1kp32 + + +# Intrinsic dephosphorylation of Phospho-Shc +214 p52Shc1(Y317~P) -> p52Shc1(Y317~O) Shc1km14 + + +############## SCAFFOLDING REACTIONS ############## + +## These are general reactions of getting from Receptor to RAS via Sos1 + +# Grb2 binds to Shc +215 Grb2(SH2r,SH2s) + p52Shc1(Y317~P) <-> Grb2(SH2r,SH2s!1).p52Shc1(Y317~P!1) Scafoldkp1,Scafoldkm1 + +# Sos1 binds Grb2 +216 Sos1(PRS) + Grb2(nSH3,cSH3) <-> Sos1(PRS!1).Grb2(nSH3!1,cSH3) Scafoldkp2,Scafoldkm2 + +#NOTE: this reaction's rate is increased to demonstrate positive feedback from the AKT pathway to the Erk pathway +# Binding of Sos1 to Gab1-Grb2 +217 Sos1(PRS) + Grb2(nSH3,cSH3!2).Gab1(PRS1_PRS2!2) <-> Sos1(PRS!1).Grb2(nSH3!1,cSH3!2).Gab1(PRS1_PRS2!2) Scafoldkp3,Scafoldkm3 + + +############## KRAS RECRUITEMENT TO RECEPTOR ############## + +# Binding of KRas to receptor bound Sos1-Grb2-rec at the GEF domain +218 Sos1(PRS!2,GEF,S1132~O,S1167~O,S1178~O,S1193~O).Grb2(nSH3!2,SH2r!+) + KRas(GTPase,g~GDP) -> Sos1(PRS!2,GEF!3,S1132~O,S1167~O,S1178~O,S1193~O).Grb2(nSH3!2,SH2r!+).KRas(GTPase!3,g~GDP) Sos1kp1 + +# Binding of KRas to membrane bound Sos1-Grb2-Shc-rec at the GEF domain +219 Sos1(PRS!2,GEF,S1132~O,S1167~O,S1178~O,S1193~O).Grb2(nSH3!2,SH2s!1).p52Shc1(PTB!+,Y317~P!1) + KRas(GTPase,g~GDP) -> Sos1(PRS!2,GEF!3,S1132~O,S1167~O,S1178~O,S1193~O).Grb2(nSH3!2,SH2s!1).p52Shc1(PTB!+,Y317~P!1).KRas(GTPase!3,g~GDP) Sos1kp1 + +# Binding of KRas to membrane bound Sos1-Grb2-rec at the REM domain +220 Sos1(PRS!2,REM,S1132~O,S1167~O,S1178~O,S1193~O).Grb2(nSH3!2,SH2r!+) + KRas(GTPase,g~GTP) -> Sos1(PRS!2,REM!3,S1132~O,S1167~O,S1178~O,S1193~O).Grb2(nSH3!2,SH2r!+).KRas(GTPase!3,g~GTP) Sos1kp3 + +# Binding of KRas to membrane bound Sos1-Grb2-Shc-rec at the REM domain +221 Sos1(PRS!2,REM,S1132~O,S1167~O,S1178~O,S1193~O).Grb2(nSH3!2,SH2s!1).p52Shc1(PTB!+,Y317~P!1) + KRas(GTPase,g~GTP) -> Sos1(PRS!2,REM!3,S1132~O,S1167~O,S1178~O,S1193~O).Grb2(nSH3!2,SH2s!1).p52Shc1(PTB!+,Y317~P!1).KRas(GTPase!3,g~GTP) Sos1kp3 + + +# Ras activation by Sos +# REM domain unbound +222 Sos1(REM,GEF!3,S1132~O,S1167~O,S1178~O,S1193~O).KRas(GTPase!3,g~GDP) <-> Sos1(REM,GEF!3,S1132~O,S1167~O,S1178~O,S1193~O).KRas(GTPase!3,g~GTP) Sos1kp5,Sos1km5 + +# Ras activation by Sos +# REM domain bound to Ras-GTP, this is a positive feedback loop which increases Ras activation +223 Sos1(REM!+,GEF!3,S1132~O,S1167~O,S1178~O,S1193~O).KRas(GTPase!3,g~GDP) <-> Sos1(REM!+,GEF!3,S1132~O,S1167~O,S1178~O,S1193~O).KRas(GTPase!3,g~GTP) Sos1kp6,Sos1km6 + +# Intrinsic deactivation of Ras +224 KRas(GTPase,g~GTP) -> KRas(GTPase,g~GDP) Sos1kp7 + +# Dissociation of KRas from Sos1 +# at GEF domain +225 Sos1(GEF!3).KRas(GTPase!3) -> Sos1(GEF) + KRas(GTPase) Sos1kp8 + +# at REM domain +226 Sos1(REM!3).KRas(GTPase!3) -> Sos1(REM) + KRas(GTPase) Sos1kp9 + +############## MAP Kinase Cascade ############## + +# Activated RAS (RAS-GTP) binds Raf1 +227 KRas(g~GTP,GTPase) + Raf1(RBD) -> KRas(g~GTP,GTPase!1).Raf1(RBD!1) MAPKkp1 + +# Activation of Raf1 bound to Ras +228 KRas(GTPase!1,g~GTP).Raf1(RBD!1,S296~O) -> KRas(GTPase!1,g~GTP).Raf1(RBD!1,S296~P) MAPKkp2 +229 KRas(GTPase!1,g~GTP).Raf1(RBD!1,S338~O) -> KRas(GTPase!1,g~GTP).Raf1(RBD!1,S338~P) MAPKkp3 +230 KRas(GTPase!1,g~GTP).Raf1(RBD!1,Y341~O) -> KRas(GTPase!1,g~GTP).Raf1(RBD!1,Y341~P) MAPKkp4 +231 KRas(GTPase!1,g~GTP).Raf1(RBD!1,T491~O) -> KRas(GTPase!1,g~GTP).Raf1(RBD!1,T491~P) MAPKkp5 +232 KRas(GTPase!1,g~GTP).Raf1(RBD!1,S494~O) -> KRas(GTPase!1,g~GTP).Raf1(RBD!1,S494~P) MAPKkp6 + +# Dissociation of activated Raf1 (MKKK) from Raf1-RAS Complex +233 Raf1(RBD!1).KRas(GTPase!1) -> Raf1(RBD) + KRas(GTPase) MAPKkp7 + +### Raf1 intrinsic dephosphorylation of activation sites +234 Raf1(S296~P) -> Raf1(S296~O) MAPKkp8 +235 Raf1(S338~P) -> Raf1(S338~O) MAPKkp8 +236 Raf1(Y341~P) -> Raf1(Y341~O) MAPKkp8 +237 Raf1(T491~P) -> Raf1(T491~O) MAPKkp8 +238 Raf1(S494~P) -> Raf1(S494~O) MAPKkp8 + + +### Raf1 activates MEK1 + +# Activated Raf1 binds to MEK1 +239 Raf1(STkinase,S29~O,S43~O,S259~O!?,S289~O,S296~P,S301~O,S338~P,Y341~P,S471~O,T491~P,S494~P,S642~O) + MEK1(S218~O) -> Raf1(STkinase!1,S29~O,S43~O,S259~O!?,S289~O,S296~P,S301~O,S338~P,Y341~P,S471~O,T491~P,S494~P,S642~O).MEK1(S218~O!1) MAPKkp9 +240 Raf1(STkinase,S29~O,S43~O,S259~O!?,S289~O,S296~P,S301~O,S338~P,Y341~P,S471~O,T491~P,S494~P,S642~O) + MEK1(S222~O) -> Raf1(STkinase!1,S29~O,S43~O,S259~O!?,S289~O,S296~P,S301~O,S338~P,Y341~P,S471~O,T491~P,S494~P,S642~O).MEK1(S222~O!1) MAPKkp10 + +# Activated Raf1 activates Mek1 +241 Raf1(STkinase!1,S29~O,S43~O,S259~O!?,S289~O,S296~P,S301~O,S338~P,Y341~P,S471~O,T491~P,S494~P,S642~O).MEK1(S218~O!1) -> Raf1(STkinase!1,S29~O,S43~O,S259~O!?,S289~O,S296~P,S301~O,S338~P,Y341~P,S471~O,T491~P,S494~P,S642~O).MEK1(S218~P!1) MAPKkp11 +242 Raf1(STkinase!1,S29~O,S43~O,S259~O!?,S289~O,S296~P,S301~O,S338~P,Y341~P,S471~O,T491~P,S494~P,S642~O).MEK1(S222~O!1) -> Raf1(STkinase!1,S29~O,S43~O,S259~O!?,S289~O,S296~P,S301~O,S338~P,Y341~P,S471~O,T491~P,S494~P,S642~O).MEK1(S222~P!1) MAPKkp12 + +#Raf1-Mek Dissociation +243 Raf1(STkinase!1).MEK1(S218!1) -> Raf1(STkinase) + MEK1(S218) MAPKkp13 +244 Raf1(STkinase!1).MEK1(S222!1) -> Raf1(STkinase) + MEK1(S222) MAPKkp13 + +### MEK1 intrinsic dephosphorylation of activation sites +245 MEK1(S218~P) -> MEK1(S218~O) MAPKkp15 +246 MEK1(S222~P) -> MEK1(S222~O) MAPKkp15 + + +### MEK1 activates ERK2 +# Activated MEK1 binds to ERK2 +247 MEK1(delta,S218~P!?,S222~P!?,T292~O) + ERK2(CD,STkinase) -> MEK1(delta!1,S218~P!?,S222~P!?,T292~O).ERK2(CD!1,STkinase) MAPKkp16 + +# Activated Mek1 phosphorylates Erk2 +248 ERK2(CD!1,T185~O).MEK1(delta!1,S218~P!?,S222~P!?,T292~O) -> ERK2(CD!1,T185~P).MEK1(delta!1,S218~P!?,S222~P!?,T292~O) MAPKkp17 +249 ERK2(CD!1,Y187~O).MEK1(delta!1,S218~P!?,S222~P!?,T292~O) -> ERK2(CD!1,Y187~P).MEK1(delta!1,S218~P!?,S222~P!?,T292~O) MAPKkp18 + +# Dissociation of ERK2 from MEK1 +250 ERK2(CD!1).MEK1(delta!1) -> ERK2(CD) + MEK1(delta) MAPKkp19 + +## ERK2 dephosphorylation +251 ERK2(Y187~P) -> ERK2(Y187~O) MAPKkp20 +252 ERK2(T185~P) -> ERK2(T185~O) MAPKkp20 + + +############## ERK2'S NEGATIVE FEEDBACK LOOPS ############## + +## Erk2 inhibits Sos1, EGFR, Raf1, and Mek +#BINDING + +# Activated ERK2 binds with Sos1 +253 ERK2(STkinase,CD,T185~P,Y187~P) + Sos1(S1132~O) -> ERK2(STkinase!1,CD,T185~P,Y187~P).Sos1(S1132~O!1) MAPKkp21 +254 ERK2(STkinase,CD,T185~P,Y187~P) + Sos1(S1167~O) -> ERK2(STkinase!1,CD,T185~P,Y187~P).Sos1(S1167~O!1) MAPKkp22 +255 ERK2(STkinase,CD,T185~P,Y187~P) + Sos1(S1178~O) -> ERK2(STkinase!1,CD,T185~P,Y187~P).Sos1(S1178~O!1) MAPKkp23 +256 ERK2(STkinase,CD,T185~P,Y187~P) + Sos1(S1193~O) -> ERK2(STkinase!1,CD,T185~P,Y187~P).Sos1(S1193~O!1) MAPKkp24 + +# ERK2 binds with EGFR +257 ERK2(STkinase,CD,T185~P,Y187~P) + EGFR(T669~O) -> ERK2(STkinase!1,CD,T185~P,Y187~P).EGFR(T669~O!1) MAPKkp25 + +# ERK2 Binds to Raf1-1 +258 ERK2(STkinase,CD,T185~P,Y187~P) + Raf1(S29~O) -> ERK2(STkinase!1,CD,T185~P,Y187~P).Raf1(S29~O!1) MAPKkp26 +259 ERK2(STkinase,CD,T185~P,Y187~P) + Raf1(S43~O) -> ERK2(STkinase!1,CD,T185~P,Y187~P).Raf1(S43~O!1) MAPKkp27 +260 ERK2(STkinase,CD,T185~P,Y187~P) + Raf1(S289~O) -> ERK2(STkinase!1,CD,T185~P,Y187~P).Raf1(S289~O!1) MAPKkp28 +261 ERK2(STkinase,CD,T185~P,Y187~P) + Raf1(S301~O) -> ERK2(STkinase!1,CD,T185~P,Y187~P).Raf1(S301~O!1) MAPKkp29 +262 ERK2(STkinase,CD,T185~P,Y187~P) + Raf1(S471~O) -> ERK2(STkinase!1,CD,T185~P,Y187~P).Raf1(S471~O!1) MAPKkp30 +263 ERK2(STkinase,CD,T185~P,Y187~P) + Raf1(S642~O) -> ERK2(STkinase!1,CD,T185~P,Y187~P).Raf1(S642~O!1) MAPKkp31 + +# ERK2 Binds to MEK1 +264 ERK2(STkinase,CD,T185~P,Y187~P) + MEK1(T292~O) -> ERK2(STkinase!1,CD,T185~P,Y187~P).MEK1(T292~O!1) MAPKkp32 + + +# ERK2 inhibits Sos1 +265 ERK2(STkinase!1,T185~P,Y187~P).Sos1(S1132~O!1) -> ERK2(STkinase!1,T185~P,Y187~P).Sos1(S1132~P!1) MAPKkp33 +266 ERK2(STkinase!1,T185~P,Y187~P).Sos1(S1167~O!1) -> ERK2(STkinase!1,T185~P,Y187~P).Sos1(S1167~P!1) MAPKkp34 +267 ERK2(STkinase!1,T185~P,Y187~P).Sos1(S1178~O!1) -> ERK2(STkinase!1,T185~P,Y187~P).Sos1(S1178~P!1) MAPKkp35 +268 ERK2(STkinase!1,T185~P,Y187~P).Sos1(S1193~O!1) -> ERK2(STkinase!1,T185~P,Y187~P).Sos1(S1193~P!1) MAPKkp36 + +# ERK2 inhibits EGFR dimers. +269 ERK2(STkinase!1,T185~P,Y187~P).EGFR(T669~O!1) -> ERK2(STkinase!1,T185~P,Y187~P).EGFR(T669~P!1) MAPKkp37 + +# ERK2 inhibits Raf1-1 +270 ERK2(STkinase!1,T185~P,Y187~P).Raf1(S29~O!1) -> ERK2(STkinase!1,T185~P,Y187~P).Raf1(S29~P!1) MAPKkp38 +271 ERK2(STkinase!1,T185~P,Y187~P).Raf1(S43~O!1) -> ERK2(STkinase!1,T185~P,Y187~P).Raf1(S43~P!1) MAPKkp39 +272 ERK2(STkinase!1,T185~P,Y187~P).Raf1(S289~O!1) -> ERK2(STkinase!1,T185~P,Y187~P).Raf1(S289~P!1) MAPKkp40 +273 ERK2(STkinase!1,T185~P,Y187~P).Raf1(S301~O!1) -> ERK2(STkinase!1,T185~P,Y187~P).Raf1(S301~P!1) MAPKkp41 +274 ERK2(STkinase!1,T185~P,Y187~P).Raf1(S471~O!1) -> ERK2(STkinase!1,T185~P,Y187~P).Raf1(S471~P!1) MAPKkp42 +275 ERK2(STkinase!1,T185~P,Y187~P).Raf1(S642~O!1) -> ERK2(STkinase!1,T185~P,Y187~P).Raf1(S642~P!1) MAPKkp43 + +# ERK2 inhibits MEK1. +276 ERK2(STkinase!1,T185~P,Y187~P).MEK1(T292~O!1) -> ERK2(STkinase!1,T185~P,Y187~P).MEK1(T292~P!1) MAPKkp44 + + +#inhibitory sites intrinsic dephosphorylation + +#Sos1 sites +277 Sos1(S1132~P) -> Sos1(S1132~O) MAPKkp45 +278 Sos1(S1167~P) -> Sos1(S1167~O) MAPKkp45 +279 Sos1(S1178~P) -> Sos1(S1178~O) MAPKkp45 +280 Sos1(S1193~P) -> Sos1(S1193~O) MAPKkp45 + +#EGFR site +281 EGFR(T669~P) -> EGFR(T669~O) MAPKkp46 + +#Raf1 sites +282 Raf1(S29~P) -> Raf1(S29~O) MAPKkp47 +283 Raf1(S43~P) -> Raf1(S43~O) MAPKkp47 +284 Raf1(S289~P) -> Raf1(S289~O) MAPKkp47 +285 Raf1(S301~P) -> Raf1(S301~O) MAPKkp47 +286 Raf1(S471~P) -> Raf1(S471~O) MAPKkp47 +287 Raf1(S642~P) -> Raf1(S642~O) MAPKkp47 + +#Mek site +288 MEK1(T292~P) -> MEK1(T292~O) MAPKkp48 + + +#ERK2 regulatory complex Dissociation +# Erk dissasociates with Sos1 +289 ERK2(STkinase!1).Sos1(S1132!1) -> ERK2(STkinase) + Sos1(S1132) MAPKkp49 +290 ERK2(STkinase!1).Sos1(S1167!1) -> ERK2(STkinase) + Sos1(S1167) MAPKkp49 +291 ERK2(STkinase!1).Sos1(S1178!1) -> ERK2(STkinase) + Sos1(S1178) MAPKkp49 +292 ERK2(STkinase!1).Sos1(S1193!1) -> ERK2(STkinase) + Sos1(S1193) MAPKkp49 + +# Erk dissasociates with EGFR +293 ERK2(STkinase!1).EGFR(T669!1) -> ERK2(STkinase) + EGFR(T669) MAPKkp50 + +# Erk dissasociates with Raf1 +294 ERK2(STkinase!1).Raf1(S29!1) -> ERK2(STkinase) + Raf1(S29) MAPKkp51 +295 ERK2(STkinase!1).Raf1(S43!1) -> ERK2(STkinase) + Raf1(S43) MAPKkp51 +296 ERK2(STkinase!1).Raf1(S289!1) -> ERK2(STkinase) + Raf1(S289) MAPKkp51 +297 ERK2(STkinase!1).Raf1(S301!1) -> ERK2(STkinase) + Raf1(S301) MAPKkp51 +298 ERK2(STkinase!1).Raf1(S471!1) -> ERK2(STkinase) + Raf1(S471) MAPKkp51 +299 ERK2(STkinase!1).Raf1(S642!1) -> ERK2(STkinase) + Raf1(S642) MAPKkp51 + +# Erk dissasociates with MEK1 +300 ERK2(STkinase!1).MEK1(T292!1) -> ERK2(STkinase) + MEK1(T292) MAPKkp52 + + +############## Gab1 interactions ############## + +#Gab1 binds to membrane localized Grb2 (Grb2-p52Shc1-rec) +301 Gab1(PRS1_PRS2) + Grb2(cSH3,SH2s!2).p52Shc1(Y317~P!2,PTB!+) -> Gab1(PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+) Gab1kp1 + +#Gab1 binds to membrane localized Grb2 (Grb2-rec) +302 Gab1(PRS1_PRS2) + Grb2(cSH3,SH2r!+) -> Gab1(PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+) Gab1kp1 + +# Transphosphorylation of Gab1 by a receptor +# EGFR-EGFR where EGFR transphosphorylates Gab1-Grb2-Shc +303 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) Gab1kp3 +304 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) Gab1kp4 +305 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) Gab1kp5 +306 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) Gab1kp6 + +307 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) Gab1kp7 +308 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) Gab1kp8 +309 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) Gab1kp9 +310 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) Gab1kp10 + +311 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp11 +312 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp12 +313 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp13 +314 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp14 + +# EGFR-EGFR where EGFR transphosphorylates Gab1-Grb2 +315 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) Gab1kp15 +316 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) Gab1kp16 +317 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) Gab1kp17 +318 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) Gab1kp18 + +319 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp19 +320 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp20 +321 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp21 +322 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp22 + +323 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) Gab1kp23 +324 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) Gab1kp24 +325 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) Gab1kp25 +326 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) Gab1kp26 + +327 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) Gab1kp27 +328 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) Gab1kp28 +329 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) Gab1kp29 +330 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) Gab1kp30 + + +# EGFR-ErbB2 where EGFR transphosphorylates Gab1-Grb2-Shc +331 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1196~P!4) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1196~P!4) Gab1kp31 +332 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1196~P!4) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1196~P!4) Gab1kp32 +333 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1196~P!4) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1196~P!4) Gab1kp33 +334 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1196~P!4) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1196~P!4) Gab1kp34 + +335 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1222~P!4) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1222~P!4) Gab1kp35 +336 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1222~P!4) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1222~P!4) Gab1kp36 +337 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1222~P!4) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1222~P!4) Gab1kp37 +338 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1222~P!4) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1222~P!4) Gab1kp38 + +339 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1248~P!4) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1248~P!4) Gab1kp39 +340 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1248~P!4) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1248~P!4) Gab1kp40 +341 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1248~P!4) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1248~P!4) Gab1kp41 +342 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1248~P!4) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1248~P!4) Gab1kp42 + + +# EGFR-ErbB2 where EGFR transphosphorylates Gab1-Grb2 +343 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).ErbB2(II!1,Y1139~P!4) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).ErbB2(II!1,Y1139~P!4) Gab1kp43 +344 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).ErbB2(II!1,Y1139~P!4) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).ErbB2(II!1,Y1139~P!4) Gab1kp44 +345 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).ErbB2(II!1,Y1139~P!4) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).ErbB2(II!1,Y1139~P!4) Gab1kp45 +346 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).ErbB2(II!1,Y1139~P!4) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).ErbB2(II!1,Y1139~P!4) Gab1kp46 + +# EGFR-ErbB3 where EGFR transphosphorylates Gab1-Grb2-Shc +347 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) Gab1kp47 +348 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) Gab1kp48 +349 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) Gab1kp49 +350 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) Gab1kp50 + + +# EGFR-ErbB4 where EGFR transphosphorylates Gab1-Grb2-Shc +351 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) Gab1kp51 +352 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) Gab1kp52 +353 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) Gab1kp53 +354 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) Gab1kp54 + +355 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) Gab1kp55 +356 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) Gab1kp56 +357 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) Gab1kp57 +358 EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) -> EGF(EGFL!5).EGFR(I_III!5,II!1,T669~O).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) Gab1kp58 + + + +# ErbB2-EGFR where ErbB2 transphosphorylates Gab1-Grb2-Shc +359 ErbB2(II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) Gab1kp59 +360 ErbB2(II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) Gab1kp60 +361 ErbB2(II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) Gab1kp61 +362 ErbB2(II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) Gab1kp62 + +363 ErbB2(II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) Gab1kp63 +364 ErbB2(II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) Gab1kp64 +365 ErbB2(II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) Gab1kp65 +366 ErbB2(II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) Gab1kp66 + +367 ErbB2(II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp67 +368 ErbB2(II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp68 +369 ErbB2(II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp69 +370 ErbB2(II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp70 + +# ErbB2-EGFR where ErbB2 transphosphorylates Gab1-Grb2 +371 ErbB2(II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) Gab1kp71 +372 ErbB2(II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) Gab1kp72 +373 ErbB2(II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) Gab1kp73 +374 ErbB2(II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) Gab1kp74 + +375 ErbB2(II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp75 +376 ErbB2(II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp76 +377 ErbB2(II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp77 +378 ErbB2(II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp78 + +379 ErbB2(II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) Gab1kp79 +380 ErbB2(II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) Gab1kp80 +381 ErbB2(II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) Gab1kp81 +382 ErbB2(II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) Gab1kp82 + +383 ErbB2(II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) Gab1kp83 +384 ErbB2(II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) Gab1kp84 +385 ErbB2(II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) Gab1kp85 +386 ErbB2(II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) -> ErbB2(II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) Gab1kp86 + + +# ErbB2-ErbB3 where ErbB2 transphosphorylates Gab1-Grb2-Shc +387 ErbB2(II!1).Gab1(Y447~O,PRS1_PRS2!5).Grb2(cSH3!5,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) -> ErbB2(II!1).Gab1(Y447~P,PRS1_PRS2!5).Grb2(cSH3!5,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) Gab1kp87 +388 ErbB2(II!1).Gab1(Y472~O,PRS1_PRS2!5).Grb2(cSH3!5,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) -> ErbB2(II!1).Gab1(Y472~P,PRS1_PRS2!5).Grb2(cSH3!5,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) Gab1kp88 +389 ErbB2(II!1).Gab1(Y619~O,PRS1_PRS2!5).Grb2(cSH3!5,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) -> ErbB2(II!1).Gab1(Y619~P,PRS1_PRS2!5).Grb2(cSH3!5,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) Gab1kp89 +390 ErbB2(II!1).Gab1(Y657~O,PRS1_PRS2!5).Grb2(cSH3!5,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) -> ErbB2(II!1).Gab1(Y657~P,PRS1_PRS2!5).Grb2(cSH3!5,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) Gab1kp90 + + +# ErbB2-ErbB4 where ErbB2 transphosphorylates Gab1-Grb2-Shc +391 ErbB2(II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) -> ErbB2(II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) Gab1kp91 +392 ErbB2(II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) -> ErbB2(II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) Gab1kp92 +393 ErbB2(II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) -> ErbB2(II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) Gab1kp93 +394 ErbB2(II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) -> ErbB2(II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) Gab1kp94 + +395 ErbB2(II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) -> ErbB2(II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) Gab1kp95 +396 ErbB2(II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) -> ErbB2(II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) Gab1kp96 +397 ErbB2(II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) -> ErbB2(II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) Gab1kp97 +398 ErbB2(II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) -> ErbB2(II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) Gab1kp98 + + +# Transphosphorylation of Gab1 by a receptor +# ErbB4-EGFR where ErbB4 transphosphorylates Gab1-Grb2-Shc +399 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) Gab1kp99 +400 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) Gab1kp100 +401 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) Gab1kp101 +402 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y992~P!4).EGF(EGFL!3) Gab1kp102 + +403 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) Gab1kp103 +404 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) Gab1kp104 +405 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) Gab1kp105 +406 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1086~P!4).EGF(EGFL!3) Gab1kp106 + +407 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp107 +408 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp108 +409 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp109 +410 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp110 + +# ErbB4-EGFR where ErbB4 transphosphorylates Gab1-Grb2 +411 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) Gab1kp111 +412 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) Gab1kp112 +413 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) Gab1kp113 +414 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1068~P!4).EGF(EGFL!3) Gab1kp114 + +415 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp115 +416 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp116 +417 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp117 +418 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1114~P!4).EGF(EGFL!3) Gab1kp118 + +419 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) Gab1kp119 +420 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) Gab1kp120 +421 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) Gab1kp121 +422 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1148~P!4).EGF(EGFL!3) Gab1kp122 + +423 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) Gab1kp123 +424 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) Gab1kp124 +425 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) Gab1kp125 +426 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).EGFR(I_III!3,II!1,Y1173~P!4).EGF(EGFL!3) Gab1kp126 + + +# ErbB4-ErbB2 where ErbB4 transphosphorylates Gab1-Grb2-Shc +427 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1196~P!4) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1196~P!4) Gab1kp127 +428 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1196~P!4) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1196~P!4) Gab1kp128 +429 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1196~P!4) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1196~P!4) Gab1kp129 +430 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1196~P!4) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1196~P!4) Gab1kp130 + +431 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1222~P!4) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1222~P!4) Gab1kp131 +432 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1222~P!4) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1222~P!4) Gab1kp132 +433 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1222~P!4) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1222~P!4) Gab1kp133 +434 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1222~P!4) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1222~P!4) Gab1kp134 + +435 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1248~P!4) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1248~P!4) Gab1kp135 +436 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1248~P!4) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1248~P!4) Gab1kp136 +437 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1248~P!4) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1248~P!4) Gab1kp137 +438 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1248~P!4) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB2(II!1,Y1248~P!4) Gab1kp138 + +# ErbB4-ErbB2 where ErbB4 transphosphorylates Gab1-Grb2 +439 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).ErbB2(II!1,Y1139~P!4) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).ErbB2(II!1,Y1139~P!4) Gab1kp139 +440 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).ErbB2(II!1,Y1139~P!4) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).ErbB2(II!1,Y1139~P!4) Gab1kp140 +441 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).ErbB2(II!1,Y1139~P!4) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).ErbB2(II!1,Y1139~P!4) Gab1kp141 +442 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).ErbB2(II!1,Y1139~P!4) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2r!4).ErbB2(II!1,Y1139~P!4) Gab1kp142 + +# ErbB4-ErbB3 where ErbB4 transphosphorylates Gab1-Grb2-Shc +443 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) Gab1kp143 +444 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) Gab1kp144 +445 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) Gab1kp145 +446 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB3(I_III!3,II!1,Y1328~P!4).HRG(EGFL!3) Gab1kp146 + +# ErbB4-ErbB4 where ErbB4 transphosphorylates Gab1-Grb2-Shc +447 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) Gab1kp147 +448 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) Gab1kp148 +449 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) Gab1kp149 +450 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1188~P!4).HRG(EGFL!3) Gab1kp150 + +451 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y447~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) Gab1kp151 +452 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y472~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) Gab1kp152 +453 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y619~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) Gab1kp153 +454 HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~O,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) -> HRG(EGFL!5).ErbB4(I_III!5,II!1).Gab1(Y657~P,PRS1_PRS2!6).Grb2(cSH3!6,SH2s!2).p52Shc1(Y317~P!2,PTB!4).ErbB4(I_III!3,II!1,Y1242~P!4).HRG(EGFL!3) Gab1kp154 + + +#Gab1 Dissociation +455 Gab1(PRS1_PRS2!1).Grb2(cSH3!1) -> Gab1(PRS1_PRS2) + Grb2(cSH3) Gab1kp155 + + +#Phospho Erk and Gab1 interaction +# ERK2 binds with Gab1 +456 ERK2(STkinase,T185~P,Y187~P) + Gab1(T312~O) -> ERK2(STkinase!1,T185~P,Y187~P).Gab1(T312~O!1) Gab1kp156 +457 ERK2(STkinase,T185~P,Y187~P) + Gab1(S381~O) -> ERK2(STkinase!1,T185~P,Y187~P).Gab1(S381~O!1) Gab1kp157 +458 ERK2(STkinase,T185~P,Y187~P) + Gab1(S454~O) -> ERK2(STkinase!1,T185~P,Y187~P).Gab1(S454~O!1) Gab1kp158 +459 ERK2(STkinase,T185~P,Y187~P) + Gab1(T476~O) -> ERK2(STkinase!1,T185~P,Y187~P).Gab1(T476~O!1) Gab1kp159 +460 ERK2(STkinase,T185~P,Y187~P) + Gab1(S581~O) -> ERK2(STkinase!1,T185~P,Y187~P).Gab1(S581~O!1) Gab1kp160 +461 ERK2(STkinase,T185~P,Y187~P) + Gab1(S597~O) -> ERK2(STkinase!1,T185~P,Y187~P).Gab1(S597~O!1) Gab1kp161 + +#ERK2 phosphorylates Gab1 +462 ERK2(STkinase!1,T185~P,Y187~P).Gab1(T312~O!1) -> ERK2(STkinase!1,T185~P,Y187~P).Gab1(T312~P!1) Gab1kp162 +463 ERK2(STkinase!1,T185~P,Y187~P).Gab1(S381~O!1) -> ERK2(STkinase!1,T185~P,Y187~P).Gab1(S381~P!1) Gab1kp163 +464 ERK2(STkinase!1,T185~P,Y187~P).Gab1(S454~O!1) -> ERK2(STkinase!1,T185~P,Y187~P).Gab1(S454~P!1) Gab1kp164 +465 ERK2(STkinase!1,T185~P,Y187~P).Gab1(T476~O!1) -> ERK2(STkinase!1,T185~P,Y187~P).Gab1(T476~P!1) Gab1kp165 +466 ERK2(STkinase!1,T185~P,Y187~P).Gab1(S581~O!1) -> ERK2(STkinase!1,T185~P,Y187~P).Gab1(S581~P!1) Gab1kp166 +467 ERK2(STkinase!1,T185~P,Y187~P).Gab1(S597~O!1) -> ERK2(STkinase!1,T185~P,Y187~P).Gab1(S597~P!1) Gab1kp167 + +#Dissociation of ERK2 and phospho Gab1 +468 ERK2(STkinase!1).Gab1(T312!1) -> ERK2(STkinase) + Gab1(T312) Gab1kp168 +469 ERK2(STkinase!1).Gab1(S381!1) -> ERK2(STkinase) + Gab1(S381) Gab1kp168 +470 ERK2(STkinase!1).Gab1(S454!1) -> ERK2(STkinase) + Gab1(S454) Gab1kp168 +471 ERK2(STkinase!1).Gab1(T476!1) -> ERK2(STkinase) + Gab1(T476) Gab1kp168 +472 ERK2(STkinase!1).Gab1(S581!1) -> ERK2(STkinase) + Gab1(S581) Gab1kp168 +473 ERK2(STkinase!1).Gab1(S597!1) -> ERK2(STkinase) + Gab1(S597) Gab1kp168 + +#Intrinsic dephosphorylation of receptor phosphorylated Gab1 sites +474 Gab1(Y447~P) -> Gab1(Y447~O) Gab1kp169 +475 Gab1(Y472~P) -> Gab1(Y472~O) Gab1kp169 +476 Gab1(Y619~P) -> Gab1(Y619~O) Gab1kp169 +477 Gab1(Y657~P) -> Gab1(Y657~O) Gab1kp169 + +#Intrinsic dephosphorylation of Erk2 phosphorylated Gab1 sites +478 Gab1(T312~P) -> Gab1(T312~O) Gab1kp170 +479 Gab1(S381~P) -> Gab1(S381~O) Gab1kp170 +480 Gab1(S454~P) -> Gab1(S454~O) Gab1kp170 +481 Gab1(T476~P) -> Gab1(T476~O) Gab1kp170 +482 Gab1(S581~P) -> Gab1(S581~O) Gab1kp170 +483 Gab1(S597~P) -> Gab1(S597~O) Gab1kp170 + + +#Gab1 binding to PIP3 +484 Gab1(PH,PRS1_PRS2,S581~P) + PIP3(C3P,two~F) -> Gab1(PH!1,PRS1_PRS2,S581~P).PIP3(C3P!1,two~F) Gab1kp171 +485 Gab1(PH!1).PIP3(C3P!1) -> Gab1(PH) + PIP3(C3P) Gab1kp172 + +############## PI3K interactions ############## +# PI3K binds membrane localized Gab1-Grb2-Shc and Gab1-Grb2 at Y447,Y472, and Y619 +# Y447 +486 PI3K(G_p85_nSH2_cSH2,R_p85_nSH2_cSH2) + Gab1(Y447~P,T312~O!?,S381~O!?,S454~O!?,T476~O!?,S581~O!?,S597~O!?,PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~O!2,PTB!+) -> PI3K(G_p85_nSH2_cSH2!3,R_p85_nSH2_cSH2).Gab1(Y447~P!3,T312~O!?,S381~O!?,S454~O!?,T476~O!?,S581~O!?,S597~O!?,PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~O!2,PTB!+) PI3Kkp1 +487 PI3K(G_p85_nSH2_cSH2,R_p85_nSH2_cSH2) + Gab1(Y447~P,T312~O!?,S381~O!?,S454~O!?,T476~O!?,S581~O!?,S597~O!?,PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+) -> PI3K(G_p85_nSH2_cSH2!2,R_p85_nSH2_cSH2).Gab1(Y447~P!2,T312~O!?,S381~O!?,S454~O!?,T476~O!?,S581~O!?,S597~O!?,PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+) PI3Kkp1 + +# Y472 +488 PI3K(G_p85_nSH2_cSH2,R_p85_nSH2_cSH2) + Gab1(Y472~P,T312~O!?,S381~O!?,S454~O!?,T476~O!?,S581~O!?,S597~O!?,PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~O!2,PTB!+) -> PI3K(G_p85_nSH2_cSH2!3,R_p85_nSH2_cSH2).Gab1(Y472~P!3,T312~O!?,S381~O!?,S454~O!?,T476~O!?,S581~O!?,S597~O!?,PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~O!2,PTB!+) PI3Kkp2 +489 PI3K(G_p85_nSH2_cSH2,R_p85_nSH2_cSH2) + Gab1(Y472~P,T312~O!?,S381~O!?,S454~O!?,T476~O!?,S581~O!?,S597~O!?,PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+) -> PI3K(G_p85_nSH2_cSH2!2,R_p85_nSH2_cSH2).Gab1(Y472~P!2,T312~O!?,S381~O!?,S454~O!?,T476~O!?,S581~O!?,S597~O!?,PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+) PI3Kkp2 + +# Y619 +490 PI3K(G_p85_nSH2_cSH2,R_p85_nSH2_cSH2) + Gab1(Y619~P,T312~O!?,S381~O!?,S454~O!?,T476~O!?,S581~O!?,S597~O!?,PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~O!2,PTB!+) -> PI3K(G_p85_nSH2_cSH2!3,R_p85_nSH2_cSH2).Gab1(Y619~P!3,T312~O!?,S381~O!?,S454~O!?,T476~O!?,S581~O!?,S597~O!?,PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~O!2,PTB!+) PI3Kkp3 +491 PI3K(G_p85_nSH2_cSH2,R_p85_nSH2_cSH2) + Gab1(Y619~P,T312~O!?,S381~O!?,S454~O!?,T476~O!?,S581~O!?,S597~O!?,PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+) -> PI3K(G_p85_nSH2_cSH2!2,R_p85_nSH2_cSH2).Gab1(Y619~P!2,T312~O!?,S381~O!?,S454~O!?,T476~O!?,S581~O!?,S597~O!?,PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+) PI3Kkp3 + +#PI3K binds membrane localized Gab1-PIP3 +492 PI3K(G_p85_nSH2_cSH2,R_p85_nSH2_cSH2) + Gab1(PH!1,Y447~P,T312~O!?,S381~O!?,S454~O!?,T476~O!?,S581~O!?,S597~O!?).PIP3(C3P!1) -> PI3K(G_p85_nSH2_cSH2!2,R_p85_nSH2_cSH2).Gab1(PH!1,T312~O!?,S381~O!?,S454~O!?,T476~O!?,S581~O!?,S597~O!?,Y447~P!2).PIP3(C3P!1) PI3Kkp1 +493 PI3K(G_p85_nSH2_cSH2,R_p85_nSH2_cSH2) + Gab1(PH!1,Y472~P,T312~O!?,S381~O!?,S454~O!?,T476~O!?,S581~O!?,S597~O!?).PIP3(C3P!1) -> PI3K(G_p85_nSH2_cSH2!2,R_p85_nSH2_cSH2).Gab1(PH!1,T312~O!?,S381~O!?,S454~O!?,T476~O!?,S581~O!?,S597~O!?,Y472~P!2).PIP3(C3P!1) PI3Kkp2 +494 PI3K(G_p85_nSH2_cSH2,R_p85_nSH2_cSH2) + Gab1(PH!1,Y619~P,T312~O!?,S381~O!?,S454~O!?,T476~O!?,S581~O!?,S597~O!?).PIP3(C3P!1) -> PI3K(G_p85_nSH2_cSH2!2,R_p85_nSH2_cSH2).Gab1(PH!1,T312~O!?,S381~O!?,S454~O!?,T476~O!?,S581~O!?,S597~O!?,Y619~P!2).PIP3(C3P!1) PI3Kkp3 + +# PI3K dissasociation from Gab1 +495 PI3K(G_p85_nSH2_cSH2!1).Gab1(Y447!1) -> PI3K(G_p85_nSH2_cSH2) + Gab1(Y447) PI3Kkp4 +496 PI3K(G_p85_nSH2_cSH2!1).Gab1(Y472!1) -> PI3K(G_p85_nSH2_cSH2) + Gab1(Y472) PI3Kkp4 +497 PI3K(G_p85_nSH2_cSH2!1).Gab1(Y619!1) -> PI3K(G_p85_nSH2_cSH2) + Gab1(Y619) PI3Kkp4 + +#membrane bound PI3K Binding to active Ras +498 PI3K(p110_RBD,G_p85_nSH2_cSH2!3).Gab1(Y447~P!3,PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+) + KRas(g~GTP,GTPase) -> PI3K(p110_RBD!4,G_p85_nSH2_cSH2!3).Gab1(Y447~P!3,PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+).KRas(g~GTP,GTPase!4) PI3Kkp5 +499 PI3K(p110_RBD,G_p85_nSH2_cSH2!2).Gab1(Y447~P!2,PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+) + KRas(g~GTP,GTPase) -> PI3K(G_p85_nSH2_cSH2!2,p110_RBD!4).Gab1(Y447~P!2,PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+).KRas(g~GTP,GTPase!4) PI3Kkp5 + +500 PI3K(p110_RBD,G_p85_nSH2_cSH2!3).Gab1(Y472~P!3,PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+) + KRas(g~GTP,GTPase) -> PI3K(p110_RBD!4,G_p85_nSH2_cSH2!3).Gab1(Y472~P!3,PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+).KRas(g~GTP,GTPase!4) PI3Kkp5 +501 PI3K(p110_RBD,G_p85_nSH2_cSH2!2).Gab1(Y472~P!2,PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+) + KRas(g~GTP,GTPase) -> PI3K(G_p85_nSH2_cSH2!2,p110_RBD!4).Gab1(Y472~P!2,PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+).KRas(g~GTP,GTPase!4) PI3Kkp5 + +502 PI3K(p110_RBD,G_p85_nSH2_cSH2!3).Gab1(Y619~P!3,PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+) + KRas(g~GTP,GTPase) -> PI3K(p110_RBD!4,G_p85_nSH2_cSH2!3).Gab1(Y619~P!3,PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+).KRas(g~GTP,GTPase!4) PI3Kkp5 +503 PI3K(p110_RBD,G_p85_nSH2_cSH2!2).Gab1(Y619~P!2,PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+) + KRas(g~GTP,GTPase) -> PI3K(G_p85_nSH2_cSH2!2,p110_RBD!4).Gab1(Y619~P!2,PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+).KRas(g~GTP,GTPase!4) PI3Kkp5 + + +#PI3K Dissociation from Ras +504 PI3K(p110_RBD!1).KRas(GTPase!1) -> PI3K(p110_RBD) + KRas(GTPase) PI3Kkp6 + + +#PI3K binds to ErbB3 +505 PI3K(R_p85_nSH2_cSH2,G_p85_nSH2_cSH2) + ErbB3(Y1054~P) <-> PI3K(R_p85_nSH2_cSH2!1,G_p85_nSH2_cSH2).ErbB3(Y1054~P!1) PI3Kkp7,PI3Kkm7 +506 PI3K(R_p85_nSH2_cSH2,G_p85_nSH2_cSH2) + ErbB3(Y1197~P) <-> PI3K(R_p85_nSH2_cSH2!1,G_p85_nSH2_cSH2).ErbB3(Y1197~P!1) PI3Kkp8,PI3Kkm8 +507 PI3K(R_p85_nSH2_cSH2,G_p85_nSH2_cSH2) + ErbB3(Y1222~P) <-> PI3K(R_p85_nSH2_cSH2!1,G_p85_nSH2_cSH2).ErbB3(Y1222~P!1) PI3Kkp9,PI3Kkm9 +508 PI3K(R_p85_nSH2_cSH2,G_p85_nSH2_cSH2) + ErbB3(Y1260~P) <-> PI3K(R_p85_nSH2_cSH2!1,G_p85_nSH2_cSH2).ErbB3(Y1260~P!1) PI3Kkp10,PI3Kkm10 +509 PI3K(R_p85_nSH2_cSH2,G_p85_nSH2_cSH2) + ErbB3(Y1276~P) <-> PI3K(R_p85_nSH2_cSH2!1,G_p85_nSH2_cSH2).ErbB3(Y1276~P!1) PI3Kkp11,PI3Kkm11 +510 PI3K(R_p85_nSH2_cSH2,G_p85_nSH2_cSH2) + ErbB3(Y1289~P) <-> PI3K(R_p85_nSH2_cSH2!1,G_p85_nSH2_cSH2).ErbB3(Y1289~P!1) PI3Kkp12,PI3Kkm12 + +#PI3K binds to ErbB4 +511 PI3K(R_p85_nSH2_cSH2,G_p85_nSH2_cSH2) + ErbB4(Y1056~P) <-> PI3K(R_p85_nSH2_cSH2!1,G_p85_nSH2_cSH2).ErbB4(Y1056~P!1) PI3Kkp13,PI3Kkm13 + +############## PIP3 interactions ############## + +#creation of PIP3 by active PI3K-Gab1~rec + +512 PI3K(G_p85_nSH2_cSH2!3).Gab1(Y447~P!3,PRS1_PRS2!1,PH).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+) -> PIP3(C3P,two~F,loc~M) + PI3K(G_p85_nSH2_cSH2!3).Gab1(Y447~P!3,PRS1_PRS2!1,PH).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+) PIP3kp1 +513 PI3K(G_p85_nSH2_cSH2!3).Gab1(Y472~P!3,PRS1_PRS2!1,PH).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+) -> PIP3(C3P,two~F,loc~M) + PI3K(G_p85_nSH2_cSH2!3).Gab1(Y472~P!3,PRS1_PRS2!1,PH).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+) PIP3kp1 +514 PI3K(G_p85_nSH2_cSH2!3).Gab1(Y619~P!3,PRS1_PRS2!1,PH).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+) -> PIP3(C3P,two~F,loc~M) + PI3K(G_p85_nSH2_cSH2!3).Gab1(Y619~P!3,PRS1_PRS2!1,PH).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+) PIP3kp1 + +515 PI3K(G_p85_nSH2_cSH2!3).Gab1(Y447~P!3,PRS1_PRS2!1,PH).Grb2(cSH3!1,SH2r!+) -> PIP3(C3P,two~F,loc~M) + PI3K(G_p85_nSH2_cSH2!3).Gab1(Y447~P!3,PRS1_PRS2!1,PH).Grb2(cSH3!1,SH2r!+) PIP3kp1 +516 PI3K(G_p85_nSH2_cSH2!3).Gab1(Y472~P!3,PRS1_PRS2!1,PH).Grb2(cSH3!1,SH2r!+) -> PIP3(C3P,two~F,loc~M) + PI3K(G_p85_nSH2_cSH2!3).Gab1(Y472~P!3,PRS1_PRS2!1,PH).Grb2(cSH3!1,SH2r!+) PIP3kp1 +517 PI3K(G_p85_nSH2_cSH2!3).Gab1(Y619~P!3,PRS1_PRS2!1,PH).Grb2(cSH3!1,SH2r!+) -> PIP3(C3P,two~F,loc~M) + PI3K(G_p85_nSH2_cSH2!3).Gab1(Y619~P!3,PRS1_PRS2!1,PH).Grb2(cSH3!1,SH2r!+) PIP3kp1 + +#With PI3K bound to Ras +518 PI3K(G_p85_nSH2_cSH2!3,p110_RBD!+).Gab1(Y447~P!3,PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+) -> PIP3(C3P,two~F,loc~M) + PI3K(G_p85_nSH2_cSH2!3,p110_RBD!+).Gab1(Y447~P!3,PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+) PIP3kp1_5 +519 PI3K(G_p85_nSH2_cSH2!3,p110_RBD!+).Gab1(Y472~P!3,PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+) -> PIP3(C3P,two~F,loc~M) + PI3K(G_p85_nSH2_cSH2!3,p110_RBD!+).Gab1(Y472~P!3,PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+) PIP3kp1_5 +520 PI3K(G_p85_nSH2_cSH2!3,p110_RBD!+).Gab1(Y619~P!3,PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+) -> PIP3(C3P,two~F,loc~M) + PI3K(G_p85_nSH2_cSH2!3,p110_RBD!+).Gab1(Y619~P!3,PRS1_PRS2!1).Grb2(cSH3!1,SH2s!2).p52Shc1(Y317~P!2,PTB!+) PIP3kp1_5 + +521 PI3K(G_p85_nSH2_cSH2!3,p110_RBD!+).Gab1(Y447~P!3,PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+) -> PIP3(C3P,two~F,loc~M) + PI3K(G_p85_nSH2_cSH2!3,p110_RBD!+).Gab1(Y447~P!3,PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+) PIP3kp1_5 +522 PI3K(G_p85_nSH2_cSH2!3,p110_RBD!+).Gab1(Y472~P!3,PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+) -> PIP3(C3P,two~F,loc~M) + PI3K(G_p85_nSH2_cSH2!3,p110_RBD!+).Gab1(Y472~P!3,PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+) PIP3kp1_5 +523 PI3K(G_p85_nSH2_cSH2!3,p110_RBD!+).Gab1(Y619~P!3,PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+) -> PIP3(C3P,two~F,loc~M) + PI3K(G_p85_nSH2_cSH2!3,p110_RBD!+).Gab1(Y619~P!3,PRS1_PRS2!1).Grb2(cSH3!1,SH2r!+) PIP3kp1_5 + +#creation of PIP3 by PI3k-Gab1-PIP3 +524 PI3K(G_p85_nSH2_cSH2!1).Gab1(Y447~P!1,PH!+) -> PIP3(C3P,two~F,loc~M) + PI3K(G_p85_nSH2_cSH2!1).Gab1(Y447~P!1,PH!+) PIP3kp1 +525 PI3K(G_p85_nSH2_cSH2!1).Gab1(Y472~P!1,PH!+) -> PIP3(C3P,two~F,loc~M) + PI3K(G_p85_nSH2_cSH2!1).Gab1(Y472~P!1,PH!+) PIP3kp1 +526 PI3K(G_p85_nSH2_cSH2!1).Gab1(Y619~P!1,PH!+) -> PIP3(C3P,two~F,loc~M) + PI3K(G_p85_nSH2_cSH2!1).Gab1(Y619~P!1,PH!+) PIP3kp1 + +#creation of PIP3 by PI3K-ErbB3 +527 PI3K(R_p85_nSH2_cSH2!+) -> PIP3(C3P,two~F,loc~M) + PI3K(R_p85_nSH2_cSH2!+) PIP3kp1 + +#PIP3 dephosphorylation +528 PIP3(C3P,two~F) -> PIP3(C3P,two~T) PIP3kp3 + +############## AKT and CDK1 interactions ############## + +#Akt1 binding to PIP3 +529 Akt1(PH) + PIP3(C3P,two~F) <-> Akt1(PH!1).PIP3(C3P!1,two~F) Akt1kp1,Akt1km1 + +#PDK1 binding to PIP3 +530 PDK1(PH) + PIP3(C3P,two~F) <-> PDK1(PH!1).PIP3(C3P!1,two~F) Akt1kp2,Akt1km2 + +#PDK1-PIP3 binds to AKT-PIP3 +531 PDK1(PH!+,STkinase) + Akt1(PH!+,T308~O) -> PDK1(PH!+,STkinase!1).Akt1(PH!+,T308~O!1) Akt1kp3 + +#phosphorylation of AKT-PIP3 by CDK1-PIP3 +532 PDK1(PH!+,STkinase!1).Akt1(PH!+,T308~O!1) -> PDK1(PH!+,STkinase!1).Akt1(PH!+,T308~P!1) Akt1kp4 + +533 PDK1(STkinase!1).Akt1(T308!1) -> PDK1(STkinase) + Akt1(T308) Akt1kp5 + +# Phosphorylation of S473 by an unknown kinase, this only occurs when T308 is phosphorylated +534 Akt1(T308~P!?,S473~O) -> Akt1(T308~P!?,S473~P) Akt1kp6 + +# Activated Akt-1 phosphorylates Raf-1 at S259 +# This is an inhibitory feedback loop from the AKT pathway to the ERK pathway +535 Akt1(T308~P!?,S473~P,STkinase) + Raf1(S259~O) -> Akt1(T308~P!?,S473~P,STkinase!1).Raf1(S259~O!1) Akt1kp7 +536 Akt1(T308~P!?,S473~P,STkinase!1).Raf1(S259~O!1) -> Akt1(T308~P!?,S473~P,STkinase!1).Raf1(S259~P!1) Akt1kp8 +537 Akt1(STkinase!1).Raf1(S259!1) -> Akt1(STkinase) + Raf1(S259) Akt1kp9 + +# Intrinsic dephosphorylation of phosphorylated residues on AKT +538 Raf1(S259~P) -> Raf1(S259~O) Akt1kp10 + +539 Akt1(T308~P) -> Akt1(T308~O) Akt1kp11 + +540 Akt1(S473~P) -> Akt1(S473~O) Akt1kp12 + +############## p120RasGAP interactions ############## +541 p120RasGAP(nSH2) + EGFR(Y992~P) <-> p120RasGAP(nSH2!1).EGFR(Y992~P!1) rGAPkp1,rGAPkm1 +542 p120RasGAP(nSH2!+,GAP) + KRas(GTPase,g~GTP) -> p120RasGAP(nSH2!+,GAP!1).KRas(GTPase!1,g~GTP) rGAPkp2 +543 p120RasGAP(GAP!1).KRas(GTPase!1,g~GTP) -> p120RasGAP(GAP!1).KRas(GTPase!1,g~GDP) rGAPkp3 +544 p120RasGAP(GAP!1).KRas(GTPase!1) -> p120RasGAP(GAP) + KRas(GTPase) rGAPkp4 + +end reaction rules + +#ACTIONS +# 1. Run with this line uncommented to generate the opts file. Copy this file to the top level project folder +# (if using RuleBender). +#visualize({type=>"opts"}) +# 2. Now uncomment the next line to use the opts file. +#visualize({type=>"regulatory",groups=>1,collapse=>1,opts=>"../../../Creamer_2012_opts.txt",doNotUseContextWhenGrouping=>1}) diff --git a/Tutorials/NativeTutorials/Creamer2012/README.md b/Tutorials/NativeTutorials/Creamer2012/README.md new file mode 100644 index 00000000..669efc0b --- /dev/null +++ b/Tutorials/NativeTutorials/Creamer2012/README.md @@ -0,0 +1,21 @@ +# Creamer 2012 + +Initial values + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- Creamer_2012.bngl + +## Tags + +creamer, 2012, egf, hrg, egfr, erbb2, erbb3, erbb4, p52shc1, grb2 diff --git a/Tutorials/NativeTutorials/Creamer2012/metadata.yaml b/Tutorials/NativeTutorials/Creamer2012/metadata.yaml new file mode 100644 index 00000000..7cf9f7d4 --- /dev/null +++ b/Tutorials/NativeTutorials/Creamer2012/metadata.yaml @@ -0,0 +1,22 @@ +id: "Creamer_2012" +name: "Creamer 2012" +description: "Initial values" +tags: ["creamer", "2012", "egf", "hrg", "egfr", "erbb2", "erbb3", "erbb4", "p52shc1", "grb2"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/LargerModels/Creamer_2012.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/NativeTutorials/FceRIji/FceRI_ji.bngl b/Tutorials/NativeTutorials/FceRIji/FceRI_ji.bngl new file mode 100644 index 00000000..6fedb628 --- /dev/null +++ b/Tutorials/NativeTutorials/FceRIji/FceRI_ji.bngl @@ -0,0 +1,134 @@ +## title: FceRI_ji.bngl +## description: Model of FceRI (the high affinity receptor for IgE) signaling network as described by +# Faeder et al. (2003) [J. Immunol., 170, 3769-3781]. + +begin model +begin parameters + Na 6.02e23 # Avogadro's number + Vec 1e-9 # Volume of extracellular space + lig_conc 1e-9 # Ligand concentration - molar + Lig_tot lig_conc*Na*Vec # units: molecules + Rec_tot 4.0e2 # units: molecules # Note: these copy numbers have been reduced by a factor of 1000 + Lyn_tot 2.8e1 # units: molecules + Syk_tot 4.0e2 # units: molecules + + kp1 1.32845238e-7 # units: /molecule/s + km1 0.01 # units: /s + kp2 2.5e-1 # units: /molecule/s + km2 0.01 # units: /s + kpL 5e-2 # units: /molecule/s + kmL 20 # units: /s + kpLs 5e-2 # units: /molecule/s + kmLs 0.12 # units: /s + kpS 6e-2 # units: /molecule/s + kmS 0.13 # units: /s + kpSs 6e-2 # units: /molecule/s + kmSs 0.13 # units: /s + pLb 30 # units: /s + pLbs 100 # units: /s + pLg 1 # units: /s + pLgs 3 # units: /s + pLS 30 # units: /s + pLSs 100 # units: /s + pSS 100 # units: /s + pSSs 200 # units: /s + dm 20 # units: /s + dc 20 # units: /s +end parameters + +begin molecule types + Lig(l,l) + Lyn(U,SH2) + Syk(tSH2,l~Y~pY,a~Y~pY) + Rec(a,b~Y~pY,g~Y~pY) +end molecule types + +begin species + Lig(l,l) 0 # Lig_tot - set to non-zero value after pre-equil period + Lyn(U,SH2) Lyn_tot + Syk(tSH2,l~Y,a~Y) Syk_tot + Rec(a,b~Y,g~Y) Rec_tot +end species + +begin observables + Molecules LynFree Lyn(U,SH2) + Molecules RecMon Rec(a), Rec(a!1).Lig(l!1,l) + Molecules RecDim Rec().Rec() + + Molecules RecPbeta Rec(b~pY!?) + Molecules RecPgamma Rec(g~pY), Rec(g~pY!+) + Molecules RecSyk Rec(g~pY!1).Syk(tSH2!1) + Molecules RecSykPS Rec(g~pY!1).Syk(tSH2!1,a~pY) +end observables + +begin reaction rules + # Ligand-receptor binding + R1: Rec(a) + Lig(l,l) <-> Rec(a!1).Lig(l!1,l) kp1, km1 + + # Receptor-aggregation + R2: Rec(a) + Lig(l,l!+) <-> Rec(a!2).Lig(l!2,l!+) kp2, km2 + + # Constitutive Lyn-receptor binding + R3: Rec(b~Y) + Lyn(U,SH2) <-> Rec(b~Y!1).Lyn(U!1,SH2) kpL, kmL + + # Transphosphorylation of beta by constitutive Lyn + R4: Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~Y) -> Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,b~pY) pLb + + # Transphosphorylation of gamma by constitutive Lyn + R5: Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~Y) -> Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY) pLg + + # Lyn-receptor binding through SH2 domain + R6: Rec(b~pY) + Lyn(U,SH2) <-> Rec(b~pY!1).Lyn(U,SH2!1) kpLs, kmLs + + # Transphosphorylation of beta by SH2-bound Lyn + R7: Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,b~Y) -> Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,b~pY) pLbs + + # Transphosphorylation of gamma by SH2-bound Lyn + R8: Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~Y) -> Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY) pLgs + + # Syk-receptor binding through tSH2 domain + R9: Rec(g~pY) + Syk(tSH2) <-> Rec(g~pY!1).Syk(tSH2!1) kpS, kmS + + # Transphosphorylation of Syk by constitutive Lyn + R10: Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~Y) -> \ + Lig(l!1,l!2).Lyn(U!3,SH2).Rec(a!2,b~Y!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~pY) pLS + + # Transphosphorylation of Syk by SH2-bound Lyn + R11: Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~Y) -> \ + Lig(l!1,l!2).Lyn(U,SH2!3).Rec(a!2,b~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,l~pY) pLSs + + # Transphosphorylation of Syk by Syk not phosphorylated on aloop + R12: Lig(l!1,l!2).Syk(tSH2!3,a~Y).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~Y) -> \ + Lig(l!1,l!2).Syk(tSH2!3,a~Y).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~pY) pSS + + # Transphosphorylation of Syk by Syk phosphorylated on aloop + R13: Lig(l!1,l!2).Syk(tSH2!3,a~pY).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~Y) -> \ + Lig(l!1,l!2).Syk(tSH2!3,a~pY).Rec(a!2,g~pY!3).Rec(a!1,g~pY!4).Syk(tSH2!4,a~pY) pSSs + + # Dephosphorylation of Rec beta + R14: Rec(b~pY) -> Rec(b~Y) dm + + # Dephosphorylation of Rec gamma + R15: Rec(g~pY) -> Rec(g~Y) dm + + # Dephosphorylation of Syk at membrane + R16: Syk(tSH2!+,l~pY) -> Syk(tSH2!+,l~Y) dm + R17: Syk(tSH2!+,a~pY) -> Syk(tSH2!+,a~Y) dm + + # Dephosphorylation of Syk in cytosol + R18: Syk(tSH2,l~pY) -> Syk(tSH2,l~Y) dc + R19: Syk(tSH2,a~pY) -> Syk(tSH2,a~Y) dc +end reaction rules +end model + +## actions ## +generate_network({overwrite=>1}) +# Pre-equilibration +simulate({method=>"ode",t_end=>10,n_steps=>10,atol=>1e-8,rtol=>1e-8}) +# Addition of ligand +setConcentration("Lig(l,l)", "Lig_tot") +simulate({method=>"ode",t_end=>1000,n_steps=>990,atol=>1e-8,rtol=>1e-8,continue=>1}) + +# To perform a parameter scan of this model, comment the last simulate command and uncomment the following: +#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}) \ No newline at end of file diff --git a/Tutorials/NativeTutorials/FceRIji/README.md b/Tutorials/NativeTutorials/FceRIji/README.md new file mode 100644 index 00000000..89f5a274 --- /dev/null +++ b/Tutorials/NativeTutorials/FceRIji/README.md @@ -0,0 +1,21 @@ +# FceRI ji + +title: FceRI_ji.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- FceRI_ji.bngl + +## Tags + +fceri, ji, lig, lyn, syk, rec diff --git a/Tutorials/NativeTutorials/FceRIji/metadata.yaml b/Tutorials/NativeTutorials/FceRIji/metadata.yaml new file mode 100644 index 00000000..71016fef --- /dev/null +++ b/Tutorials/NativeTutorials/FceRIji/metadata.yaml @@ -0,0 +1,22 @@ +id: "FceRI_ji" +name: "FceRI ji" +description: "title: FceRI_ji.bngl" +tags: ["fceri", "ji", "lig", "lyn", "syk", "rec"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/LargerModels/FceRI_ji.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/FceRIviz/FceRI_viz.bngl b/Tutorials/NativeTutorials/FceRIviz/FceRI_viz.bngl new file mode 100644 index 00000000..c2a286ea --- /dev/null +++ b/Tutorials/NativeTutorials/FceRIviz/FceRI_viz.bngl @@ -0,0 +1,107 @@ +## title: FceRI_viz.bngl +# description: A +begin model +begin parameters + IgE_tot 2 + FcR_tot 4.0e2 + Lyn_tot 2.8e1 + Syk_tot 4.0e2 + Lat_tot 4.0e2 + kp1 1.7e-6 + km1 0.01 + kp2 4.0e-1 + km2 km1 + kpL 5e-2 + kmL 20 + kpLs 5e-2 + kmLs 0.12 + kpS 6e-2 + kmS 0.13 + kpSs 6e-2 + kmSs 0.13 + pLb 30 + pLbs 100 + pLg 1 + pLgs 3 + pLS 30 + pLSs 100 + pSS 100 + pSSs 200 + dm 20 + dc 20 + kpMM 5e-3 + kmMM 20 + pMM 200 +end parameters +begin molecule types + FcR(alpha,beta~0~P,gamma~0~P) + IgE(Fc,Fc) + Lat(Y136~0~P) + Lyn(U,SH2) + Syk(tSH2,PTK~0~P) +end molecule types +begin observables + Molecules pLat Lat(Y136~P!?) + Molecules LynFree Lyn(U,SH2) + Molecules FcRMon FcR(alpha) FcR(alpha!1).IgE(Fc!1,Fc) + Molecules FcRDim FcR().FcR() + Molecules FcRPbeta FcR(beta~P!?) + Molecules FcRPgamma FcR(gamma~P) FcR(gamma~P!+) + Molecules FcRSyk FcR(gamma~P!1).Syk(tSH2!1) + Molecules FcRSykPS FcR(gamma~P!1).Syk(tSH2!1,PTK~P) + Molecules SykTest Syk() + Molecules LynTest Lyn() + Molecules FcRTest FcR() +end observables +begin functions + Pb() = FcRPbeta/FcRDim + Pg() = FcRPgamma/FcRDim + SykP() = FcRSykPS/FcRDim +end functions +begin species + IgE(Fc,Fc) IgE_tot + Lyn(SH2,U) Lyn_tot + Syk(PTK~0,tSH2) Syk_tot + FcR(alpha,beta~0,gamma~0) FcR_tot + Lat(Y136~0) Lat_tot +end species +begin reaction rules + R1: FcR(alpha) + IgE(Fc,Fc) <-> FcR(alpha!1).IgE(Fc!1,Fc) kp1, km1 + R2: FcR(alpha) + IgE(Fc,Fc!+) <-> FcR(alpha!1).IgE(Fc!1,Fc!+) kp2, km2 + R3: FcR(beta~0) + Lyn(U,SH2) <-> FcR(beta~0!1).Lyn(U!1,SH2) kpL, kmL + R4: IgE(Fc!1,Fc!2).Lyn(U!3,SH2).FcR(alpha!2,beta~0!3).FcR(alpha!1,beta~0) -> \ +IgE(Fc!1,Fc!2).Lyn(U!3,SH2).FcR(alpha!2,beta~0!3).FcR(alpha!1,beta~P) pLb + R5: IgE(Fc!1,Fc!2).Lyn(U!3,SH2).FcR(alpha!2,beta~0!3).FcR(alpha!1,gamma~0) -> \ +IgE(Fc!1,Fc!2).Lyn(U!3,SH2).FcR(alpha!2,beta~0!3).FcR(alpha!1,gamma~P) pLg + R6: IgE(Fc!1,Fc!2).Lyn(U,SH2!3).FcR(alpha!2,beta~P!3).FcR(alpha!1,beta~0) -> \ +IgE(Fc!1,Fc!2).Lyn(U,SH2!3).FcR(alpha!2,beta~P!3).FcR(alpha!1,beta~P) pLbs + R7: IgE(Fc!1,Fc!2).Lyn(U,SH2!3).FcR(alpha!2,beta~P!3).FcR(alpha!1,gamma~0) -> \ +IgE(Fc!1,Fc!2).Lyn(U,SH2!3).FcR(alpha!2,beta~P!3).FcR(alpha!1,gamma~P) pLgs + R8: FcR(beta~P) + Lyn(U,SH2) <-> FcR(beta~P!1).Lyn(U,SH2!1) kpLs, kmLs + R9: FcR(gamma~P) + Syk(tSH2) <-> FcR(gamma~P!1).Syk(tSH2!1) kpS, kmS + R10: IgE(Fc!1,Fc!2).Syk(tSH2!3,PTK~0).FcR(alpha!2,gamma~P!3).FcR(alpha!1,gamma~P!4).Syk(tSH2!4,PTK~0) -> \ +IgE(Fc!1,Fc!2).Syk(tSH2!3,PTK~0).FcR(alpha!2,gamma~P!3).FcR(alpha!1,gamma~P!4).Syk(tSH2!4,PTK~P) pSS + R11: IgE(Fc!1,Fc!2).Syk(tSH2!3,PTK~P).FcR(alpha!2,gamma~P!3).FcR(alpha!1,gamma~P!4).Syk(tSH2!4,PTK~0) -> \ +IgE(Fc!1,Fc!2).Syk(tSH2!3,PTK~P).FcR(alpha!2,gamma~P!3).FcR(alpha!1,gamma~P!4).Syk(tSH2!4,PTK~P) pSSs + R12: Syk(tSH2!+,PTK~P) + Lat(Y136~0) -> Syk(tSH2!+,PTK~P!1).Lat(Y136~0!1) kpMM + R13: Syk(PTK~P!1).Lat(Y136~0!1) -> Syk(PTK~P) + Lat(Y136~0) kmMM + R14: Syk(PTK~P!1).Lat(Y136~0!1) -> Syk(PTK~P) + Lat(Y136~P) pMM + R15: Lat(Y136~P) -> Lat(Y136~0) dm + R16: FcR(beta~P) -> FcR(beta~0) dm + R17: FcR(gamma~P) -> FcR(gamma~0) dm + R18: Syk(tSH2!+,PTK~P) -> Syk(tSH2!+,PTK~0) dm + R19: Syk(tSH2,PTK~P) -> Syk(tSH2,PTK~0) dc +end reaction rules +end model + +# 1. Generate the network for the model and simulate for 10 minutes. +# generate_network() +simulate({method=>"ode",t_end=>600,n_steps=>500}) + +# 2. Uncomment this line and rerun the model. +#visualize({type=>"opts"}) + +# 3. Navigate to the appropriate folder in the results directory and move the file with suffix _opts.txt back +# to the main project folder. Then uncomment the subsequent lines to produce a compressed atom-rule +# graph. +#visualize({type=>"regulatory",background=>0,opts=>["../../../FceRI_viz_opts.txt"]}) diff --git a/Tutorials/NativeTutorials/FceRIviz/README.md b/Tutorials/NativeTutorials/FceRIviz/README.md new file mode 100644 index 00000000..7df9a57e --- /dev/null +++ b/Tutorials/NativeTutorials/FceRIviz/README.md @@ -0,0 +1,21 @@ +# FceRI Viz + +FcεRI (viz) + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- FceRI_viz.bngl + +## Tags + +published, tutorial, native, fceri, viz, fcr, ige, lat, lyn, syk, pb, pg, sykp diff --git a/Tutorials/NativeTutorials/FceRIviz/metadata.yaml b/Tutorials/NativeTutorials/FceRIviz/metadata.yaml new file mode 100644 index 00000000..909513d1 --- /dev/null +++ b/Tutorials/NativeTutorials/FceRIviz/metadata.yaml @@ -0,0 +1,22 @@ +id: "FceRI_viz" +name: "FceRI Viz" +description: "FcεRI (viz)" +tags: ["published", "tutorial", "native", "fceri", "viz", "fcr", "ige", "lat", "lyn", "syk", "pb", "pg", "sykp"] +category: "tutorial" +compatibility: + bng2_compatible: false + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/Viz/FceRI_viz.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/GK/GK.bngl b/Tutorials/NativeTutorials/GK/GK.bngl new file mode 100644 index 00000000..bf949c7f --- /dev/null +++ b/Tutorials/NativeTutorials/GK/GK.bngl @@ -0,0 +1,32 @@ +## title: GK.bngl +## description: Goldebeter-Koshland model in dimensionless units. +## reference: Goldbeter, Albert, and Daniel E. Koshland, Jr. +## “An Amplified Sensitivity Arising from Covalent Modification in +# Biological Systems.” Proc. Natl. Acad. Sci. USA 78, no. 11 (1981): 6840–44. +## author: Jim Faeder +## date: 27Feb2018 +## note: +begin model +begin parameters + K 100 + P 1 + B0 1 + Km_K 0.1 # Both Km's must be <<1 for the system to be ultrasensitive. + Km_P 0.1 +end parameters +begin molecule types + B(Y~0~p) +end molecule types +begin seed species + B(Y~0) B0 +end seed species +begin observables + Molecules Bu B(Y~0) + Molecules Bp B(Y~p) +end observables +begin reaction rules + B(Y~0) <-> B(Y~p) K/(Km_K + Bu), P/(Km_P + Bp) +end reaction rules +end model + +simulate({method=>"ode",t_end=>100,n_steps=>200}) \ No newline at end of file diff --git a/Tutorials/NativeTutorials/GK/README.md b/Tutorials/NativeTutorials/GK/README.md new file mode 100644 index 00000000..1f269afa --- /dev/null +++ b/Tutorials/NativeTutorials/GK/README.md @@ -0,0 +1,21 @@ +# GK + +title: GK.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- GK.bngl + +## Tags + +gk, b, simulate diff --git a/Tutorials/NativeTutorials/GK/metadata.yaml b/Tutorials/NativeTutorials/GK/metadata.yaml new file mode 100644 index 00000000..ca4469fa --- /dev/null +++ b/Tutorials/NativeTutorials/GK/metadata.yaml @@ -0,0 +1,22 @@ +id: "GK" +name: "GK" +description: "title: GK.bngl" +tags: ["gk", "b", "simulate"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/ABp/GK.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/LR/LR.bngl b/Tutorials/NativeTutorials/LR/LR.bngl new file mode 100644 index 00000000..328692bc --- /dev/null +++ b/Tutorials/NativeTutorials/LR/LR.bngl @@ -0,0 +1,43 @@ +## title: LR.bngl +## Simple ligand-receptor binding model expressed in cell units: +# time - seconds +# concentration - molecule number +# length - um, area - um^2, volume - um^3 +# bimolecular association - um^3/s (3D), um^2/s (2D) +## author: Jim Faeder +## date: 05Mar2018 + +begin model +begin parameters + NaV 6.02e8 # Conversion constant: M -> #/um^3 + Vcell 1000 # Typical eukaryotic cell volume ~ 1000 um^3 + Vec 1000*Vcell # Volume of extracellular space around each cell (1/cell density) + lig_conc 1e-8 # Ligand concentration - molar + L0 lig_conc*NaV*Vec # number of ligand molecules + R0 10000 # number of receptor molecules per cell + + kp1 1e6/(NaV*Vec) # Forward binding rate constant for L-R + km1 0.01 # Reverse binding rate constant for L-R +end parameters + +begin molecule types + L(r) # L molecule has one binding site for R + R(l) # R molecule has one binding site for L +end molecule types + +begin species + L(r) L0 + R(l) R0 +end species + +begin observables + Molecules FreeR R(l) + Molecules Bound L(r!1).R(l!1) +end observables + +begin reaction rules + L(r) + R(l) <-> L(r!1).R(l!1) kp1, km1 +end reaction rules +end model + +simulate({method=>"ode",t_end=>300,n_steps=>500}) diff --git a/Tutorials/NativeTutorials/LR/README.md b/Tutorials/NativeTutorials/LR/README.md new file mode 100644 index 00000000..dce1848c --- /dev/null +++ b/Tutorials/NativeTutorials/LR/README.md @@ -0,0 +1,21 @@ +# LR + +title: LR.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- LR.bngl + +## Tags + +lr, l, r, simulate diff --git a/Tutorials/NativeTutorials/LR/metadata.yaml b/Tutorials/NativeTutorials/LR/metadata.yaml new file mode 100644 index 00000000..bf7a6374 --- /dev/null +++ b/Tutorials/NativeTutorials/LR/metadata.yaml @@ -0,0 +1,22 @@ +id: "LR" +name: "LR" +description: "title: LR.bngl" +tags: ["lr", "l", "r", "simulate"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/CBNGL/LR.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/LRR/LRR.bngl b/Tutorials/NativeTutorials/LRR/LRR.bngl new file mode 100644 index 00000000..f178eee8 --- /dev/null +++ b/Tutorials/NativeTutorials/LRR/LRR.bngl @@ -0,0 +1,53 @@ +## title: LRR.bngl +## Ligand-receptor binding and dimerization model expressed in cell units: +# time - seconds +# concentration - molecule number +# length - um, area - um^2, volume - um^3 +# bimolecular association - um^3/s (3D), um^2/s (2D) +## author: Jim Faeder +## date: 05Mar2018 + +begin model +begin parameters + NaV 6.02e8 # Conversion constant: M -> #/um^3 + Vcell 1000 # Typical eukaryotic cell volume ~ 1000 um^3 + Vec 1000*Vcell # Volume of extracellular space around each cell (1/cell density) + d_pm 0.01 # Effective thickness of the plasma membrane (10 nm) + Acell 1000 # Approximate area of PM + Vpm Acell*d_pm # Effective volume of PM + lig_conc 1e-8 # Ligand concentration - molar + L0 lig_conc*NaV*Vec # number of ligand molecules + R0 10000 # number of receptor molecules per cell + + kp1 1e6/NaV # #/um^3 1/s: Forward binding rate constant for L-R + km1 0.01 # 1/s Reverse binding rate constant for L-R +end parameters + +begin molecule types + L(r,r) # L molecule has two binding sites for R + R(l) # R molecule has one binding site for L +end molecule types + +begin species + L(r,r) L0/2 # L0 represents # of sites as opposed to molecules + R(l) R0 +end species + +begin observables + Molecules FreeR R(l) + Molecules Bound L(r,r!1).R(l!1) + Species Dimers R(l!1).L(r!1,r!2).R(l!2) +end observables + +begin reaction rules +LBind: L(r,r) + R(l) <-> L(r,r!1).R(l!1) kp1/Vec, km1 +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), km1 +end reaction rules +end model + +#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}) + +#visualize({type=>"regulatory",background=>0,ruleNames=>1}) \ No newline at end of file diff --git a/Tutorials/NativeTutorials/LRR/README.md b/Tutorials/NativeTutorials/LRR/README.md new file mode 100644 index 00000000..5b9bc4fb --- /dev/null +++ b/Tutorials/NativeTutorials/LRR/README.md @@ -0,0 +1,21 @@ +# LRR + +title: LRR.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- LRR.bngl + +## Tags + +lrr, l, r diff --git a/Tutorials/NativeTutorials/LRR/metadata.yaml b/Tutorials/NativeTutorials/LRR/metadata.yaml new file mode 100644 index 00000000..a0f13b40 --- /dev/null +++ b/Tutorials/NativeTutorials/LRR/metadata.yaml @@ -0,0 +1,22 @@ +id: "LRR" +name: "LRR" +description: "title: LRR.bngl" +tags: ["lrr", "l", "r"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/CBNGL/LRR.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/NativeTutorials/LRRcomp/LRR_comp.bngl b/Tutorials/NativeTutorials/LRRcomp/LRR_comp.bngl new file mode 100644 index 00000000..937e5d11 --- /dev/null +++ b/Tutorials/NativeTutorials/LRRcomp/LRR_comp.bngl @@ -0,0 +1,58 @@ +## title: LRR_comp.bngl +## Compartmental version of ligand-receptor binding and dimerization model expressed in cell units: +# time - seconds +# concentration - molecule number +# length - um, area - um^2, volume - um^3 +# bimolecular association - um^3/s (3D), um^2/s (2D) +## author: Jim Faeder +## date: 05Mar2018 + +begin model +begin parameters + NaV 6.02e8 # Conversion constant: M -> #/um^3 + Vcell 1000 # Typical eukaryotic cell volume ~ 1000 um^3 + Vec 1000*Vcell # Volume of extracellular space around each cell (1/cell density) + d_pm 0.01 # Effective thickness of the plasma membrane (10 nm) + Acell 1000 # Approximate area of PM + Vpm Acell*d_pm # Effective volume of PM + lig_conc 1e-8 # Ligand concentration - molar + L0 lig_conc*NaV*Vec # number of ligand molecules + R0 10000 # number of receptor molecules per cell + + kp1 1e6/NaV # um^3/s: Forward binding rate constant for L-R + km1 0.01 # 1/s Reverse binding rate constant for L-R + chi 1.0 # Additional constraint factor for surface reaction. +end parameters + +begin compartments + EC 3 Vec + PM 2 Vpm EC + CP 3 Vcell PM # not used in this version of the model +end compartments + +begin molecule types + L(r,r) # L molecule has two binding sites for R + R(l) # R molecule has one binding site for L +end molecule types + +begin species + @EC:L(r,r) L0/2 # L0 represents # of sites as opposed to molecules + @PM:R(l) R0 +end species + +begin observables + Molecules FreeR R(l) + Molecules Bound L(r,r!1).R(l!1) + Species Dimers R(l!1).L(r!1,r!2).R(l!2) +end observables + +begin reaction rules +LBind: L(r,r) + R(l) <-> L(r,r!1).R(l!1) kp1, km1 +Dimer: R(l) + L(r,r!1).R(l!1) <-> R(l!2).L(r!2,r!1).R(l!1) chi*kp1, km1 +end reaction rules +end model + +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/LRRcomp/README.md b/Tutorials/NativeTutorials/LRRcomp/README.md new file mode 100644 index 00000000..73b2998e --- /dev/null +++ b/Tutorials/NativeTutorials/LRRcomp/README.md @@ -0,0 +1,21 @@ +# LRR comp + +title: LRR_comp.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- LRR_comp.bngl + +## Tags + +lrr, comp, l, r, simulate diff --git a/Tutorials/NativeTutorials/LRRcomp/metadata.yaml b/Tutorials/NativeTutorials/LRRcomp/metadata.yaml new file mode 100644 index 00000000..8d528a05 --- /dev/null +++ b/Tutorials/NativeTutorials/LRRcomp/metadata.yaml @@ -0,0 +1,22 @@ +id: "LRR_comp" +name: "LRR comp" +description: "title: LRR_comp.bngl" +tags: ["lrr", "comp", "l", "r", "simulate"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/CBNGL/LRR_comp.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/LRcomp/LR_comp.bngl b/Tutorials/NativeTutorials/LRcomp/LR_comp.bngl new file mode 100644 index 00000000..111fcc4c --- /dev/null +++ b/Tutorials/NativeTutorials/LRcomp/LR_comp.bngl @@ -0,0 +1,54 @@ +## title: LR_comp.bngl +## Compartmental version of simple ligand-receptor binding model expressed in cell units: +# time - seconds +# concentration - molecule number +# length - um, area - um^2, volume - um^3 +# bimolecular association - um^3/s (3D), um^2/s (2D) +## author: Jim Faeder +## date: 05Mar2018 + +begin model +begin parameters + NaV 6.02e8 # Conversion constant: M -> #/um^3 + Vcell 1000 # Typical eukaryotic cell volume ~ 1000 um^3 + Vec 1000*Vcell # Volume of extracellular space around each cell (1/cell density) + d_pm 0.01 # Effective thickness of the plasma membrane (10 nm) + Acell 1000 # Approximate area of PM + Vpm Acell*d_pm # Effective volume of PM + lig_conc 1e-8 # Ligand concentration - molar + L0 lig_conc*NaV*Vec # number of ligand molecules + R0 10000 # number of receptor molecules per cell + + kp1 1e6/NaV # Forward binding rate constant for L-R (um^3/s) + km1 0.01 # Reverse binding rate constant for L-R +end parameters + +begin compartments + EC 3 Vec + PM 2 Vpm EC + CP 3 Vcell PM # not used in this version of the model +end compartments + +begin molecule types + L(r) # L molecule has one binding site for R + R(l) # R molecule has one binding site for L +end molecule types + +# Each species must be assigned to a compartment +begin species + @EC:L(r) L0 + @PM:R(l) R0 +end species + +begin observables + Molecules FreeR R(l) + Molecules Bound L(r!1).R(l!1) + Molecules test @EC:L(r!+) # Testing if any bound ligands in EC +end observables + +begin reaction rules + L(r) + R(l) <-> L(r!1).R(l!1) kp1, km1 +end reaction rules +end model + +simulate({method=>"ode",t_end=>300,n_steps=>500}) diff --git a/Tutorials/NativeTutorials/LRcomp/README.md b/Tutorials/NativeTutorials/LRcomp/README.md new file mode 100644 index 00000000..4bdc778d --- /dev/null +++ b/Tutorials/NativeTutorials/LRcomp/README.md @@ -0,0 +1,21 @@ +# LR comp + +title: LR_comp.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- LR_comp.bngl + +## Tags + +lr, comp, l, r, simulate diff --git a/Tutorials/NativeTutorials/LRcomp/metadata.yaml b/Tutorials/NativeTutorials/LRcomp/metadata.yaml new file mode 100644 index 00000000..0722f893 --- /dev/null +++ b/Tutorials/NativeTutorials/LRcomp/metadata.yaml @@ -0,0 +1,22 @@ +id: "LR_comp" +name: "LR comp" +description: "title: LR_comp.bngl" +tags: ["lr", "comp", "l", "r", "simulate"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/CBNGL/LR_comp.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/LV/LV.bngl b/Tutorials/NativeTutorials/LV/LV.bngl new file mode 100644 index 00000000..25f22c7e --- /dev/null +++ b/Tutorials/NativeTutorials/LV/LV.bngl @@ -0,0 +1,35 @@ +## title: LV.bgl +## description: Lotka-Volterra predator-prey model. These parameters correspond to the +# reaction-limited regime, and give rise to regular oscillations when simulated +# both with ODE's and SSA. +## author: Jim Faeder +## date: 22April2015 + +begin parameters + Nav 6.02e8 + V 0.5*0.5*0.01 # volume in cubic microns + k1 1.29e5 # 1/s + k2 1e8 # 1/M 1/s + k3 1.3e5 # 1/s +end parameters + +begin species + S() 1000 + W() 500 +end species + +begin observables + Molecules Stot S() + Molecules Wtot W() +end observables + +begin reaction rules + S() -> S() + S() k1 + S() + W() -> W() + W() k2/(Nav*V) + W() -> 0 k3 +end reaction rules + +generate_network() +writeSBML() +simulate({method=>"ode",t_end=>0.001,n_steps=>1000}) +#simulate({method=>"ssa",t_end=>0.001,n_steps=>1000}) diff --git a/Tutorials/NativeTutorials/LV/README.md b/Tutorials/NativeTutorials/LV/README.md new file mode 100644 index 00000000..517992c3 --- /dev/null +++ b/Tutorials/NativeTutorials/LV/README.md @@ -0,0 +1,21 @@ +# LV + +title: LV.bgl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode, ssa +- Imported from: tutorial + +## Files + +- LV.bngl + +## Tags + +lv, s, w, generate_network, writesbml, simulate diff --git a/Tutorials/NativeTutorials/LV/metadata.yaml b/Tutorials/NativeTutorials/LV/metadata.yaml new file mode 100644 index 00000000..5587cd56 --- /dev/null +++ b/Tutorials/NativeTutorials/LV/metadata.yaml @@ -0,0 +1,22 @@ +id: "LV" +name: "LV" +description: "title: LV.bgl" +tags: ["lv", "s", "w", "generate_network", "writesbml", "simulate"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode", "ssa"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/ABC/LV.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/LVcomp/LV_comp.bngl b/Tutorials/NativeTutorials/LVcomp/LV_comp.bngl new file mode 100644 index 00000000..3a3704fb --- /dev/null +++ b/Tutorials/NativeTutorials/LVcomp/LV_comp.bngl @@ -0,0 +1,42 @@ +## title: LV_comp.bgl +## description: Compartment version fo the Lotka-Volterra predator-prey model. These +# parameters correspond to the +# reaction-limited regime, and give rise to regular oscillations when simulated +# both with ODE's and SSA. +## author: Jim Faeder +## date: 22April2015 +begin model + +begin parameters + NA_um3 6.02e8 + V 0.5*0.5*0.01 # volume in cubic microns + k1 1.29e5 # 1/s + k2 (1e8)/NA_um3 # 1/M -> um^3/s + k3 1.3e5 # 1/s +end parameters +begin compartments + cell 3 V +end compartments + +begin species + S()@cell 1000 + W()@cell 500 +end species + +begin observables + Molecules Stot S() + Molecules Wtot W() +end observables + +begin reaction rules + S() -> S() + S() k1 + S() + W() -> W() + W() k2 + W() -> 0 k3 +end reaction rules + +end model + +#generate_network() +#writeSBML() +#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/Tutorials/NativeTutorials/LVcomp/README.md b/Tutorials/NativeTutorials/LVcomp/README.md new file mode 100644 index 00000000..8186197d --- /dev/null +++ b/Tutorials/NativeTutorials/LVcomp/README.md @@ -0,0 +1,21 @@ +# LV comp + +title: LV_comp.bgl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode, ssa +- Imported from: tutorial + +## Files + +- LV_comp.bngl + +## Tags + +lv, comp, k2, s, w diff --git a/Tutorials/NativeTutorials/LVcomp/metadata.yaml b/Tutorials/NativeTutorials/LVcomp/metadata.yaml new file mode 100644 index 00000000..1c4df775 --- /dev/null +++ b/Tutorials/NativeTutorials/LVcomp/metadata.yaml @@ -0,0 +1,22 @@ +id: "LV_comp" +name: "LV comp" +description: "title: LV_comp.bgl" +tags: ["lv", "comp", "k2", "s", "w"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode", "ssa"] + uses_compartments: true + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/CBNGL/LV_comp.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/NativeTutorials/Lisman/Lisman.bngl b/Tutorials/NativeTutorials/Lisman/Lisman.bngl new file mode 100644 index 00000000..e7f45a9f --- /dev/null +++ b/Tutorials/NativeTutorials/Lisman/Lisman.bngl @@ -0,0 +1,45 @@ +## title: auto.bngl +## description: Autophosphorylating kinase model due to Lisman. +## reference: Lisman, J E. “A Mechanism for Memory Storage Insensitive to Molecular +# Turnover: A Bistable Autophosphorylating Kinase.” Proceedings of the +# PNAS 82, no. 9 (May 1985): 3055–57. +## author: Jim Faeder +## date: 27Feb2018 +## note: For a 20s pulse the threshold for permanent activation is between 0.013 and 0.015. +begin model +begin parameters + S 0.01 +end parameters + +begin molecule types + K1(Y~0~P) + P(b) +end molecule types + +begin seed species + K1(Y~0) 100 + P(b) 10 +end seed species + +begin observables + Molecules K1p K1(Y~P) +end observables +begin functions + Input() S*1e4 +end functions +begin reaction rules +R1: K1(Y~0) -> K1(Y~P) S +R2: K1(Y~0) + K1(Y~P) -> K1(Y~P) + K1(Y~P) 0.01 +R3: K1(Y~P) + P(b) <-> K1(Y~P!1).P(b!1) 0.4, 1 +R4: K1(Y~P!1).P(b!1) -> K1(Y~0) + P(b) 1 +end reaction rules +end model + +visualize({type=>"regulatory",background=>1}) + +setParameter("S",0) +simulate({method=>"ode", t_end=>50, n_steps=>200, print_functions=>1}) +setParameter("S",0.015) +simulate({method=>"ode", continue=>1, t_end=>70, n_steps=>200, print_functions=>1}) +setParameter("S",0) +simulate({method=>"ode", continue=>1, t_end=>200, n_steps=>200, print_functions=>1}) diff --git a/Tutorials/NativeTutorials/Lisman/README.md b/Tutorials/NativeTutorials/Lisman/README.md new file mode 100644 index 00000000..e0fef161 --- /dev/null +++ b/Tutorials/NativeTutorials/Lisman/README.md @@ -0,0 +1,21 @@ +# Lisman + +title: auto.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- Lisman.bngl + +## Tags + +lisman, k1, p, input, visualize, setparameter, simulate diff --git a/Tutorials/NativeTutorials/Lisman/metadata.yaml b/Tutorials/NativeTutorials/Lisman/metadata.yaml new file mode 100644 index 00000000..54012a39 --- /dev/null +++ b/Tutorials/NativeTutorials/Lisman/metadata.yaml @@ -0,0 +1,22 @@ +id: "Lisman" +name: "Lisman" +description: "title: auto.bngl" +tags: ["lisman", "k1", "p", "input", "visualize", "setparameter", "simulate"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/ABp/Lisman.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/Lismanbifurcate/Lisman_bifurcate.bngl b/Tutorials/NativeTutorials/Lismanbifurcate/Lisman_bifurcate.bngl new file mode 100644 index 00000000..e8cfd94c --- /dev/null +++ b/Tutorials/NativeTutorials/Lismanbifurcate/Lisman_bifurcate.bngl @@ -0,0 +1,37 @@ +## title: Lisman_bifurcate.bngl +## description: Autophosphorylating kinase model due to Lisman. +## reference: Lisman, J E. “A Mechanism for Memory Storage Insensitive to Molecular +# Turnover: A Bistable Autophosphorylating Kinase.” Proceedings of the +# PNAS 82, no. 9 (May 1985): 3055–57. +## author: Jim Faeder +## date: 27Feb2018 + +begin model +begin parameters + S 0.01 +end parameters + +begin molecule types + K1(Y~0~P) + P(b) +end molecule types + +begin seed species + K1(Y~0) 100 + P(b) 10 +end seed species + +begin observables + Molecules K1p K1(Y~P) +end observables + +begin reaction rules +R1: K1(Y~0) -> K1(Y~P) S +R2: K1(Y~0) + K1(Y~P) -> K1(Y~P) + K1(Y~P) 0.01 +R3: K1(Y~P) + P(b) <-> K1(Y~P!1).P(b!1) 0.4, 1 +R4: K1(Y~P!1).P(b!1) -> K1(Y~0) + P(b) 1 +end reaction rules +end model + +bifurcate({method=>"ode",parameter=>"S",par_min=>1e-5,par_max=>1e-1,\ + n_scan_pts=>100,log_scale=>1,t_end=>1000,n_steps=>2}) diff --git a/Tutorials/NativeTutorials/Lismanbifurcate/README.md b/Tutorials/NativeTutorials/Lismanbifurcate/README.md new file mode 100644 index 00000000..50ff11bc --- /dev/null +++ b/Tutorials/NativeTutorials/Lismanbifurcate/README.md @@ -0,0 +1,21 @@ +# Lisman bifurcate + +title: Lisman_bifurcate.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- Lisman_bifurcate.bngl + +## Tags + +lisman, bifurcate, k1, p diff --git a/Tutorials/NativeTutorials/Lismanbifurcate/metadata.yaml b/Tutorials/NativeTutorials/Lismanbifurcate/metadata.yaml new file mode 100644 index 00000000..5fb18986 --- /dev/null +++ b/Tutorials/NativeTutorials/Lismanbifurcate/metadata.yaml @@ -0,0 +1,22 @@ +id: "Lisman_bifurcate" +name: "Lisman bifurcate" +description: "title: Lisman_bifurcate.bngl" +tags: ["lisman", "bifurcate", "k1", "p"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/ABp/Lisman_bifurcate.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/NativeTutorials/Repressilator/README.md b/Tutorials/NativeTutorials/Repressilator/README.md new file mode 100644 index 00000000..e3522321 --- /dev/null +++ b/Tutorials/NativeTutorials/Repressilator/README.md @@ -0,0 +1,21 @@ +# Repressilator + +Repressilator circuit + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- Repressilator.bngl + +## Tags + +published, tutorial, native, repressilator, gtetr, gci, glaci, mtetr, mci, mlaci, ptetr, pci diff --git a/Tutorials/NativeTutorials/Repressilator/Repressilator.bngl b/Tutorials/NativeTutorials/Repressilator/Repressilator.bngl new file mode 100644 index 00000000..b3f23b89 --- /dev/null +++ b/Tutorials/NativeTutorials/Repressilator/Repressilator.bngl @@ -0,0 +1,82 @@ +# BioNetGen implementation of the full repressilator model presented in +# Table 2 of Harris et al., Phys. Rev. E, 79, 051906 (doi:10.1103/PhysRevE.79.051906). +# Source: Models2 folder of the BioNetGen distribution + +begin model +begin parameters + Na 6.022e23 # Avogadro's [mol^-1] + V 1.4e-15 # Cell volume [L] + # + c0 1e9 # M^-1 s^-1 + c1 224 # s^-1 + c2 9 # s^-1 + c3 0.5 # s^-1 + c4 5e-4 # s^-1 + c5 0.167 # s^-1 + c6 ln(2)/120 # s^-1 + c7 ln(2)/600 # s^-1 + # + tF 1e-4 # telegraph factor + rF 1000 # rna factor + pF 1000 # protein factor +end parameters + +begin molecule types + gTetR(lac,lac) + gCI(tet,tet) + gLacI(cI,cI) + mTetR() + mCI() + mLacI() + pTetR(cI) + pCI(lac) + pLacI(tet) +end molecule types + +begin seed species + gTetR(lac!1,lac!2).pLacI(tet!1).pLacI(tet!2) 1 + gCI(tet!1,tet!2).pTetR(cI!1).pTetR(cI!2) 1 + gLacI(cI!1,cI!2).pCI(lac!1).pCI(lac!2) 1 + mTetR() 3163 + mCI() 6819 + mLacI() 129 + pTetR(cI) 183453 + pCI(lac) 2006198 + pLacI(tet) 165670 +end seed species + +begin observables + Molecules pTetR pTetR(cI) + Molecules pCI pCI(lac) + Molecules pLacI pLacI(tet) +end observables + +begin reaction rules + gTetR(lac,lac) + pLacI(tet) <-> gTetR(lac!1,lac).pLacI(tet!1) c0/Na/V*tF/pF, c1*tF + gTetR(lac!+,lac) + pLacI(tet) <-> gTetR(lac!+,lac!1).pLacI(tet!1) c0/Na/V*tF/pF, c2*tF + gTetR(lac,lac) -> gTetR(lac,lac) + mTetR() c3*rF + gTetR(lac!+) -> gTetR(lac!+) + mTetR() c4*rF + mTetR() -> mTetR() + pTetR(cI) c5/rF*pF + mTetR() -> 0 c6 + pTetR(cI) -> 0 c7 + # + gCI(tet,tet) + pTetR(cI) <-> gCI(tet!1,tet).pTetR(cI!1) c0/Na/V*tF/pF, c1*tF + gCI(tet!+,tet) + pTetR(cI) <-> gCI(tet!+,tet!1).pTetR(cI!1) c0/Na/V*tF/pF, c2*tF + gCI(tet,tet) -> gCI(tet,tet) + mCI() c3*rF + gCI(tet!+) -> gCI(tet!+) + mCI() c4*rF + mCI() -> mCI() + pCI(lac) c5/rF*pF + mCI() -> 0 c6 + pCI(lac) -> 0 c7 + # + gLacI(cI,cI) + pCI(lac) <-> gLacI(cI!1,cI).pCI(lac!1) c0/Na/V*tF/pF, c1*tF + gLacI(cI!+,cI) + pCI(lac) <-> gLacI(cI!+,cI!1).pCI(lac!1) c0/Na/V*tF/pF, c2*tF + gLacI(cI,cI) -> gLacI(cI,cI) + mLacI() c3*rF + gLacI(cI!+) -> gLacI(cI!+) + mLacI() c4*rF + mLacI() -> mLacI() + pLacI(tet) c5/rF*pF + mLacI() -> 0 c6 + pLacI(tet) -> 0 c7 +end reaction rules +end model + +simulate({method=>"ode",t_end=>4e4,n_steps=>4e2,verbose=>1,atol=>1e-12,rtol=>1e-12}) +#simulate({method=>"pla",t_end=>4e4,n_steps=>4e2,verbose=>1,pla_config=>"fEuler|pre-eps:sb|eps=0.03"}) diff --git a/Tutorials/NativeTutorials/Repressilator/metadata.yaml b/Tutorials/NativeTutorials/Repressilator/metadata.yaml new file mode 100644 index 00000000..7bf2d1af --- /dev/null +++ b/Tutorials/NativeTutorials/Repressilator/metadata.yaml @@ -0,0 +1,22 @@ +id: "Repressilator" +name: "Repressilator" +description: "Repressilator circuit" +tags: ["published", "tutorial", "native", "repressilator", "gtetr", "gci", "glaci", "mtetr", "mci", "mlaci", "ptetr", "pci"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/SynDeg/Repressilator.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/SIR/README.md b/Tutorials/NativeTutorials/SIR/README.md new file mode 100644 index 00000000..daad40a6 --- /dev/null +++ b/Tutorials/NativeTutorials/SIR/README.md @@ -0,0 +1,21 @@ +# SIR + +BioNetGen model: SIR + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode, ssa +- Imported from: tutorial + +## Files + +- SIR.bngl + +## Tags + +sir, saveconcentrations, simulate diff --git a/Tutorials/NativeTutorials/SIR/SIR.bngl b/Tutorials/NativeTutorials/SIR/SIR.bngl new file mode 100644 index 00000000..043c6325 --- /dev/null +++ b/Tutorials/NativeTutorials/SIR/SIR.bngl @@ -0,0 +1,30 @@ +begin model +begin parameters + N 100 + I0 1 + b 1.8/N + g 1 +end parameters + +begin species + S N-I0 + I I0 + R 0 +end species + +begin observables + Molecules S S() + Molecules I I() + Molecules R R() +end observables + +begin reaction rules + S + I -> I + I b + I -> R g +end reaction rules +end model + +saveConcentrations() +simulate({method=>"ode",suffix=>"ode",t_end=>300,n_steps=>200}) +# resetConcentrations() +# simulate({method=>"ssa",suffix=>"ssa",t_end=>300,n_steps=>200}) diff --git a/Tutorials/NativeTutorials/SIR/metadata.yaml b/Tutorials/NativeTutorials/SIR/metadata.yaml new file mode 100644 index 00000000..2ddb9017 --- /dev/null +++ b/Tutorials/NativeTutorials/SIR/metadata.yaml @@ -0,0 +1,22 @@ +id: "SIR" +name: "SIR" +description: "BioNetGen model: SIR" +tags: ["sir", "saveconcentrations", "simulate"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode", "ssa"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/ABC/SIR.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/Suderman2013/README.md b/Tutorials/NativeTutorials/Suderman2013/README.md new file mode 100644 index 00000000..b66128f3 --- /dev/null +++ b/Tutorials/NativeTutorials/Suderman2013/README.md @@ -0,0 +1,21 @@ +# Suderman 2013 + +Ensemble model translated into BNGL + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- Suderman_2013.bngl + +## Tags + +suderman, 2013, i, trash, pheromone, ste2, gpa1, ste4, sst2, ste20 diff --git a/Tutorials/NativeTutorials/Suderman2013/Suderman_2013.bngl b/Tutorials/NativeTutorials/Suderman2013/Suderman_2013.bngl new file mode 100644 index 00000000..055f4c90 --- /dev/null +++ b/Tutorials/NativeTutorials/Suderman2013/Suderman_2013.bngl @@ -0,0 +1,387 @@ +# Ensemble model translated into BNGL + +begin molecule types + I() + Trash() + Pheromone(ste2) + Ste2(pheromone,gpa1,sst2) + Gpa1(ste2,ste4,nuc~GDP~GTP) + Ste4(ste5,gpa1,state~reg~synth,ste20) + Sst2(ste2,mapk,S539~u~p) + Ste20(ste4) + Ste5(ste11,ste7,ste4,mapk,ste5,loc~n~c,T287~u~p) + Ste11(mapk,ste5,degradation~u~p,S302_S306_S307~u~p~pp~ppp) + Ste7(ste5,mapk,S359_T363~u~p~pp) + Fus3(dock,T180~u~p,Y182~u~p) + Kss1(dock,T183~u~p,Y185~u~p) + Msg5(mapk) + Ptp(mapk) + Ste12(mapk,dna,dig1,dig2) + Dig1(ste12,mapk,activation~u~p) + Dig2(ste12,mapk,activation~u~p) + Ste2_gene(promoter) + Gpa1_gene(promoter) + Dig2_gene(promoter) + Ste4_gene(promoter) + Sst2_gene(promoter) + Fus3_gene(promoter) + Ste12_gene(promoter) + Msg5_gene(promoter) + Mekkp(ste11) + Mekp(ste7) +end molecule types + +begin seed species + I() 1 + Trash() 1 + Pheromone(ste2) 0 + Ste12_gene(promoter) 1 + Dig2_gene(promoter) 1 + Ste12(dig1!1,dig2,mapk,dna).Dig1(mapk,ste12!1,activation~u) 1390 + Dig2(mapk,ste12,activation~u) 1184 + Dig1(mapk,ste12,activation~u) 3409 + Msg5_gene(promoter) 1 + Fus3_gene(promoter) 1 + Sst2_gene(promoter) 1 + Gpa1_gene(promoter) 1 + Ste4_gene(promoter) 1 + Ste2_gene(promoter) 1 + Gpa1(ste4!1,ste2,nuc~GDP).Ste4(ste5,gpa1!1,ste20,state~reg) 10000 + Gpa1(ste4,ste2,nuc~GDP) 5000 + Sst2(mapk,ste2,S539~u) 2500 + Ste2(gpa1,sst2,pheromone) 10000 + Ste20(ste4) 4200 + Fus3(T180~u,Y182~u,dock) 20400 + Kss1(Y185~u,T183~u,dock) 20800 + Msg5(mapk) 38 + Ptp(mapk) 1270 + Ste7(ste5,mapk,S359_T363~u) 960 + Ste11(ste5,S302_S306_S307~u,mapk,degradation~u) 3500 + Ste5(ste5,ste7,ste4,mapk,ste11,loc~n,T287~u) 1680 + Mekkp(ste11) 1750 + Mekp(ste7) 1750 +end seed species + +begin observables + Molecules G_act Ste4(gpa1) + Molecules Gpa1_free Gpa1(ste4) + Molecules Fus3tot Fus3() + Molecules Fus3PP Fus3(T180~p,Y182~p) + Molecules membrane_Ste5 Ste5(ste4!1).Ste4(ste5!1) + Molecules bound_G_protein Gpa1(ste4!1).Ste4(gpa1!1) + Molecules total_Gpa1 Gpa1() + Molecules total_Ste4 Ste4() + Molecules unbound_Ste4 Ste4(gpa1) + Molecules ste20_bound_ste4 Ste4(ste20!1).Ste20(ste4!1) + Molecules active_Ste12 Ste12(dig1,dig2,mapk) + Molecules total_Ste12 Ste12() + Molecules activated_Ste7 Ste7(S359_T363~pp) + Molecules total_Ste7 Ste7() + Molecules active_Ste11 Ste11(S302_S306_S307~ppp) + Molecules Ste11_pp Ste11(S302_S306_S307~pp) + Molecules Ste11_p Ste11(S302_S306_S307~p) + Molecules Msg5 Msg5() + Molecules active_Ste2 Ste2(pheromone!1).Pheromone(ste2!1) + Molecules total_Ste2 Ste2() + Molecules Kss1tot Kss1() + Molecules Kss1PP Kss1(T183~p,Y185~p) + Molecules synthesized_Ste4 Ste4(state~synth) + Molecules Ste12_bound_to_Ste4_gene Ste12(dna!1).Ste4_gene(promoter!1) + Molecules total_Pheromone Pheromone() + Molecules nuclear_Ste5 Ste5(loc~n,ste11,ste7,ste4,mapk,ste5) + Molecules cyto__free_ste5 Ste5(loc~c,ste11,ste7,ste4,mapk,ste5) + Molecules ste5_ste11 Ste5(ste11!1).Ste11(ste5!1) + Molecules ste5_ste7 Ste5(ste7!1).Ste7(ste5!1) + Molecules ste5_mapk Ste5(mapk!+) + Molecules ste5_dimerized Ste5(ste5!1).Ste5(ste5!1) + Molecules ste5_phosph Ste5(T287~p) +end observables + +begin functions + Func0()=Gpa1_free / bound_G_protein + Func1()=0.3 * ( Gpa1_free / ( Gpa1_free + 2500)) +end functions + +begin reaction rules + Pheromone(ste2) + Ste2(pheromone) -> Pheromone(ste2!1).Ste2(pheromone!1) + Pheromone(ste2) 3e-05 + Ste2(pheromone!1).Pheromone(ste2!1) -> Ste2(pheromone) 0.015 DeleteMolecules + Ste2(gpa1) + Gpa1(ste2) -> Ste2(gpa1!1).Gpa1(ste2!1) 0.001725 + Ste2(gpa1!1).Gpa1(ste2!1) -> Ste2(gpa1) + Gpa1(ste2) 0 + Ste2(gpa1!1).Gpa1(ste2!1,ste4) -> Ste2(gpa1) + Gpa1(ste2,ste4) 0.15 + Ste2(gpa1!1).Gpa1(ste2!1,ste4!2).Ste4(gpa1!2) -> Ste2(gpa1) + Gpa1(ste2,ste4!2).Ste4(gpa1!2) 0.03 + Gpa1(ste4) + Ste4(gpa1,ste5,ste20,state~reg) -> Gpa1(ste4!1).Ste4(gpa1!1,ste5,ste20,state~reg) 0.001725 + Gpa1(ste4) + Ste4(gpa1,ste5,ste20,state~synth) -> Gpa1(ste4!1).Ste4(gpa1!1,ste5,ste20,state~synth) 8.595e-08 + Gpa1(ste4!1).Ste4(gpa1!1) -> Gpa1(ste4) + Ste4(gpa1) 0 + Ste4(gpa1!1).Gpa1(ste4!1,ste2,nuc~GTP) -> Ste4(gpa1) + Gpa1(ste4,ste2,nuc~GTP) 7.5 + Ste4(gpa1!1).Gpa1(ste4!1,ste2!+,nuc~GTP) -> Ste4(gpa1) + Gpa1(ste4,ste2!+,nuc~GTP) 1.5 + Gpa1(nuc~GDP) -> Gpa1(nuc~GTP) 0 + Pheromone(ste2!1).Ste2(pheromone!1,gpa1!2).Gpa1(nuc~GDP,ste2!2) -> Pheromone(ste2!1).Ste2(pheromone!1,gpa1!2).Gpa1(nuc~GTP,ste2!2) 0.15 + Ste2(sst2) + Sst2(ste2) -> Ste2(sst2!1).Sst2(ste2!1) 0.0008595 + Ste2(sst2!1).Sst2(ste2!1) -> Ste2(sst2) + Sst2(ste2) 0.15 + Gpa1(nuc~GTP) -> Gpa1(nuc~GDP) 0 + Gpa1(nuc~GTP,ste2) -> Gpa1(nuc~GDP,ste2) 0.015 + Gpa1(nuc~GTP,ste2!2).Ste2(gpa1!2,sst2) -> Gpa1(nuc~GDP,ste2!2).Ste2(gpa1!2,sst2) 0.015 + Gpa1(nuc~GTP,ste2!2).Ste2(gpa1!2,sst2!1).Sst2(ste2!1,S539~p) -> Gpa1(nuc~GDP,ste2!2).Ste2(gpa1!2,sst2!1).Sst2(ste2!1,S539~p) 1.5 + Gpa1(nuc~GTP,ste2!2).Ste2(gpa1!2,sst2!1).Sst2(ste2!1,S539~u) -> Gpa1(nuc~GDP,ste2!2).Ste2(gpa1!2,sst2!1).Sst2(ste2!1,S539~u) 1.5 + Fus3(dock) + Sst2(S539,mapk) -> Fus3(dock!1).Sst2(S539,mapk!1) 8.595e-05 + Fus3(dock!1).Sst2(S539,mapk!1) -> Fus3(dock) + Sst2(S539,mapk) 0 + Fus3(dock!1,T180~u,Y182~u).Sst2(S539,mapk!1) -> Fus3(dock,T180~u,Y182~u) + Sst2(S539,mapk) 1.5 + Fus3(dock!1,T180~p,Y182~u).Sst2(S539,mapk!1) -> Fus3(dock,T180~p,Y182~u) + Sst2(S539,mapk) 0.75 + Fus3(dock!1,T180~u,Y182~p).Sst2(S539,mapk!1) -> Fus3(dock,T180~u,Y182~p) + Sst2(S539,mapk) 0.75 + Fus3(dock!1,T180~p,Y182~p).Sst2(S539,mapk!1) -> Fus3(dock,T180~p,Y182~p) + Sst2(S539,mapk) 0.375 + Sst2(mapk!1,S539~u).Fus3(dock!1) -> Sst2(mapk,S539~p) + Fus3(dock) 0 + Sst2(mapk!1,S539~u).Fus3(dock!1,T180~p,Y182~p) -> Sst2(mapk,S539~p) + Fus3(dock,T180~p,Y182~p) 1.5 + Kss1(dock) + Sst2(S539,mapk) -> Kss1(dock!1).Sst2(S539,mapk!1) 8.595e-05 + Kss1(dock!1).Sst2(S539,mapk!1) -> Kss1(dock) + Sst2(S539,mapk) 0 + Kss1(dock!1,T183~u,Y185~u).Sst2(S539,mapk!1) -> Kss1(dock,T183~u,Y185~u) + Sst2(S539,mapk) 1.5 + Kss1(dock!1,T183~p,Y185~u).Sst2(S539,mapk!1) -> Kss1(dock,T183~p,Y185~u) + Sst2(S539,mapk) 0.75 + Kss1(dock!1,T183~u,Y185~p).Sst2(S539,mapk!1) -> Kss1(dock,T183~u,Y185~p) + Sst2(S539,mapk) 0.75 + Kss1(dock!1,T183~p,Y185~p).Sst2(S539,mapk!1) -> Kss1(dock,T183~p,Y185~p) + Sst2(S539,mapk) 0.375 + Sst2(mapk!1,S539~u).Kss1(dock!1) -> Sst2(mapk,S539~p) + Kss1(dock) 0 + Sst2(mapk!1,S539~u).Kss1(dock!1,T183~p,Y185~p) -> Sst2(mapk,S539~p) + Kss1(dock,T183~p,Y185~p) 1.5 + Sst2(S539~p) -> Sst2(S539~u) 0.00087 + Ste2(pheromone) -> Trash() 0.000435 DeleteMolecules + Pheromone(ste2!1).Ste2(pheromone!1) -> Trash() 0.00295 DeleteMolecules + Ste12(dna) + Ste2_gene(promoter) -> Ste12(dna!1).Ste2_gene(promoter!1) 2.145e-05 + Ste12(dna!1).Ste2_gene(promoter!1) -> Ste12(dna) + Ste2_gene(promoter) 0.03 + I() -> I() + Ste2(gpa1,pheromone,sst2) 2.865 + Ste12(dig1,dig2,mapk,dna!1).Ste2_gene(promoter!1) -> Ste12(dig1,dig2,mapk,dna!1).Ste2_gene(promoter!1) + Ste2(gpa1,pheromone,sst2) 12 + Gpa1(ste4) -> Trash() 4.95e-05 DeleteMolecules + Ste4(gpa1) -> Trash() 4.95e-05 DeleteMolecules + Ste4(gpa1!1).Gpa1(ste4!1) -> Trash() 3.3e-5 DeleteMolecules + Ste12(dna) + Gpa1_gene(promoter) -> Ste12(dna!1).Gpa1_gene(promoter!1) 2.145e-03 + Ste12(dna!1).Gpa1_gene(promoter!1) -> Ste12(dna) + Gpa1_gene(promoter) 0.03 + Ste12(dig1,dig2,mapk,dna!1).Gpa1_gene(promoter!1) -> Ste12(dig1,dig2,mapk,dna!1).Gpa1_gene(promoter!1) + Gpa1(ste2,ste4,nuc~GDP) 27 + Ste12(dna) + Ste4_gene(promoter) -> Ste12(dna!1).Ste4_gene(promoter!1) 0.0002145 + Ste12(dna!1).Ste4_gene(promoter!1) -> Ste12(dna) + Ste4_gene(promoter) 0.03 + I() -> I() + Ste4(gpa1!1,ste5,ste20,state~reg).Gpa1(ste4!1,ste2,nuc~GDP) 0.495 + Ste12(dna!1,dig1,dig2,mapk).Ste4_gene(promoter!1) -> Ste12(dna!1,dig1,dig2,mapk).Ste4_gene(promoter!1) + Ste4(gpa1,ste5,ste20,state~synth) 18 + Sst2() -> Trash() 0 DeleteMolecules + Sst2(S539~u) -> Trash() 0.00039 DeleteMolecules + Sst2(S539~p) -> Trash() 0.000585 DeleteMolecules + Ste12(dna) + Sst2_gene(promoter) -> Ste12(dna!1).Sst2_gene(promoter!1) 2.145e-05 + Ste12(dna!1).Sst2_gene(promoter!1) -> Ste12(dna) + Sst2_gene(promoter) 0.03 + I() -> I() + Sst2(ste2,mapk,S539~u) 0.78 + Ste12(dig1,dig2,mapk,dna!1).Sst2_gene(promoter!1) -> Ste12(dig1,dig2,mapk,dna!1).Sst2_gene(promoter!1) + Sst2(ste2,mapk,S539~u) 1.5 + Ste20(ste4) + Ste4(gpa1,ste20) -> Ste20(ste4!1).Ste4(gpa1,ste20!1) 8.595e-05 + Ste20(ste4!1).Ste4(gpa1,ste20!1) -> Ste20(ste4) + Ste4(gpa1,ste20) 0.8 + Ste5(ste4,loc~c) + Ste4(ste5,gpa1) -> Ste5(ste4!1,loc~c).Ste4(ste5!1,gpa1) 0 + Ste5(ste4,ste5!1,loc~c).Ste4(ste5!2).Ste5(ste5!1,ste4!2,loc~c) + Ste4(ste5,gpa1) -> Ste5(ste4!3,ste5!1,loc~c).Ste4(ste5!2).Ste4(ste5!3,gpa1).Ste5(ste5!1,ste4!2,loc~c) 0.001725 + Ste5(ste5!1,ste4,loc~c).Ste5(ste5!1,ste4,loc~c) + Ste4(ste5,gpa1) -> Ste5(ste5!1,ste4!3,loc~c).Ste5(ste5!1,ste4,loc~c).Ste4(ste5!3,gpa1) 8.595e-05 + Ste5(ste5,ste4,loc~c) + Ste4(gpa1,ste5) -> Ste5(ste5,ste4!3,loc~c).Ste4(gpa1,ste5!3) 8.595e-05 + Ste5(ste4!1).Ste4(ste5!1) -> Ste5(ste4) + Ste4(ste5) 0 + Ste4(ste5!1).Ste5(ste4!1,ste5) -> Ste4(ste5) + Ste5(ste4,ste5) 0.2 + Ste4(ste5!1).Ste5(ste4!1,ste5!2).Ste5(ste5!2) -> Ste4(ste5) + Ste5(ste4,ste5!2).Ste5(ste5!2) 0.02 + Ste5(ste5,loc~c) + Ste5(ste5,loc~c) -> Ste5(ste5!1,loc~c).Ste5(ste5!1,loc~c) 0 + Ste5(ste5,ste4,loc~c) + Ste5(ste5,ste4,loc~c) -> Ste5(ste5!3,ste4,loc~c).Ste5(ste5!3,ste4,loc~c) 8.595e-05 + Ste5(ste5,ste4!1,loc~c).Ste4(ste5!1) + Ste5(ste5,ste4,loc~c) -> Ste5(ste5!1,ste4!2,loc~c).Ste5(ste5!1,ste4,loc~c).Ste4(ste5!2) 8.595e-05 + Ste4(ste5!2).Ste5(ste5,ste4!2,loc~c) + Ste5(ste5,ste4!1,loc~c).Ste4(ste5!1) -> Ste4(ste5!3).Ste5(ste5!1,ste4!3,loc~c).Ste5(ste5!1,ste4!2,loc~c).Ste4(ste5!2) 0.001725 + Ste5(ste5!1).Ste5(ste5!1) -> Ste5(ste5) + Ste5(ste5) 0 + Ste5(ste5!1,ste4).Ste5(ste5!1,ste4) -> Ste5(ste5,ste4) + Ste5(ste5,ste4) 0.075 + Ste5(ste4!2,ste5!1).Ste5(ste5!1,ste4).Ste4(ste5!2) -> Ste5(ste4!2,ste5).Ste4(ste5!2) + Ste5(ste5,ste4) 0.0075 + Ste5(ste4!3,ste5!1).Ste5(ste5!1,ste4!2).Ste4(ste5!3).Ste4(ste5!2) -> Ste5(ste4!3,ste5).Ste4(ste5!3) + Ste5(ste5,ste4!2).Ste4(ste5!2) 0.0005 # activated rule + Ste5(ste11,loc~c) + Ste11(ste5) -> Ste5(ste11!1,loc~c).Ste11(ste5!1) 8.595e-05 + Ste5(ste11!1).Ste11(ste5!1) -> Ste5(ste11) + Ste11(ste5) 0.1605 + Ste4(ste20!1,ste5!2).Ste20(ste4!1).Ste11(ste5!3,S302_S306_S307~u).Ste5(ste4!2,ste11!3) -> Ste4(ste20!1,ste5!2).Ste20(ste4!1).Ste11(ste5!3,S302_S306_S307~p).Ste5(ste4!2,ste11!3) 0.495 + Ste20(ste4!1).Ste4(ste20!1,ste5!2).Ste11(ste5!3,S302_S306_S307~p).Ste5(ste4!2,ste11!3) -> Ste20(ste4!1).Ste4(ste20!1,ste5!2).Ste11(ste5!3,S302_S306_S307~pp).Ste5(ste4!2,ste11!3) 0.495 + Ste20(ste4!1).Ste4(ste20!1,ste5!2).Ste11(ste5!3,S302_S306_S307~pp).Ste5(ste4!2,ste11!3) -> Ste20(ste4!1).Ste4(ste20!1,ste5!2).Ste11(ste5!3,S302_S306_S307~ppp).Ste5(ste4!2,ste11!3) 0.495 + Ste5(ste7,loc~c,T287~u) + Ste7(ste5) -> Ste5(ste7!1,loc~c,T287~u).Ste7(ste5!1) 8.595e-05 + Ste5(ste7,loc~c,T287~p) + Ste7(ste5) -> Ste5(ste7!1,loc~c,T287~p).Ste7(ste5!1) 8.595e-07 + Ste5(ste7!1).Ste7(ste5!1) -> Ste5(ste7) + Ste7(ste5) 0.153 + Ste5(ste11!3,ste5!2).Ste11(ste5!3).Ste5(ste5!2,ste7!1).Ste7(S359_T363~u,ste5!1) -> Ste5(ste11!3,ste5!2).Ste11(ste5!3).Ste5(ste5!2,ste7!1).Ste7(S359_T363~p,ste5!1) 0 + Ste7(S359_T363~u,ste5!1).Ste5(ste11!3,ste5!2,ste4!4).Ste5(ste5!2,ste7!1,ste4).Ste11(ste5!3,S302_S306_S307~pp).Ste4(ste5!4) -> Ste7(S359_T363~p,ste5!1).Ste5(ste11!3,ste5!2,ste4!4).Ste5(ste5!2,ste7!1,ste4).Ste11(ste5!3,S302_S306_S307~pp).Ste4(ste5!4) 0.495 + Ste7(S359_T363~u,ste5!1).Ste5(ste11!3,ste5!2,ste4).Ste5(ste5!2,ste7!1,ste4!4).Ste11(ste5!3,S302_S306_S307~pp).Ste4(ste5!4) -> Ste7(S359_T363~p,ste5!1).Ste5(ste11!3,ste5!2,ste4).Ste5(ste5!2,ste7!1,ste4!4).Ste11(ste5!3,S302_S306_S307~pp).Ste4(ste5!4) 0.495 + Ste7(S359_T363~u,ste5!1).Ste5(ste11!3,ste5!2,ste4!5).Ste5(ste5!2,ste7!1,ste4!4).Ste11(ste5!3,S302_S306_S307~pp).Ste4(ste5!4).Ste4(ste5!5) -> Ste7(S359_T363~p,ste5!1).Ste5(ste11!3,ste5!2,ste4!5).Ste5(ste5!2,ste7!1,ste4!4).Ste11(ste5!3,S302_S306_S307~pp).Ste4(ste5!4).Ste4(ste5!5) 0.495 + Ste7(S359_T363~u,ste5!1).Ste5(ste11!3,ste5!2,ste4!4).Ste5(ste5!2,ste7!1,ste4).Ste11(ste5!3,S302_S306_S307~ppp).Ste4(ste5!4) -> Ste7(S359_T363~p,ste5!1).Ste5(ste11!3,ste5!2,ste4!4).Ste5(ste5!2,ste7!1,ste4).Ste11(ste5!3,S302_S306_S307~ppp).Ste4(ste5!4) 0.495 + Ste5(ste11!3,ste5!2,ste4).Ste5(ste5!2,ste7!1,ste4!4).Ste11(ste5!3,S302_S306_S307~ppp).Ste4(ste5!4).Ste7(S359_T363~u,ste5!1) -> Ste5(ste11!3,ste5!2,ste4).Ste5(ste5!2,ste7!1,ste4!4).Ste11(ste5!3,S302_S306_S307~ppp).Ste4(ste5!4).Ste7(S359_T363~p,ste5!1) 0.495 + Ste7(S359_T363~u,ste5!1).Ste5(ste11!3,ste5!2,ste4!5).Ste5(ste5!2,ste7!1,ste4!4).Ste11(ste5!3,S302_S306_S307~ppp).Ste4(ste5!4).Ste4(ste5!5) -> Ste7(S359_T363~p,ste5!1).Ste5(ste11!3,ste5!2,ste4!5).Ste5(ste5!2,ste7!1,ste4!4).Ste11(ste5!3,S302_S306_S307~ppp).Ste4(ste5!4).Ste4(ste5!5) 0.495 + Ste5(ste11!3,ste5!2).Ste11(ste5!3).Ste5(ste5!2,ste7!1).Ste7(S359_T363~p,ste5!1) -> Ste5(ste11!3,ste5!2).Ste11(ste5!3).Ste5(ste5!2,ste7!1).Ste7(S359_T363~pp,ste5!1) 0 + Ste7(S359_T363~p,ste5!1).Ste5(ste11!3,ste5!2,ste4!4).Ste5(ste5!2,ste7!1,ste4).Ste11(ste5!3,S302_S306_S307~pp).Ste4(ste5!4) -> Ste7(S359_T363~pp,ste5!1).Ste5(ste11!3,ste5!2,ste4!4).Ste5(ste5!2,ste7!1,ste4).Ste11(ste5!3,S302_S306_S307~pp).Ste4(ste5!4) 0.495 + Ste7(S359_T363~p,ste5!1).Ste5(ste11!3,ste5!2,ste4).Ste5(ste5!2,ste7!1,ste4!4).Ste11(ste5!3,S302_S306_S307~pp).Ste4(ste5!4) -> Ste7(S359_T363~pp,ste5!1).Ste5(ste11!3,ste5!2,ste4).Ste5(ste5!2,ste7!1,ste4!4).Ste11(ste5!3,S302_S306_S307~pp).Ste4(ste5!4) 0.495 + Ste7(S359_T363~p,ste5!1).Ste5(ste11!3,ste5!2,ste4!5).Ste5(ste5!2,ste7!1,ste4!4).Ste11(ste5!3,S302_S306_S307~pp).Ste4(ste5!4).Ste4(ste5!5) -> Ste7(S359_T363~pp,ste5!1).Ste5(ste11!3,ste5!2,ste4!5).Ste5(ste5!2,ste7!1,ste4!4).Ste11(ste5!3,S302_S306_S307~pp).Ste4(ste5!4).Ste4(ste5!5) 0.495 + Ste7(S359_T363~p,ste5!1).Ste5(ste11!3,ste5!2,ste4!4).Ste5(ste5!2,ste7!1,ste4).Ste11(ste5!3,S302_S306_S307~ppp).Ste4(ste5!4) -> Ste7(S359_T363~pp,ste5!1).Ste5(ste11!3,ste5!2,ste4!4).Ste5(ste5!2,ste7!1,ste4).Ste11(ste5!3,S302_S306_S307~ppp).Ste4(ste5!4) 0.495 + Ste5(ste11!3,ste5!2,ste4).Ste5(ste5!2,ste7!1,ste4!4).Ste11(ste5!3,S302_S306_S307~ppp).Ste4(ste5!4).Ste7(S359_T363~p,ste5!1) -> Ste5(ste11!3,ste5!2,ste4).Ste5(ste5!2,ste7!1,ste4!4).Ste11(ste5!3,S302_S306_S307~ppp).Ste4(ste5!4).Ste7(S359_T363~pp,ste5!1) 0.495 + Ste7(S359_T363~p,ste5!1).Ste5(ste11!3,ste5!2,ste4!5).Ste5(ste5!2,ste7!1,ste4!4).Ste11(ste5!3,S302_S306_S307~ppp).Ste4(ste5!4).Ste4(ste5!5) -> Ste7(S359_T363~pp,ste5!1).Ste5(ste11!3,ste5!2,ste4!5).Ste5(ste5!2,ste7!1,ste4!4).Ste11(ste5!3,S302_S306_S307~ppp).Ste4(ste5!4).Ste4(ste5!5) 0.495 + Ste7(mapk) + Fus3(dock) -> Ste7(mapk!1).Fus3(dock!1) 4.35e-06 + Ste7(mapk!1).Fus3(dock!1) -> Ste7(mapk) + Fus3(dock) 0.0075 + Ste5(ste7!1).Ste7(mapk!2,ste5!1).Fus3(dock!2,T180~u) -> Ste5(ste7!1).Ste7(mapk!2,ste5!1).Fus3(dock!2,T180~p) 0 + Ste5(ste7!1).Ste7(mapk!2,ste5!1,S359_T363~pp).Fus3(dock!2,T180~u,Y182~u) -> Ste5(ste7!1).Ste7(mapk!2,ste5!1,S359_T363~pp).Fus3(dock!2,T180~p,Y182~u) 7.5 + Ste5(ste7!1).Ste7(mapk!2,ste5!1,S359_T363~pp).Fus3(dock!2,T180~u,Y182~p) -> Ste5(ste7!1).Ste7(mapk!2,ste5!1,S359_T363~pp).Fus3(dock!2,T180~p,Y182~p) 7.5 + Ste5(ste7!1).Ste7(mapk!2,ste5!1).Fus3(dock!2,Y182~u) -> Ste5(ste7!1).Ste7(mapk!2,ste5!1).Fus3(dock!2,Y182~p) 0 + Ste5(ste7!1).Ste7(mapk!2,ste5!1,S359_T363~pp).Fus3(dock!2,T180~u,Y182~u) -> Ste5(ste7!1).Ste7(mapk!2,ste5!1,S359_T363~pp).Fus3(dock!2,T180~u,Y182~p) 7.5 + Ste5(ste7!1).Ste7(mapk!2,ste5!1,S359_T363~pp).Fus3(dock!2,T180~p,Y182~u) -> Ste5(ste7!1).Ste7(mapk!2,ste5!1,S359_T363~pp).Fus3(dock!2,T180~p,Y182~p) 7.5 + Fus3(dock) + Ste5(mapk,loc~c) -> Fus3(dock!1).Ste5(mapk!1,loc~c) 8.595e-05 + Fus3(dock!1).Ste5(mapk!1) -> Fus3(dock) + Ste5(mapk) 1.425 + Ste5(mapk!1).Fus3(dock!1,Y182~u) -> Ste5(mapk!1).Fus3(dock!1,Y182~p) 0.000435 + Ste7(mapk) + Kss1(dock) -> Ste7(mapk!1).Kss1(dock!1) 4.35e-06 + Ste7(mapk!1).Kss1(dock!1) -> Ste7(mapk) + Kss1(dock) 0.0075 + Ste7(mapk!2).Kss1(dock!2,T183~u) -> Ste7(mapk!2).Kss1(dock!2,T183~p) 0 + Ste7(mapk!2,S359_T363~pp).Kss1(dock!2,Y185~u,T183~u) -> Ste7(mapk!2,S359_T363~pp).Kss1(dock!2,Y185~u,T183~p) 1.5 + Ste7(mapk!2,S359_T363~pp).Kss1(dock!2,Y185~p,T183~u) -> Ste7(mapk!2,S359_T363~pp).Kss1(dock!2,Y185~p,T183~p) 1.5 + Ste7(mapk!2).Kss1(dock!2,Y185~u) -> Ste7(mapk!2).Kss1(dock!2,Y185~p) 0 + Ste7(mapk!2,S359_T363~pp).Kss1(dock!2,Y185~u,T183~u) -> Ste7(mapk!2,S359_T363~pp).Kss1(dock!2,Y185~p,T183~u) 1.5 + Ste7(mapk!2,S359_T363~pp).Kss1(dock!2,Y185~u,T183~p) -> Ste7(mapk!2,S359_T363~pp).Kss1(dock!2,Y185~p,T183~p) 1.5 + Kss1(dock) + Ste5(mapk,loc~c) -> Kss1(dock!1).Ste5(mapk!1,loc~c) 8.595e-05 + Kss1(dock!1).Ste5(mapk!1) -> Kss1(dock) + Ste5(mapk) 1.425 + Ste5(mapk!1).Kss1(dock!1,Y185~u) -> Ste5(mapk!1).Kss1(dock!1,Y185~p) 0.000435 + Ste11(S302_S306_S307~ppp) -> Ste11(S302_S306_S307~pp) 0.00087 + Ste11(S302_S306_S307~pp) -> Ste11(S302_S306_S307~p) 0.00087 + Ste11(S302_S306_S307~p) -> Ste11(S302_S306_S307~u) 0.00087 + Ste11(degradation~p) -> Ste11(degradation~u) 0.00087 + Fus3(dock) + Ste11(mapk,degradation~u) -> Fus3(dock!1).Ste11(mapk!1,degradation~u) 8.595e-05 + Fus3(dock!1).Ste11(mapk!1) -> Fus3(dock) + Ste11(mapk) 0 + Fus3(dock!1,T180~u,Y182~u).Ste11(mapk!1) -> Fus3(dock,T180~u,Y182~u) + Ste11(mapk) 1.5 + Fus3(dock!1,T180~p,Y182~u).Ste11(mapk!1) -> Fus3(dock,T180~p,Y182~u) + Ste11(mapk) 0.75 + Fus3(dock!1,T180~u,Y182~p).Ste11(mapk!1) -> Fus3(dock,T180~u,Y182~p) + Ste11(mapk) 0.75 + Fus3(dock!1,T180~p,Y182~p).Ste11(mapk!1) -> Fus3(dock,T180~p,Y182~p) + Ste11(mapk) 0.375 + Ste11(mapk!1,degradation~u).Kss1(dock!1) -> Ste11(mapk,degradation~p) + Kss1(dock) 0 + Ste11(mapk!1,degradation~u).Kss1(dock!1,Y185~p,T183~p) -> Ste11(mapk,degradation~p) + Kss1(dock,Y185~p,T183~p) 1.5 + Kss1(dock) + Ste11(mapk,degradation~u) -> Kss1(dock!1).Ste11(mapk!1,degradation~u) 8.595e-05 + Kss1(dock!1).Ste11(mapk!1) -> Kss1(dock) + Ste11(mapk) 0 + Kss1(dock!1,T183~u,Y185~u).Ste11(mapk!1) -> Kss1(dock,T183~u,Y185~u) + Ste11(mapk) 1.5 + Kss1(dock!1,T183~p,Y185~u).Ste11(mapk!1) -> Kss1(dock,T183~p,Y185~u) + Ste11(mapk) 0.75 + Kss1(dock!1,T183~u,Y185~p).Ste11(mapk!1) -> Kss1(dock,T183~u,Y185~p) + Ste11(mapk) 0.75 + Kss1(dock!1,T183~p,Y185~p).Ste11(mapk!1) -> Kss1(dock,T183~p,Y185~p) + Ste11(mapk) 0.375 + Ste11(mapk!1,degradation~u).Fus3(dock!1) -> Ste11(mapk,degradation~p) + Fus3(dock) 0 + Ste11(mapk!1,degradation~u).Fus3(dock!1,Y182~p,T180~p) -> Ste11(mapk,degradation~p) + Fus3(dock,Y182~p,T180~p) 1.5 + Ste11() -> Trash() 0 DeleteMolecules + Ste11(degradation~p) -> Trash() 0.00075 DeleteMolecules + Ste7(S359_T363~pp) -> Ste7(S359_T363~p) 0.00087 + Ste7(S359_T363~p) -> Ste7(S359_T363~u) 0.00087 + Fus3(T180~p) -> Fus3(T180~u) 0.00087 + Fus3(Y182~p) -> Fus3(Y182~u) 0.00087 + Kss1(T183~p) -> Kss1(T183~u) 0.00087 + Kss1(Y185~p) -> Kss1(Y185~u) 0.00087 + Fus3(dock) + Msg5(mapk) -> Fus3(dock!1).Msg5(mapk!1) 8.595e-05 + Msg5(mapk!1).Fus3(dock!1) -> Msg5(mapk) + Fus3(dock) 0 + Fus3(dock!1,Y182~u,T180~u).Msg5(mapk!1) -> Fus3(dock,Y182~u,T180~u) + Msg5(mapk) 7.5 + Fus3(dock!1,Y182~p,T180~u).Msg5(mapk!1) -> Fus3(dock,Y182~p,T180~u) + Msg5(mapk) 3 + Msg5(mapk!1).Fus3(dock!1,T180~p,Y182~u) -> Msg5(mapk) + Fus3(dock,T180~p,Y182~u) 3 + Msg5(mapk!1).Fus3(dock!1,T180~p,Y182~p) -> Msg5(mapk) + Fus3(dock,T180~p,Y182~p) 3 + Msg5(mapk!1).Fus3(dock!1,T180~p) -> Msg5(mapk) + Fus3(dock,T180~u) 0.12 + Fus3(dock!1,Y182~p).Msg5(mapk!1) -> Fus3(dock,Y182~u) + Msg5(mapk) 0.12 + Kss1(dock) + Msg5(mapk) -> Kss1(dock!1).Msg5(mapk!1) 8.595e-05 + Msg5(mapk!1).Kss1(dock!1) -> Msg5(mapk) + Kss1(dock) 0 + Msg5(mapk!1).Kss1(dock!1,T183~u,Y185~u) -> Msg5(mapk) + Kss1(dock,T183~u,Y185~u) 1.2 + Msg5(mapk!1).Kss1(dock!1,T183~u,Y185~p) -> Msg5(mapk) + Kss1(dock,T183~u,Y185~p) 0.12 + Msg5(mapk!1).Kss1(dock!1,T183~p,Y185~u) -> Msg5(mapk) + Kss1(dock,T183~p,Y185~u) 0.12 + Msg5(mapk!1).Kss1(dock!1,T183~p,Y185~p) -> Msg5(mapk) + Kss1(dock,T183~p,Y185~p) 0.12 + Msg5(mapk!1).Kss1(dock!1,T183~p) -> Msg5(mapk) + Kss1(dock,T183~u) 0.12 + Msg5(mapk!1).Kss1(dock!1,Y185~p) -> Msg5(mapk) + Kss1(dock,Y185~u) 0.12 + Fus3(dock) + Ptp(mapk) -> Fus3(dock!1).Ptp(mapk!1) 8.595e-05 + Ptp(mapk!1).Fus3(dock!1) -> Ptp(mapk) + Fus3(dock) 0 + Ptp(mapk!1).Fus3(dock!1,Y182~u) -> Ptp(mapk) + Fus3(dock,Y182~u) 1.5 + Ptp(mapk!1).Fus3(dock!1,Y182~p) -> Ptp(mapk) + Fus3(dock,Y182~p) 0.3 + Ptp(mapk!1).Fus3(dock!1,Y182~p) -> Ptp(mapk) + Fus3(dock,Y182~u) 1.2 + Kss1(dock) + Ptp(mapk) -> Kss1(dock!1).Ptp(mapk!1) 8.595e-05 + Ptp(mapk!1).Kss1(dock!1) -> Ptp(mapk) + Kss1(dock) 0 + Ptp(mapk!1).Kss1(dock!1,Y185~u) -> Ptp(mapk) + Kss1(dock,Y185~u) 0.15 + Ptp(mapk!1).Kss1(dock!1,Y185~p) -> Ptp(mapk) + Kss1(dock,Y185~p) 0.03 + Ptp(mapk!1).Kss1(dock!1,Y185~p) -> Ptp(mapk) + Kss1(dock,Y185~u) 0.12 + Fus3() -> Trash() 0.000192 DeleteMolecules + Ste12(dna) + Fus3_gene(promoter) -> Ste12(dna!1).Fus3_gene(promoter!1) 2.145e-05 + Ste12(dna!1).Fus3_gene(promoter!1) -> Ste12(dna) + Fus3_gene(promoter) 0.03 + I() -> I() + Fus3(dock,T180~u,Y182~u) 3.9 + Ste12(dig1,dig2,mapk,dna!1).Fus3_gene(promoter!1) -> Ste12(dig1,dig2,mapk,dna!1).Fus3_gene(promoter!1) + Fus3(dock,T180~u,Y182~u) 15 + Msg5() -> Trash() 0.000795 DeleteMolecules + Ste12(dna) + Msg5_gene(promoter) -> Ste12(dna!1).Msg5_gene(promoter!1) 2.145e-05 + Ste12(dna!1).Msg5_gene(promoter!1) -> Ste12(dna) + Msg5_gene(promoter) 0.03 + I() -> I() + Msg5(mapk) 0.0795 + Ste12(dig1,dig2,mapk,dna!1).Msg5_gene(promoter!1) -> Ste12(dig1,dig2,mapk,dna!1).Msg5_gene(promoter!1) + Msg5(mapk) 0.63 + Dig1(ste12) + Ste12(dig1) -> Dig1(ste12!1).Ste12(dig1!1) 0.000855 + Dig1(ste12!1).Ste12(dig1!1) -> Dig1(ste12) + Ste12(dig1) 0 + Dig1(ste12!1,activation~p).Ste12(dig1!1,dig2,mapk) -> Dig1(ste12,activation~p) + Ste12(dig1,dig2,mapk) 30 + Dig1(ste12!1,activation~p).Ste12(dig1!1,dig2!2,mapk).Dig2(ste12!2) -> Dig1(ste12,activation~p) + Ste12(dig1,dig2!2,mapk).Dig2(ste12!2) 3 + Dig1(ste12!1,activation~p).Ste12(dig1!1,dig2,mapk!+) -> Dig1(ste12,activation~p) + Ste12(dig1,dig2,mapk!+) 3 + Dig1(ste12!1,activation~p).Ste12(dig1!1,dig2!2,mapk!+).Dig2(ste12!2) -> Dig1(ste12,activation~p) + Ste12(dig1,dig2!2,mapk!+).Dig2(ste12!2) 0.03 + Ste12(dig2) + Dig2(ste12) -> Ste12(dig2!1).Dig2(ste12!1) 0.000855 + Dig2(ste12!1).Ste12(dig2!1) -> Dig2(ste12) + Ste12(dig2) 0 + Dig2(ste12!1,activation~p).Ste12(dig1,dig2!1) -> Dig2(ste12,activation~p) + Ste12(dig1,dig2) 30 + Ste12(dig1!1,dig2!2).Dig1(ste12!1).Dig2(ste12!2,activation~p) -> Ste12(dig1!1,dig2).Dig1(ste12!1) + Dig2(ste12,activation~p) 3 + Fus3(dock) + Ste12(mapk) -> Fus3(dock!1).Ste12(mapk!1) 8.595e-05 + Ste12(mapk!1).Fus3(dock!1) -> Ste12(mapk) + Fus3(dock) 0 + Ste12(mapk!1,dig1).Fus3(dock!1,T180~u,Y182~u) -> Ste12(mapk,dig1) + Fus3(dock,T180~u,Y182~u) 3 + Ste12(mapk!1,dig1).Fus3(dock!1,T180~u,Y182~p) -> Ste12(mapk,dig1) + Fus3(dock,T180~u,Y182~p) 15 + Ste12(mapk!1,dig1).Fus3(dock!1,T180~p,Y182~u) -> Ste12(mapk,dig1) + Fus3(dock,T180~p,Y182~u) 15 + Ste12(mapk!1,dig1).Fus3(dock!1,T180~p,Y182~p) -> Ste12(mapk,dig1) + Fus3(dock,T180~p,Y182~p) 75 + Ste12(mapk!1,dig1!2).Dig1(ste12!2).Fus3(dock!1,T180~u,Y182~u) -> Ste12(mapk,dig1!1).Dig1(ste12!1) + Fus3(dock,T180~u,Y182~u) 0.3 + Ste12(mapk!1,dig1!2).Dig1(ste12!2).Fus3(dock!1,T180~u,Y182~p) -> Ste12(mapk,dig1!1).Dig1(ste12!1) + Fus3(dock,T180~u,Y182~p) 1.5 + Ste12(mapk!1,dig1!2).Dig1(ste12!2).Fus3(dock!1,T180~p,Y182~u) -> Ste12(mapk,dig1!1).Dig1(ste12!1) + Fus3(dock,T180~p,Y182~u) 1.5 + Ste12(mapk!1,dig1!2).Dig1(ste12!2).Fus3(dock!1,T180~p,Y182~p) -> Ste12(mapk,dig1!1).Dig1(ste12!1) + Fus3(dock,T180~p,Y182~p) 7.5 + Kss1(dock) + Ste12(mapk) -> Kss1(dock!1).Ste12(mapk!1) 8.595e-05 + Ste12(mapk!1).Kss1(dock!1) -> Ste12(mapk) + Kss1(dock) 0 + Ste12(mapk!1,dig1).Kss1(dock!1,T183~u,Y185~u) -> Ste12(mapk,dig1) + Kss1(dock,T183~u,Y185~u) 0.75 + Ste12(mapk!1,dig1).Kss1(dock!1,T183~u,Y185~p) -> Ste12(mapk,dig1) + Kss1(dock,T183~u,Y185~p) 3.75 + Ste12(mapk!1,dig1).Kss1(dock!1,T183~p,Y185~u) -> Ste12(mapk,dig1) + Kss1(dock,T183~p,Y185~u) 3.75 + Ste12(mapk!1,dig1).Kss1(dock!1,T183~p,Y185~p) -> Ste12(mapk,dig1) + Kss1(dock,T183~p,Y185~p) 18.75 + Ste12(mapk!1,dig1!2).Dig1(ste12!2).Kss1(dock!1,T183~u,Y185~u) -> Ste12(mapk,dig1!1).Dig1(ste12!1) + Kss1(dock,T183~u,Y185~u) 0.075 + Ste12(mapk!1,dig1!2).Dig1(ste12!2).Kss1(dock!1,T183~u,Y185~p) -> Ste12(mapk,dig1!1).Dig1(ste12!1) + Kss1(dock,T183~u,Y185~p) 0.375 + Ste12(mapk!1,dig1!2).Dig1(ste12!2).Kss1(dock!1,T183~p,Y185~u) -> Ste12(mapk,dig1!1).Dig1(ste12!1) + Kss1(dock,T183~p,Y185~u) 0.375 + Ste12(mapk!1,dig1!2).Dig1(ste12!2).Kss1(dock!1,T183~p,Y185~p) -> Ste12(mapk,dig1!1).Dig1(ste12!1) + Kss1(dock,T183~p,Y185~p) 1.5 + Dig1(mapk,activation~u) + Fus3(dock) -> Dig1(mapk!1,activation~u).Fus3(dock!1) 8.595e-05 + Dig1(mapk!1).Fus3(dock!1) -> Dig1(mapk) + Fus3(dock) 0 + Dig1(mapk!1).Fus3(dock!1,T180~u,Y182~u) -> Dig1(mapk) + Fus3(dock,T180~u,Y182~u) 4.5 + Dig1(mapk!1).Fus3(dock!1,T180~u,Y182~p) -> Dig1(mapk) + Fus3(dock,T180~u,Y182~p) 2.25 + Dig1(mapk!1).Fus3(dock!1,T180~p,Y182~u) -> Dig1(mapk) + Fus3(dock,T180~p,Y182~u) 2.25 + Dig1(mapk!1).Fus3(dock!1,T180~p,Y182~p) -> Dig1(mapk) + Fus3(dock,T180~p,Y182~p) 1.125 + Fus3(dock!1).Dig1(mapk!1,activation~u) -> Fus3(dock) + Dig1(mapk,activation~p) 0 + Dig1(mapk!1,activation~u).Fus3(dock!1,T180~p,Y182~p) -> Dig1(mapk,activation~p) + Fus3(dock,T180~p,Y182~p) 1.5 + Kss1(dock) + Dig1(mapk,activation~u) -> Kss1(dock!1).Dig1(mapk!1,activation~u) 8.595e-06 + Kss1(dock!1).Dig1(mapk!1) -> Kss1(dock) + Dig1(mapk) 0 + Dig1(mapk!1).Kss1(dock!1,Y185~u,T183~u) -> Dig1(mapk) + Kss1(dock,Y185~u,T183~u) 7.5 + Dig1(mapk!1).Kss1(dock!1,Y185~u,T183~p) -> Dig1(mapk) + Kss1(dock,Y185~u,T183~p) 3.75 + Dig1(mapk!1).Kss1(dock!1,Y185~p,T183~u) -> Dig1(mapk) + Kss1(dock,Y185~p,T183~u) 3.75 + Dig1(mapk!1).Kss1(dock!1,Y185~p,T183~p) -> Dig1(mapk) + Kss1(dock,Y185~p,T183~p) 1.875 + Dig1(mapk!1,activation~u).Kss1(dock!1) -> Dig1(mapk,activation~p) + Kss1(dock) 0 + Kss1(dock!1,Y185~p,T183~p).Dig1(mapk!1,activation~u) -> Kss1(dock,Y185~p,T183~p) + Dig1(mapk,activation~p) 1.5 + Fus3(dock) + Dig2(mapk,activation~u) -> Fus3(dock!1).Dig2(mapk!1,activation~u) 8.595e-05 + Fus3(dock!1).Dig2(mapk!1) -> Fus3(dock) + Dig2(mapk) 0 + Dig2(mapk!1).Fus3(dock!1,T180~u,Y182~u) -> Dig2(mapk) + Fus3(dock,T180~u,Y182~u) 1.5 + Dig2(mapk!1).Fus3(dock!1,T180~u,Y182~p) -> Dig2(mapk) + Fus3(dock,T180~u,Y182~p) 0.75 + Dig2(mapk!1).Fus3(dock!1,T180~p,Y182~u) -> Dig2(mapk) + Fus3(dock,T180~p,Y182~u) 0.75 + Dig2(mapk!1).Fus3(dock!1,T180~p,Y182~p) -> Dig2(mapk) + Fus3(dock,T180~p,Y182~p) 0.375 + Fus3(dock!1).Dig2(mapk!1,activation~u) -> Fus3(dock) + Dig2(mapk,activation~p) 0 + Dig2(mapk!1,activation~u).Fus3(dock!1,T180~p,Y182~p) -> Dig2(mapk,activation~p) + Fus3(dock,T180~p,Y182~p) 1.5 + Dig2(mapk,activation~u) + Kss1(dock) -> Dig2(mapk!1,activation~u).Kss1(dock!1) 8.595e-06 + Kss1(dock!1).Dig2(mapk!1) -> Kss1(dock) + Dig2(mapk) 0 + Dig2(mapk!1).Kss1(dock!1,Y185~u,T183~u) -> Dig2(mapk) + Kss1(dock,Y185~u,T183~u) 2.55 + Dig2(mapk!1).Kss1(dock!1,Y185~u,T183~p) -> Dig2(mapk) + Kss1(dock,Y185~u,T183~p) 1.275 + Dig2(mapk!1).Kss1(dock!1,Y185~p,T183~u) -> Dig2(mapk) + Kss1(dock,Y185~p,T183~u) 1.275 + Dig2(mapk!1).Kss1(dock!1,Y185~p,T183~p) -> Dig2(mapk) + Kss1(dock,Y185~p,T183~p) 0.645 + Kss1(dock!1).Dig2(mapk!1,activation~u) -> Kss1(dock) + Dig2(mapk,activation~p) 0 + Kss1(dock!1,Y185~p,T183~p).Dig2(mapk!1,activation~u) -> Kss1(dock,Y185~p,T183~p) + Dig2(mapk,activation~p) 1.5 + Dig1(activation~p) -> Dig1(activation~u) 0.00087 + Dig2(activation~p) -> Dig2(activation~u) 0.00087 + Dig2() -> Trash() 0.000192 DeleteMolecules + Ste12(dna) + Dig2_gene(promoter) -> Ste12(dna!1).Dig2_gene(promoter!1) 2.145e-05 + Ste12(dna!1).Dig2_gene(promoter!1) -> Ste12(dna) + Dig2_gene(promoter) 0.03 + I() -> I() + Dig2(mapk,ste12,activation~u) 0.24 + Ste12(dig1,dig2,mapk,dna!1).Dig2_gene(promoter!1) -> Ste12(dig1,dig2,mapk,dna!1).Dig2_gene(promoter!1) + Dig2(mapk,ste12,activation~u) 0.45 + Ste12(dna) + Ste12_gene(promoter) -> Ste12(dna!1).Ste12_gene(promoter!1) 2.145e-05 + Ste12(dna!1).Ste12_gene(promoter!1) -> Ste12(dna) + Ste12_gene(promoter) 0.03 + Ste12(dig1,dig2,mapk,dna!1).Ste12_gene(promoter!1) -> Ste12(dig1,dig2,mapk,dna!1).Ste12_gene(promoter!1) + Ste12(dig1,dig2,mapk,dna) 0.45 + Ste7(ste5!2,S359_T363~pp,mapk!1).Ste5(ste7!2).Fus3(dock!1,T180~p,Y182~p) -> Ste7(ste5,S359_T363~pp,mapk) + Ste5(ste7) + Fus3(dock,T180~p,Y182~p) 0.495 + Ste7(ste5,S359_T363~pp,mapk) -> Trash() 0.00255 DeleteMolecules + Ste11(ste5) + Mekkp(ste11) -> Ste11(ste5!1).Mekkp(ste11!1) 7.155e-05 + Ste11(ste5!1).Mekkp(ste11!1) -> Ste11(ste5) + Mekkp(ste11) 0.6 + Ste11(S302_S306_S307~ppp,ste5!1).Mekkp(ste11!1) -> Ste11(S302_S306_S307~pp,ste5!1).Mekkp(ste11!1) 0.2505 + Ste11(S302_S306_S307~pp,ste5!1).Mekkp(ste11!1) -> Ste11(S302_S306_S307~p,ste5!1).Mekkp(ste11!1) 0.2505 + Ste11(S302_S306_S307~p,ste5!1).Mekkp(ste11!1) -> Ste11(S302_S306_S307~u,ste5!1).Mekkp(ste11!1) 0.2505 + Ste7(ste5) + Mekp(ste7) -> Ste7(ste5!1).Mekp(ste7!1) 7.155e-05 + Ste7(ste5!1).Mekp(ste7!1) -> Ste7(ste5) + Mekp(ste7) 0.6 + Ste7(S359_T363~pp,ste5!1).Mekp(ste7!1) -> Ste7(S359_T363~p,ste5!1).Mekp(ste7!1) 0.2505 + Ste7(S359_T363~p,ste5!1).Mekp(ste7!1) -> Ste7(S359_T363~u,ste5!1).Mekp(ste7!1) 0.2505 + Ste5(ste11,ste7,ste4,mapk,ste5,loc~c) -> Ste5(ste11,ste7,ste4,mapk,ste5,loc~n) 0.5 + + Ste5(loc~n) -> Ste5(loc~c) Func1() + Gpa1(ste4) + Ste5(loc~n) -> Gpa1(ste4) + Ste5(loc~c) Func1() + + Fus3(dock!1,Y182~p).Ste5(mapk!1,T287~u) -> Fus3(dock!1,Y182~p).Ste5(mapk!1,T287~p) 1.5 + Ste5(T287~p) -> Ste5(T287~u) 0.0087 +end reaction rules + +# 1. Run with this line uncommented to generate the opts file. Copy this file to the top level project folder +# (if using RuleBender). +#visualize({type=>"opts"}) +# 2. Now uncomment the next line to use the opts file. +#visualize({type=>"regulatory",groups=>1,collapse=>1,opts=>"../../../Suderman_2013_opts.txt",doNotUseContextWhenGrouping=>1}) diff --git a/Tutorials/NativeTutorials/Suderman2013/metadata.yaml b/Tutorials/NativeTutorials/Suderman2013/metadata.yaml new file mode 100644 index 00000000..136b325a --- /dev/null +++ b/Tutorials/NativeTutorials/Suderman2013/metadata.yaml @@ -0,0 +1,22 @@ +id: "Suderman_2013" +name: "Suderman 2013" +description: "Ensemble model translated into BNGL" +tags: ["suderman", "2013", "i", "trash", "pheromone", "ste2", "gpa1", "ste4", "sst2", "ste20"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/LargerModels/Suderman_2013.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/NativeTutorials/birthdeath/README.md b/Tutorials/NativeTutorials/birthdeath/README.md new file mode 100644 index 00000000..dcf0d400 --- /dev/null +++ b/Tutorials/NativeTutorials/birthdeath/README.md @@ -0,0 +1,21 @@ +# Birth-Death + +Stochastic process + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode, ssa +- Imported from: tutorial + +## Files + +- birth-death.bngl + +## Tags + +published, tutorial, native, birth, death, a, generate_network, saveconcentrations, simulate diff --git a/Tutorials/NativeTutorials/birthdeath/birth-death.bngl b/Tutorials/NativeTutorials/birthdeath/birth-death.bngl new file mode 100644 index 00000000..1c3f75ee --- /dev/null +++ b/Tutorials/NativeTutorials/birthdeath/birth-death.bngl @@ -0,0 +1,25 @@ +begin model +begin parameters + kp1 10 + km1 0.2 +end parameters + +begin species + A() 0 +end species + +begin observables + Molecules Atot A() +end observables + +begin reaction rules + birth: 0 -> A() kp1 + death: A() -> 0 km1 +end reaction rules +end model + +generate_network() +saveConcentrations() +simulate({suffix=>"ode",method=>"ode",t_end=>50,n_steps=>500}) +# resetConcentrations() +# simulate({suffix=>"ssa",method=>"ssa",t_end=>50,n_steps=>500}) \ No newline at end of file diff --git a/Tutorials/NativeTutorials/birthdeath/metadata.yaml b/Tutorials/NativeTutorials/birthdeath/metadata.yaml new file mode 100644 index 00000000..90797037 --- /dev/null +++ b/Tutorials/NativeTutorials/birthdeath/metadata.yaml @@ -0,0 +1,22 @@ +id: "birth-death" +name: "Birth-Death" +description: "Stochastic process" +tags: ["published", "tutorial", "native", "birth", "death", "a", "generate_network", "saveconcentrations", "simulate"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode", "ssa"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/SynDeg/birth-death.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/cBNGLsimple/README.md b/Tutorials/NativeTutorials/cBNGLsimple/README.md new file mode 100644 index 00000000..bb06e870 --- /dev/null +++ b/Tutorials/NativeTutorials/cBNGLsimple/README.md @@ -0,0 +1,21 @@ +# cBNGL simple + +A simplified signal transduction model including the following processes: + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- cBNGL_simple.bngl + +## Tags + +cbngl, simple, l, r, tf, dna, mrna, p diff --git a/Tutorials/NativeTutorials/cBNGLsimple/cBNGL_simple.bngl b/Tutorials/NativeTutorials/cBNGLsimple/cBNGL_simple.bngl new file mode 100644 index 00000000..a16398ec --- /dev/null +++ b/Tutorials/NativeTutorials/cBNGLsimple/cBNGL_simple.bngl @@ -0,0 +1,176 @@ +begin model + +# A simplified signal transduction model including the following processes: +# 1) ligand-receptor binding +# 2) receptor autophosphorylation and constitutive dephosphorylation +# 3) internalization of phosphorylated receptors and recycling of endosomes +# 4) phosphorylation of a diffusible transcription factor (TF) +# 5) phosphorylation dependent cytoplasmic <-> nuclear transport of TF +# 6) TF-dependent transcription of gene p +# 7) Transport and degradation of p mRNA +# 8) Translation of protein P +# 9) P-mediated dephosphorylation of R +# +# The action of P on the phosphorylated receptor constitutes a negative feedback +# loop and the system can be made to oscillate by setting a sharp threshold +# for the level of transcriptional activity as a function of the nuclear concentration +# of TF. This is achieved in the model by using a functional rate law that uses the +# Hill function. This model is a modified version of a model that was originally published +# in the Proceedings of the 2009 Winter Simulation Conference +# (doi: 10.1109/WSC.2009.5429719). +# +# cBNGL code: l.harris@vanderbilt.edu faeder@pitt.edu +# 21 February 2015 + +begin parameters + + # mean number of endosomes + nEndo 5 + + # volumes + vol_EC 20.0 + vol_CP 4.0 + vol_NU 1.0 + vol_EN 0.1*nEndo + + # membrane surface areas + sa_PM 0.4 + sa_NM 0.1 + sa_EM 0.01*nEndo + + # effective surface width + eff_width 1.0 + + # initial species counts (extensive units: quantity, not concentration) + L0 100 + R0 200 + TF0 200 + DNA0 2 + + # kinetic parameters (2nd order reaction params in vol/time units) + kp_LR 0.1 # vol/time + km_LR 1.0 # /time + + k_R_endo 1.0 # /time + k_recycle 0.1 # /time + k_R_phos 1.0 # /time + k_R_dephos 0.1 # /time + + kp_R_TF 0.1 # vol/time + km_R_TF 0.1 # /time + k_TF_phos 1.0 # /time + k_TF_dephos 10.0 # /time + + k_transcribe 1.0 # /time + KM_TF_dna_trans 5.0 # number + n_P 50.0 # Hill coefficient for transcription - exhibits strong oscillations for + # values 15 and above + + k_mRNA_to_CP 1.0 # /time (volume-to-volume species transport) + k_translate 100.0 # /time + k_mRNA_deg 1.0 # /time + k_P_deg 0.1 # /time + + k_TF_import 10 # /time + k_TF_export 10 # /time +end parameters + +begin compartments + EC 3 vol_EC + PM 2 sa_PM * eff_width EC + CP 3 vol_CP PM + NM 2 sa_NM * eff_width CP + NU 3 vol_NU NM + EM 2 sa_EM * eff_width CP + EN 3 vol_EN EM +end compartments + +begin molecule types + L(r) # Ligand w/ receptor binding site. + R(l,tf~Y~pY) # Receptor with ligand and TF binding sites. + TF(d~Y~pY) # Transcription factor with phosphorylation domain. + DNA() # DNA molecule. + mRNA() # mRNA transcript. + P(r) # Protein under control of TF - negative regulator of R +end molecule types + +begin species + L(r)@EC L0 + R(l,tf~Y)@PM R0 + TF(d~Y)@CP TF0 + DNA()@NU DNA0 + P(r)@CP 0 +end species + +begin observables + Molecules L_Bound_PM @PM:L + Molecules L_Bound_EM @EM:L + Molecules Rp_tot R(tf~pY!?) + Molecules Rp_PM @PM:R(tf~pY!?) + Molecules Rp_EM @EM:R(tf~pY!?) + Molecules TF_nuc @NU:TF() + Molecules Tot_mRNA mRNA + Molecules Tot_P P + Molecules P_R P.R +end observables + +begin functions + rate_transcribe() = k_transcribe*TF_nuc^n_P/( KM_TF_dna_trans^n_P + TF_nuc^n_P) # volume/time +end functions + +begin reaction rules + + # receptor-ligand binding. + L_R_bind: L(r) + R(l) <-> L(r!1).R(l!1) kp_LR, km_LR + + # phosphorylated receptor internalization. + L_R_int: @PM:R(tf~pY!?) -> @EM:R(tf~pY) k_R_endo + + # receptor recycling. + R_recyc: @EM:R -> @PM:R k_recycle + + # ligand recycling + L_recyc: @EN:L -> @EC:L k_recycle + + # receptor phosphorylation + R_phos: R(l!+,tf~Y) -> R(l!+,tf~pY) k_R_phos + + # receptor dephosphorylation + R_dephos: R(tf~pY) -> R(tf~Y) k_R_dephos + + # receptor-mediated transcription factor phosphorylation + R_TF_bind: R(tf~pY) + TF(d~Y) <-> R(tf~pY!1).TF(d~Y!1) kp_R_TF, km_R_TF + R_TF_phos: R(tf~pY!1).TF(d~Y!1) -> R(tf~pY) + TF(d~pY) k_TF_phos + + # Inhibition of receptor kinase activity by P + P_R_bind: P(r) + R(tf~pY) <-> P(r!1).R(tf~pY!1) 10*kp_R_TF, km_R_TF + P_R_dephos: P(r!1).R(tf~pY!1) -> P(r) + R(tf~Y) k_R_phos + + # transcription factor dephosphorylation + TFdephos: @CP:TF(d~pY) -> @CP:TF(d~Y) k_TF_dephos + + # TF transport cytoplasm <-> nucleus + TFtransp: @CP:TF(d~pY) <-> @NU:TF(d~pY) k_TF_import, k_TF_export + + # TF-mediated transcription + Ptransc: DNA() -> DNA() + mRNA()@NU rate_transcribe() + + # mRNA transport to cytoplasm. + mRNAtransp: mRNA@NU -> mRNA@CP k_mRNA_to_CP + + # mRNA translation to protein. + Ptransl: mRNA@CP -> mRNA@CP + P(r)@CP k_translate + + # mRNA degradation. + mRNAdeg: mRNA -> 0 k_mRNA_deg + + # protein degradation. + Pdeg: P -> 0 k_P_deg DeleteMolecules + +end reaction rules +end model + +# actions # +generate_network({overwrite=>1}) +writeMfile() +simulate({method=>"ode",t_end=>500,n_steps=>500,verbose=>1}) \ No newline at end of file diff --git a/Tutorials/NativeTutorials/cBNGLsimple/metadata.yaml b/Tutorials/NativeTutorials/cBNGLsimple/metadata.yaml new file mode 100644 index 00000000..a11e32c5 --- /dev/null +++ b/Tutorials/NativeTutorials/cBNGLsimple/metadata.yaml @@ -0,0 +1,22 @@ +id: "cBNGL_simple" +name: "cBNGL simple" +description: "A simplified signal transduction model including the following processes:" +tags: ["cbngl", "simple", "l", "r", "tf", "dna", "mrna", "p"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/CBNGL/cBNGL_simple.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/egfrsimple/README.md b/Tutorials/NativeTutorials/egfrsimple/README.md new file mode 100644 index 00000000..0ce8f22d --- /dev/null +++ b/Tutorials/NativeTutorials/egfrsimple/README.md @@ -0,0 +1,21 @@ +# egfr simple + +This is a demo model of EGFR signaling. + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- egfr_simple.bngl + +## Tags + +egfr, simple, egf, grb2, sos1 diff --git a/Tutorials/NativeTutorials/egfrsimple/egfr_simple.bngl b/Tutorials/NativeTutorials/egfrsimple/egfr_simple.bngl new file mode 100644 index 00000000..30a9f16d --- /dev/null +++ b/Tutorials/NativeTutorials/egfrsimple/egfr_simple.bngl @@ -0,0 +1,82 @@ +# This is a demo model of EGFR signaling. +# The parameters and rules have been modified to keep things +# as simple as possible. +begin parameters +NA 6.02e23 # Avogadro's number (molecues/mol) +f 0.01 # Fraction of the cell to simulate +Vo f*1.0e-10 # Extracellular volume=1/cell_density (L) +V f*3.0e-12 # Cytoplasmic volume (L) +# Inital amount of ligand (nM) +EGF_init 20*1e-9*NA*Vo # convert to copies per cell +# Initial amounts of cellular components (copies per cell) +EGFR_init f*1.8e5 +Grb2_init f*1.5e5 +Sos1_init f*6.2e4 +# Rate constants +# Divide by NA*Vcyt to convert bimolecular rate constants +# from /M/sec to /(molecule/cell)/sec +kp1 9.0e7/(NA*Vo) # ligand-monomer binding +km1 0.06 # ligand-monomer dissociation +kp2 1.0e7/(NA*V) # aggregation of bound monomers +km2 0.1 # dissociation of bound monomers +kp3 0.5 # dimer transphosphorylation +km3 4.505 # dimer dephosphorylation +kp4 1.5e6/(NA*V) # binding of Grb2 to receptor +km4 0.05 # dissociation of Grb2 from receptor +kp5 1.0e7/(NA*V) # binding of Grb2 to Sos1 +km5 0.06 # dissociation of Grb2 from Sos1 +deg 0.01 # degradation of receptor dimers +end parameters +begin molecule types +EGF(R) +EGFR(L,CR1,Y1068~U~P) +Grb2(SH2,SH3) +Sos1(PxxP) +end molecule types +begin species +# Convert EGF conc. from nM to molecule/cell +EGF(R) 0 +EGFR(L,CR1,Y1068~U) EGFR_init +Grb2(SH2,SH3) Grb2_init +Sos1(PxxP) Sos1_init +end species +begin observables + Molecules Sos1_act EGFR(Y1068!1).Grb2(SH2!1,SH3!2).Sos1(PxxP!2) + Molecules EGFR_tot EGFR() + Molecules Lig_free EGF(R) + Species Dim EGFR(CR1!+) + Molecules RP EGFR(Y1068~P!+) + # Cytosolic Grb2-Sos1 + Molecules Grb2Sos1 Grb2(SH2,SH3!1).Sos1(PxxP!1) +end observables +begin reaction rules + # Ligand-receptor binding + EGFR(L,CR1) + EGF(R) <-> EGFR(L!1,CR1).EGF(R!1) kp1, km1 + # Receptor-aggregation + EGFR(L!+,CR1) + EGFR(L!+,CR1) <-> EGFR(L!+,CR1!1).EGFR(L!+,CR1!1) kp2,km2 + # Transphosphorylation of EGFR by RTK + EGFR(CR1!+,Y1068~U) -> EGFR(CR1!+,Y1068~P) kp3 + # Dephosphorylation + EGFR(Y1068~P) -> EGFR(Y1068~U) km3 + # Grb2 binding to pY1068 + EGFR(Y1068~P) + Grb2(SH2) <-> EGFR(Y1068~P!1).Grb2(SH2!1) kp4,km4 + # Grb2 binding to Sos1 + Grb2(SH3) + Sos1(PxxP) <-> Grb2(SH3!1).Sos1(PxxP!1) kp5,km5 + # Receptor dimer internalization/degradation + EGF(R!1).EGF(R!2).EGFR(L!1,CR1!3).EGFR(L!2,CR1!3) -> 0 deg DeleteMolecules +end reaction rules + +#ACTIONS + +generate_network({overwrite=>1}); +# Equilibration +simulate_ode({suffix=>"equil",t_end=>100000,n_steps=>10,sparse=>1,steady_state=>1}); +# Kinetics +setConcentration("EGF(R)","EGF_init"); +saveConcentrations(); # Saves concentrations for future reset +simulate_ode({t_end=>1200,n_steps=>500}); + +# Run a stochastic simulation from the same initial conditions. +# resetConcentrations(); # reverts to saved Concentrations +#Stochastic simulation +#simulate_ssa({suffix=>"ssa",t_end=>120,n_steps=>40}); diff --git a/Tutorials/NativeTutorials/egfrsimple/metadata.yaml b/Tutorials/NativeTutorials/egfrsimple/metadata.yaml new file mode 100644 index 00000000..40683360 --- /dev/null +++ b/Tutorials/NativeTutorials/egfrsimple/metadata.yaml @@ -0,0 +1,22 @@ +id: "egfr_simple" +name: "egfr simple" +description: "This is a demo model of EGFR signaling." +tags: ["egfr", "simple", "egf", "grb2", "sos1"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/LargerModels/egfr_simple.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/organelletransport/README.md b/Tutorials/NativeTutorials/organelletransport/README.md new file mode 100644 index 00000000..8089f312 --- /dev/null +++ b/Tutorials/NativeTutorials/organelletransport/README.md @@ -0,0 +1,21 @@ +# organelle transport + +title: organelle_transport.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- organelle_transport.bngl + +## Tags + +organelle, transport, a, b, c, d, t1, at1, ct1, t2 diff --git a/Tutorials/NativeTutorials/organelletransport/metadata.yaml b/Tutorials/NativeTutorials/organelletransport/metadata.yaml new file mode 100644 index 00000000..a35ba741 --- /dev/null +++ b/Tutorials/NativeTutorials/organelletransport/metadata.yaml @@ -0,0 +1,22 @@ +id: "organelle_transport" +name: "organelle transport" +description: "title: organelle_transport.bngl" +tags: ["organelle", "transport", "a", "b", "c", "d", "t1", "at1", "ct1", "t2"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/CBNGL/organelle_transport.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/organelletransport/organelle_transport.bngl b/Tutorials/NativeTutorials/organelletransport/organelle_transport.bngl new file mode 100644 index 00000000..0f48aba2 --- /dev/null +++ b/Tutorials/NativeTutorials/organelletransport/organelle_transport.bngl @@ -0,0 +1,90 @@ +## title: organelle_transport.bngl +# description: Simple model of transport involving two cell organelles. +# This is the model that was used in the CellBlender tutorial. +# Note: This file is a compartmental BNGL file +# and can be imported into CellBlender using: +# File->Import->Compartmental BioNetGen model (.bngl) +begin parameters + NA_um3 6.02e8 # Avogadro’s number*L/um3 + d 0.01 # [um] Effective membrane thickness used to compute membrane volume + vol_CYT 1 # [um^3] Volume of cytoplasm + vol_O1M 1*d # [um^3] Effective volume of organelle 1 membrane + vol_O1V 0.133 # [um^3] Effective volume of organelle 1 + vol_O2M 1*d # [um^3] Effective volume of organelle 2 membrane + vol_O2V 0.0335 # [um^3] Effective volume of organelle 2 + kp_AB 1e9/NA_um3 # 1/Ms -> um3/s + kp_AT1 3e8/NA_um3 + km_AT1 10 + k_AT1trans 1e5 + kp_CT1 3e8/NA_um3 + km_CT1 10 + k_CT1trans 1e5 + kp_CT2 3e8/NA_um3 + km_CT2 10 + k_DT2trans 1e5 +end parameters + +begin compartments + CYT 3 vol_CYT + O1M 2 vol_O1M CYT + O1V 3 vol_O1V O1M + O2M 2 vol_O2M CYT + O2V 3 vol_O2V O2M +end compartments + +begin molecule types +A() +B() +C() +D() +T1() +AT1() +CT1() +T2() +CT2() +end molecule types + +begin seed species +A@CYT 1200 +B@O1V 1000 +T1@O1M 700 +T2@O2M 700 +end seed species + +begin observables + Molecules A A() + Molecules B B() + Molecules C C() + Molecules D D() +end observables + +begin functions +end functions + +begin reaction rules +# A in cytoplasm binds T1 on organelle 1 (reversibly) +A@CYT + T1@O1M <-> AT1@O1M kp_AT1, km_AT1 +# +# A bound to T1 moves to interior of organelle 1 +AT1@O1M -> T1@O1M + A@O1V k_AT1trans + +# A and B in interior of organelle 1 form a complex C +A@O1V + B@O1V -> C@O1V kp_AB + +# C in interior of organelle 1 binds to T1 (reversibly) +C@O1V + T1@O1M <-> CT1@O1M kp_CT1, km_CT1 + +# C bound to T1 transports to cytoplasm +CT1@O1M -> T1@O1M + C@CYT k_CT1trans + +# C in cytoplasm binds to T2 on orgenelle 2 (reversibly) +C@CYT + T2@O2M <-> CT2@O2M kp_CT2, km_CT2 + +# C bound to T2 moves to interior of organelle 2 and becomes D +CT2@O2M -> T2@O2M + D@O2V k_DT2trans + +end reaction rules + +generate_network() +writeSBML() +simulate({method=>"ode",t_start=>0,t_end=>.01,n_steps=>1000}) diff --git a/Tutorials/NativeTutorials/organelletransportstruct/README.md b/Tutorials/NativeTutorials/organelletransportstruct/README.md new file mode 100644 index 00000000..02a6a77e --- /dev/null +++ b/Tutorials/NativeTutorials/organelletransportstruct/README.md @@ -0,0 +1,21 @@ +# organelle transport struct + +title: organelle_transport_abcd.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- organelle_transport_struct.bngl + +## Tags + +organelle, transport, struct, a, b, t1, t2 diff --git a/Tutorials/NativeTutorials/organelletransportstruct/metadata.yaml b/Tutorials/NativeTutorials/organelletransportstruct/metadata.yaml new file mode 100644 index 00000000..a7512ada --- /dev/null +++ b/Tutorials/NativeTutorials/organelletransportstruct/metadata.yaml @@ -0,0 +1,22 @@ +id: "organelle_transport_struct" +name: "organelle transport struct" +description: "title: organelle_transport_abcd.bngl" +tags: ["organelle", "transport", "struct", "a", "b", "t1", "t2"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: true + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/CBNGL/organelle_transport_struct.bngl" +playground: + visible: true + gallery_category: "tutorial" + featured: false + difficulty: "intermediate" diff --git a/Tutorials/NativeTutorials/organelletransportstruct/organelle_transport_struct.bngl b/Tutorials/NativeTutorials/organelletransportstruct/organelle_transport_struct.bngl new file mode 100644 index 00000000..d6e7a036 --- /dev/null +++ b/Tutorials/NativeTutorials/organelletransportstruct/organelle_transport_struct.bngl @@ -0,0 +1,86 @@ +## title: organelle_transport_abcd.bngl +# description: Simple model of transport involving two cell organelles. This is the model +# that was used in the CellBlender tutorial. +begin parameters + NA_um3 6.02e8 # Avogadro’s number*L/um3 + d 0.01 # [um] Effective membrane thickness used to compute membrane volume + vol_CYT 1 # [um^3] Volume of cytoplasm + vol_O1M 1*d # [um^3] Effective volume of organelle 1 membrane + vol_O1V 0.133 # [um^3] Effective volume of organelle 1 + vol_O2M 1*d # [um^3] Effective volume of organelle 2 membrane + vol_O2V 0.0335 # [um^3] Effective volume of organelle 2 + kp_AB 1e9/NA_um3 # 1/Ms -> um3/s + kp_AT1 3e8/NA_um3 + km_AT1 10 + k_AT1trans 1e5 + kp_CT1 3e8/NA_um3 + km_CT1 10 + k_CT1trans 1e5 + kp_CT2 3e8/NA_um3 + km_CT2 10 + k_DT2trans 1e5 +end parameters + +begin compartments + CYT 3 vol_CYT + O1M 2 vol_O1M CYT + O1V 3 vol_O1V O1M + O2M 2 vol_O2M CYT + O2V 3 vol_O2V O2M +end compartments + +begin molecule types +A(t,b) +B(a) +T1(a) +T2(a) +end molecule types + +begin seed species +A(t,b)@CYT 1200 +B(a)@O1V 1000 +T1(a)@O1M 700 +T2(a)@O2M 700 +end seed species + +begin observables + Molecules FreeA A(t,b) + Molecules FreeB B(a) + Molecules A_O1 @O1V:A(t,b) + Molecules C_cyt @CYT:A(t,b!1).B(a!1) + Molecules FreeD @O2V:A(t,b!1).B(a!1) +end observables + +begin functions +end functions + +begin reaction rules +# A in cytoplasm binds T1 on organelle 1 (reversibly) +@CYT:A(t,b) + T1(a) <-> A(t!1,b).T1(a!1) kp_AT1, km_AT1 + +# A bound to T1 moves to interior of organelle 1 +A(t!1,b)@CYT.T1(a!1) -> A(t,b)@O1V + T1(a) k_AT1trans + +# A and B bind to form a complex C +A(t,b) + B(a) -> A(t,b!1).B(a!1) kp_AB + +# A.B in interior of organelle 1 binds to T1 (reversibly) +@O1V:A(t,b!1).B(a!1) + T1(a) <-> A(t!2,b!1).B(a!1).T1(a!2) kp_CT1, km_CT1 + +# A.B bound to T1 transports to cytoplasm +A(t!2,b!1)@O1V.B(a!1)@O1V.T1(a!2) -> T1(a) + A(t,b!1)@CYT.B(a!1)@CYT k_CT1trans + +# A.B in cytoplasm binds to T2 on orgenelle 2 (reversibly) +@CYT:A(t,b!1).B(a!1) + T2(a) <-> A(t!2,b!1).B(a!1).T2(a!2) kp_CT2, km_CT2 + +# A.B bound to T2 moves to interior of organelle 2 +A(t!2,b!1)@CYT.B(a!1)@CYT.T2(a!2) -> T2(a) + A(t,b!1)@O2V.B(a!1)@O2V k_DT2trans +# Alternative way to do this using a wildcard +# A(t!2,b!+)@CYT.T2(a!2) -> T2(a) + A(t,b!+)@O2V k_DT2trans MoveConnected + +end reaction rules + +#generate_network() +#writeSBML() +simulate({method=>"ode",t_start=>0,t_end=>.01,n_steps=>1000}) + diff --git a/Tutorials/NativeTutorials/toggle/README.md b/Tutorials/NativeTutorials/toggle/README.md new file mode 100644 index 00000000..6cc7be41 --- /dev/null +++ b/Tutorials/NativeTutorials/toggle/README.md @@ -0,0 +1,21 @@ +# Toggle + +Toggle switch + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: no +- Simulation methods: ssa +- Imported from: tutorial + +## Files + +- toggle.bngl + +## Tags + +published, tutorial, native, toggle, x, y, generate_network, writemfile, setconcentration diff --git a/Tutorials/NativeTutorials/toggle/metadata.yaml b/Tutorials/NativeTutorials/toggle/metadata.yaml new file mode 100644 index 00000000..baa4d0b6 --- /dev/null +++ b/Tutorials/NativeTutorials/toggle/metadata.yaml @@ -0,0 +1,22 @@ +id: "toggle" +name: "Toggle" +description: "Toggle switch" +tags: ["published", "tutorial", "native", "toggle", "x", "y", "generate_network", "writemfile", "setconcentration"] +category: "tutorial" +compatibility: + bng2_compatible: false + simulation_methods: ["ssa"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/SynDeg/toggle.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/NativeTutorials/toggle/toggle.bngl b/Tutorials/NativeTutorials/toggle/toggle.bngl new file mode 100644 index 00000000..e29e4741 --- /dev/null +++ b/Tutorials/NativeTutorials/toggle/toggle.bngl @@ -0,0 +1,81 @@ +## Title: A model of a genetic toggle switch +## Description: In this model, a transcriptional repressor, X, inhibits the synthesis +# of a second repressor, Y, which inhibits the synthesis of X. +# Repression is captured using the following function: +# 1/(1+([repressor]/K)^n). +## Author: William S. Hlavacek +## Date: 2015 +## Reference: Gardner TS, Cantor CR, Collins JJ (2000) Nature 403: 339-342. + + +begin model + +begin parameters +# Note that parameter values are different from those chosen in Ref 1.\ +# maximum rate of synthesis of repressor X +bx 50 # [=] molecules per cell per unit time +# maximum rate of synthesis of repressor Y +by 50 # [=] molecules per cell per unit time +# rate constant for clearance of X (through degradation and dilution) +ax 1 # [=] per unit time +# rate constant for clearance of Y (through degradation and dilution) +ay 1 # [=] per unit time +# parameters in the function characterizing Y's effect on synthesis of X +nyx 3 # [=] dimensionless +Kyx 20 # [=] same units as Y() +# parameters in the function characterizing X's effect on synthesis of Y +nxy 3 # [=] dimensionless +Kxy 20 # [=] same units as X() +# initial abundance of X +Xinit 0 # [=] copies per cell +# initial abundance of Y +Yinit 0 # [=] copies per cell +end parameters + +begin species +X() Xinit +Y() Yinit +end species + +begin observables +Molecules X_tot X() +Molecules Y_tot Y() +end observables + +begin reaction rules +# synthesis of X according to a user-defined rate law +# 0 is a source. +0->X() bx/(1+(Y_tot/Kyx)^nyx) +# clearance of X (through degradation and dilution) +# 0 is a sink. +X()->0 ax +# synthesis of Y according to a user-defined rate law +0->Y() by/(1+(X_tot/Kxy)^nxy) +# clearance of Y +Y()->0 ay +end reaction rules + +end model + +generate_network({overwrite=>1}) +# Write ODEs for chemical kinetics of the generated network in a MATLAB M-file +writeMfile() + +# set initial system state close to the stable steady state where +# expression of repressor X is off. +setConcentration("X()",0) +setConcentration("Y()",50) + +# find steady states as a function of Kxy, which reflects the strength +# of X's repression of Y. +# Values of Kxy are scanned from the minimum specified value to the maximum. +# Values are also scanned in the opposite direction. +# If bistability exists, this procedure will find both steady states at each +# tested value of the bifurcation parameter in the bistable region. +bifurcate({parameter=>"Kxy",par_min=>1.0,par_max=>30,n_scan_pts=>100,\ + log_scale=>1,method=>"ode",t_start=>0,t_end=>1000,n_steps=>10,\ + steady_state=>1}) + +# If the parameters of the system are such that the system is bistable, running a long +# stochastic trajectory may reveal transitions between the two steady states. +#simulate({method=>"ssa",t_end=>100000,n_steps=>1000}) diff --git a/Tutorials/NativeTutorials/translateSBML/README.md b/Tutorials/NativeTutorials/translateSBML/README.md new file mode 100644 index 00000000..1127d621 --- /dev/null +++ b/Tutorials/NativeTutorials/translateSBML/README.md @@ -0,0 +1,21 @@ +# translateSBML + +title: translateSBML.bngl + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- translateSBML.bngl + +## Tags + +translatesbml, generate_network, simulate diff --git a/Tutorials/NativeTutorials/translateSBML/metadata.yaml b/Tutorials/NativeTutorials/translateSBML/metadata.yaml new file mode 100644 index 00000000..97d233d9 --- /dev/null +++ b/Tutorials/NativeTutorials/translateSBML/metadata.yaml @@ -0,0 +1,22 @@ +id: "translateSBML" +name: "translateSBML" +description: "title: translateSBML.bngl" +tags: ["translatesbml", "generate_network", "simulate"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/SBML/translateSBML.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/NativeTutorials/translateSBML/translateSBML.bngl b/Tutorials/NativeTutorials/translateSBML/translateSBML.bngl new file mode 100644 index 00000000..422ad0d6 --- /dev/null +++ b/Tutorials/NativeTutorials/translateSBML/translateSBML.bngl @@ -0,0 +1,16 @@ +## title: translateSBML.bngl +# description: Demonstrates how to translate a model in SBML format (has a .xml extension) into +# a .bngl model file. With the atomize parameter set to 1, the translator will attempt +# to determine the molecular composition and structure of each chemical species based on +# several heuristic considerations (described elsewhere). With atomize=>0, the function will' +# perform a direct translation in which each species is represented as a distinct molecule type. +# date: 07Mar2018 +# author: Jim Faeder + +# Set file argument to the name of the SBML file to be translated. In RuleBender this may be done using an +# absolute path to the file, or a relative path that is three subdirectories up from the current directory. +#readFile({file=>"../../../test_sbml_structured_SBML.xml",atomize=>1}) +#readFile({file=>"../../../BIOMD0000000569.xml",atomize=>1}) +#readFile({file=>"../../../BIOMD0000000033.xml",atomize=>1}) +generate_network({overwrite=>1}) +simulate({method=>"ode",t_start=>0,t_end=>100,n_steps=>100}) \ No newline at end of file diff --git a/Tutorials/NativeTutorials/visualize/README.md b/Tutorials/NativeTutorials/visualize/README.md new file mode 100644 index 00000000..e4bedf80 --- /dev/null +++ b/Tutorials/NativeTutorials/visualize/README.md @@ -0,0 +1,21 @@ +# Visualize + +Visualization toy + +## Citation + +Citation pending manual curation in tools/migration/doi-database.csv. + +## Compatibility + +- BNG2 compatible: yes +- Simulation methods: ode +- Imported from: tutorial + +## Files + +- visualize.bngl + +## Tags + +published, tutorial, native, visualize, x, a1, a2, b diff --git a/Tutorials/NativeTutorials/visualize/metadata.yaml b/Tutorials/NativeTutorials/visualize/metadata.yaml new file mode 100644 index 00000000..8ed981cb --- /dev/null +++ b/Tutorials/NativeTutorials/visualize/metadata.yaml @@ -0,0 +1,22 @@ +id: "visualize" +name: "Visualize" +description: "Visualization toy" +tags: ["published", "tutorial", "native", "visualize", "x", "a1", "a2", "b"] +category: "tutorial" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: true +source: + origin: "tutorial" + original_format: "bngl" + original_repository: "bionetgen-web-simulator" + source_path: "published-models/native-tutorials/Viz/visualize.bngl" +playground: + visible: false + gallery_category: "tutorial" + featured: false + difficulty: "advanced" diff --git a/Tutorials/NativeTutorials/visualize/visualize.bngl b/Tutorials/NativeTutorials/visualize/visualize.bngl new file mode 100644 index 00000000..2ca13d57 --- /dev/null +++ b/Tutorials/NativeTutorials/visualize/visualize.bngl @@ -0,0 +1,54 @@ +begin model +begin parameters + A0 100 + B0 100 + X0 100 + kf_A 10 + km_A 1 + kcat 0.1 + kf_B 10 + km_B1 1 + km_B2 0.1 +end parameters + +begin molecule types + X(a,b~Y~pY) + A1(x) + A2(x) + B(x) +end molecule types + +begin seed species + A1(x) A0 + A2(x) A0 + B(x) B0 + X(a,b~Y) X0 +end seed species + +begin reaction rules + R1a: X(a) + A1(x) <-> X(a!1).A1(x!1) kf_A, km_A + R1b: X(a) + A2(x) <-> X(a!1).A2(x!1) kf_A, km_A + + R2a: X(a!1,b~Y).A1(x!1) -> X(a!1,b~pY).A1(x!1) kcat + R2b: X(a!1,b~Y).A2(x!1) -> X(a!1,b~pY).A2(x!1) kcat + + R3a: X(b~Y) + B(x) <-> X(b~Y!1).B(x!1) kf_B, km_B1 + R3b: X(b~pY) + B(x) <-> X(b~pY!1).B(x!1) kf_B, km_B2 +end reaction rules +end model + +# 1. Uncomment one of these to try different types of visualization. Navigate to the appropriate folder +# in the results directory and open the corresponding .gml file in yEd. +#visualize({type=>"contactmap"}) +#visualize({type=>"ruleviz_pattern"}) +#visualize({type=>"ruleviz_operation"}) + +# 2. Uncomment this line and rerun the model. +#visualize({type=>"opts"}) + +# 3. Navigate to the appropriate folder in the results directory and move the file with suffix _opts.txt back +# to the main project folder. Then uncomment the subsequent lines to produce atom-rule (aka, "regulatory") +# graphs with increasing levels of compression. +#visualize({suffix=>"1",type=>"regulatory",background=>0,opts=>["../../../visualize_opts.txt"]}) +#visualize({suffix=>"2",type=>"regulatory",background=>0,opts=>["../../../visualize_opts.txt"],groups=>1}) +#visualize({suffix=>"3",type=>"regulatory",background=>0,ruleNames=>1,doNotUseContextWhenGrouping=>1,opts=>["../../../visualize_opts.txt"],groups=>1,collapse=>1}) diff --git a/manifest.json b/manifest.json new file mode 100644 index 00000000..7127ef52 --- /dev/null +++ b/manifest.json @@ -0,0 +1,14627 @@ +[ + { + "id": "AB", + "name": "AB", + "description": "BioNetGen model: AB", + "path": "Tutorials/NativeTutorials/AB/AB.bngl", + "file": "AB.bngl", + "tags": [ + "ab", + "a", + "b", + "simulate" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "ABC", + "name": "ABC", + "description": "BioNetGen model: ABC", + "path": "Tutorials/NativeTutorials/ABC/ABC.bngl", + "file": "ABC.bngl", + "tags": [ + "abc", + "a", + "simulate" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "ABC_scan", + "name": "ABC scan", + "description": "BioNetGen model: ABC scan", + "path": "Tutorials/NativeTutorials/ABCscan/ABC_scan.bngl", + "file": "ABC_scan.bngl", + "tags": [ + "abc", + "scan", + "a", + "generate_network", + "parameter_scan" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "ABC_ssa", + "name": "ABC ssa", + "description": "BioNetGen model: ABC ssa", + "path": "Tutorials/NativeTutorials/ABCssa/ABC_ssa.bngl", + "file": "ABC_ssa.bngl", + "tags": [ + "abc", + "ssa", + "a", + "simulate" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "Abilene_TX_Abilene_TX", + "name": "Mallela 2022 - COVID-19 MSA Models - Abilene_TX_Abilene_TX", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Abilene_TX_Abilene_TX.bngl", + "file": "Abilene_TX_Abilene_TX.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "ABp", + "name": "ABp", + "description": "title: ABp.bngl", + "path": "Tutorials/NativeTutorials/ABp/ABp.bngl", + "file": "ABp.bngl", + "tags": [ + "abp", + "a", + "b", + "simulate" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "ABp_approx", + "name": "ABp approx", + "description": "title: ABp.bngl", + "path": "Tutorials/NativeTutorials/ABpapprox/ABp_approx.bngl", + "file": "ABp_approx.bngl", + "tags": [ + "abp", + "approx", + "km", + "a", + "b", + "simulate" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "actions_syntax", + "name": "actions syntax", + "description": "Original values used to generate parabola.exp", + "path": "PyBioNetGen/tests/actionssyntax/actions_syntax.bngl", + "file": "actions_syntax.bngl", + "tags": [ + "actions", + "syntax", + "counter", + "y", + "generate_network", + "simulate" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "Akron_OH_Akron_OH", + "name": "Mallela 2022 - COVID-19 MSA Models - Akron_OH_Akron_OH", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Akron_OH_Akron_OH.bngl", + "file": "Akron_OH_Akron_OH.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "akt-signaling", + "name": "akt signaling", + "description": "Signaling rates", + "path": "Contributed/BNGPlayground_Examples/biology/aktsignaling/akt-signaling.bngl", + "file": "akt-signaling.bngl", + "tags": [ + "akt", + "signaling", + "growthfactor", + "rtk", + "pi3k", + "mtorc2", + "mtorc1", + "s6k" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Alabama", + "name": "Alabama", + "description": "reporting period (1 d)", + "path": "Published/Mallela2022/Alabama/Alabama.bngl", + "file": "Alabama.bngl", + "tags": [ + "alabama", + "fdcs", + "counter", + "s", + "e1", + "e2", + "e3", + "e4", + "e5" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Albany_GA_Albany_GA", + "name": "Mallela 2022 - COVID-19 MSA Models - Albany_GA_Albany_GA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Albany_GA_Albany_GA.bngl", + "file": "Albany_GA_Albany_GA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Albany-Schenectady-Troy_NY_Albany-Schenectady-Troy_NY", + "name": "Mallela 2022 - COVID-19 MSA Models - Albany-Schenectady-Troy_NY_Albany-Schenectady-Troy_NY", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Albany-Schenectady-Troy_NY_Albany-Schenectady-Troy_NY.bngl", + "file": "Albany-Schenectady-Troy_NY_Albany-Schenectady-Troy_NY.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Albuquerque_NM_Albuquerque_NM", + "name": "Mallela 2022 - COVID-19 MSA Models - Albuquerque_NM_Albuquerque_NM", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Albuquerque_NM_Albuquerque_NM.bngl", + "file": "Albuquerque_NM_Albuquerque_NM.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Alexandria_LA_Alexandria_LA", + "name": "Mallela 2022 - COVID-19 MSA Models - Alexandria_LA_Alexandria_LA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Alexandria_LA_Alexandria_LA.bngl", + "file": "Alexandria_LA_Alexandria_LA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Allentown-Bethlehem-Easton_PA-NJ_Allentown-Bethlehem-Easton_PA-NJ", + "name": "Mallela 2022 - COVID-19 MSA Models - Allentown-Bethlehem-Easton_PA-NJ_Allentown-Bethlehem-Easton_PA-NJ", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Allentown-Bethlehem-Easton_PA-NJ_Allentown-Bethlehem-Easton_PA-NJ.bngl", + "file": "Allentown-Bethlehem-Easton_PA-NJ_Allentown-Bethlehem-Easton_PA-NJ.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "allosteric-activation", + "name": "allosteric activation", + "description": "Binding constants", + "path": "Contributed/BNGPlayground_Examples/biology/allostericactivation/allosteric-activation.bngl", + "file": "allosteric-activation.bngl", + "tags": [ + "allosteric", + "activation", + "enzyme", + "substrate", + "activator", + "product" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Amarillo_TX_Amarillo_TX", + "name": "Mallela 2022 - COVID-19 MSA Models - Amarillo_TX_Amarillo_TX", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Amarillo_TX_Amarillo_TX.bngl", + "file": "Amarillo_TX_Amarillo_TX.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "ampk-signaling", + "name": "ampk signaling", + "description": "AMPK signaling: The cellular energy sensor.", + "path": "Contributed/BNGPlayground_Examples/biology/ampksignaling/ampk-signaling.bngl", + "file": "ampk-signaling.bngl", + "tags": [ + "ampk", + "signaling", + "amp", + "lkb1", + "ca", + "sik", + "crtc" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "An_2009", + "name": "An 2009", + "description": "TLR4 signaling", + "path": "Published/An2009/An_2009.bngl", + "file": "An_2009.bngl", + "tags": [ + "published", + "immunology", + "an", + "2009", + "cd14", + "md2", + "tlr4", + "tram", + "trif", + "sarm", + "traf4", + "irak1" + ], + "category": "immunology", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "Anchorage_AK_Anchorage_AK", + "name": "Mallela 2022 - COVID-19 MSA Models - Anchorage_AK_Anchorage_AK", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Anchorage_AK_Anchorage_AK.bngl", + "file": "Anchorage_AK_Anchorage_AK.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Ann_Arbor_MI_Ann_Arbor_MI", + "name": "Mallela 2022 - COVID-19 MSA Models - Ann_Arbor_MI_Ann_Arbor_MI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Ann_Arbor_MI_Ann_Arbor_MI.bngl", + "file": "Ann_Arbor_MI_Ann_Arbor_MI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "apoptosis-cascade", + "name": "apoptosis cascade", + "description": "Apoptosis cascade: Integrated extrinsic and intrinsic death signaling.", + "path": "Contributed/BNGPlayground_Examples/biology/apoptosiscascade/apoptosis-cascade.bngl", + "file": "apoptosis-cascade.bngl", + "tags": [ + "apoptosis", + "cascade", + "deathligand", + "caspase8", + "bid", + "mito", + "apaf1", + "caspase3", + "xiap", + "smac" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Appleton_WI_Appleton_WI", + "name": "Mallela 2022 - COVID-19 MSA Models - Appleton_WI_Appleton_WI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Appleton_WI_Appleton_WI.bngl", + "file": "Appleton_WI_Appleton_WI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Asheville_NC_Asheville_NC", + "name": "Mallela 2022 - COVID-19 MSA Models - Asheville_NC_Asheville_NC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Asheville_NC_Asheville_NC.bngl", + "file": "Asheville_NC_Asheville_NC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Athens-Clarke_County_GA_Athens-Clarke_County_GA", + "name": "Mallela 2022 - COVID-19 MSA Models - Athens-Clarke_County_GA_Athens-Clarke_County_GA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Athens-Clarke_County_GA_Athens-Clarke_County_GA.bngl", + "file": "Athens-Clarke_County_GA_Athens-Clarke_County_GA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Atlanta-Sandy_Springs-Alpharetta_GA_Atlanta-Sandy_Springs-Alpharetta_GA", + "name": "Mallela 2022 - COVID-19 MSA Models - Atlanta-Sandy_Springs-Alpharetta_GA_Atlanta-Sandy_Springs-Alpharetta_GA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Atlanta-Sandy_Springs-Alpharetta_GA_Atlanta-Sandy_Springs-Alpharetta_GA.bngl", + "file": "Atlanta-Sandy_Springs-Alpharetta_GA_Atlanta-Sandy_Springs-Alpharetta_GA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Atlantic_City-Hammonton_NJ_Atlantic_City-Hammonton_NJ", + "name": "Mallela 2022 - COVID-19 MSA Models - Atlantic_City-Hammonton_NJ_Atlantic_City-Hammonton_NJ", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Atlantic_City-Hammonton_NJ_Atlantic_City-Hammonton_NJ.bngl", + "file": "Atlantic_City-Hammonton_NJ_Atlantic_City-Hammonton_NJ.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Auburn-Opelika_AL_Auburn-Opelika_AL", + "name": "Mallela 2022 - COVID-19 MSA Models - Auburn-Opelika_AL_Auburn-Opelika_AL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Auburn-Opelika_AL_Auburn-Opelika_AL.bngl", + "file": "Auburn-Opelika_AL_Auburn-Opelika_AL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Augusta-Richmond_County_GA-SC_Augusta-Richmond_County_GA-SC", + "name": "Mallela 2022 - COVID-19 MSA Models - Augusta-Richmond_County_GA-SC_Augusta-Richmond_County_GA-SC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Augusta-Richmond_County_GA-SC_Augusta-Richmond_County_GA-SC.bngl", + "file": "Augusta-Richmond_County_GA-SC_Augusta-Richmond_County_GA-SC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Austin-Round_Rock_TX_Austin-Round_Rock_TX", + "name": "Mallela 2022 - COVID-19 MSA Models - Austin-Round_Rock_TX_Austin-Round_Rock_TX", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Austin-Round_Rock_TX_Austin-Round_Rock_TX.bngl", + "file": "Austin-Round_Rock_TX_Austin-Round_Rock_TX.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "auto-activation-loop", + "name": "auto activation loop", + "description": "Auto-activation loop: A positive feedback circuit.", + "path": "Contributed/BNGPlayground_Examples/biology/autoactivationloop/auto-activation-loop.bngl", + "file": "auto-activation-loop.bngl", + "tags": [ + "auto", + "activation", + "loop", + "gene", + "mrna", + "protein", + "rbp" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "autophagy-regulation", + "name": "autophagy regulation", + "description": "Autophagy regulation: mTOR and AMPK competition on the ULK1 switch.", + "path": "Contributed/BNGPlayground_Examples/biology/autophagyregulation/autophagy-regulation.bngl", + "file": "autophagy-regulation.bngl", + "tags": [ + "autophagy", + "regulation", + "mtor", + "ampk", + "ulk1", + "lc3", + "p62" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "BAB", + "name": "BAB", + "description": "Simple binding model with a bivalent A molecule that has two identical sites", + "path": "Tutorials/NativeTutorials/BAB/BAB.bngl", + "file": "BAB.bngl", + "tags": [ + "bab", + "a", + "b", + "simulate" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "BAB_coop", + "name": "BAB coop", + "description": "Simple binding model with a bivalent A molecule that has two identical sites", + "path": "Tutorials/NativeTutorials/BABcoop/BAB_coop.bngl", + "file": "BAB_coop.bngl", + "tags": [ + "bab", + "coop", + "a", + "b", + "simulate" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "BAB_scan", + "name": "BAB scan", + "description": "Simple binding model with a bivalent A molecule that has two identical sites", + "path": "Tutorials/NativeTutorials/BABscan/BAB_scan.bngl", + "file": "BAB_scan.bngl", + "tags": [ + "bab", + "scan", + "a", + "b", + "generate_network", + "parameter_scan" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "Bakersfield_CA_Bakersfield_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - Bakersfield_CA_Bakersfield_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Bakersfield_CA_Bakersfield_CA.bngl", + "file": "Bakersfield_CA_Bakersfield_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Baltimore-Columbia-Towson_MD_Baltimore-Columbia-Towson_MD", + "name": "Mallela 2022 - COVID-19 MSA Models - Baltimore-Columbia-Towson_MD_Baltimore-Columbia-Towson_MD", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Baltimore-Columbia-Towson_MD_Baltimore-Columbia-Towson_MD.bngl", + "file": "Baltimore-Columbia-Towson_MD_Baltimore-Columbia-Towson_MD.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Barnstable_Town_MA_Barnstable_Town_MA", + "name": "Mallela 2022 - COVID-19 MSA Models - Barnstable_Town_MA_Barnstable_Town_MA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Barnstable_Town_MA_Barnstable_Town_MA.bngl", + "file": "Barnstable_Town_MA_Barnstable_Town_MA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Barua_2007", + "name": "Barua 2007", + "description": "Model from Haugh (2006)", + "path": "Published/Barua2007/Barua_2007.bngl", + "file": "Barua_2007.bngl", + "tags": [ + "published", + "barua", + "2007", + "version", + "r", + "s" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "Barua_2009", + "name": "Barua 2009", + "description": "JAK2-SH2B signaling", + "path": "Published/Barua2009/Barua_2009.bngl", + "file": "Barua_2009.bngl", + "tags": [ + "published", + "barua", + "2009", + "s", + "j" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "Barua_2013", + "name": "Barua 2013", + "description": "Beta-catenin destruction", + "path": "Published/Barua2013/Barua_2013.bngl", + "file": "Barua_2013.bngl", + "tags": [ + "published", + "barua", + "2013", + "axin", + "gsk3b", + "apc", + "bcat", + "ck1a" + ], + "category": "regulation", + "bng2_compatible": false, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "BaruaBCR_2012", + "name": "Barua 2012", + "description": "BCR signaling", + "path": "Published/BaruaBCR2012/BaruaBCR_2012.bngl", + "file": "BaruaBCR_2012.bngl", + "tags": [ + "published", + "immunology", + "baruabcr", + "2012", + "bcr", + "lyn", + "fyn", + "csk", + "pag", + "syk" + ], + "category": "immunology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "BaruaFceRI_2012", + "name": "BaruaFceRI 2012", + "description": "FcεRI signaling", + "path": "Published/BaruaFceRI2012/BaruaFceRI_2012.bngl", + "file": "BaruaFceRI_2012.bngl", + "tags": [ + "published", + "immunology", + "baruafceri", + "2012", + "r_o", + "rdimer_o", + "l_o", + "t_o", + "l", + "fcr", + "lyn", + "syk" + ], + "category": "immunology", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Baton_Rouge_LA_Baton_Rouge_LA", + "name": "Mallela 2022 - COVID-19 MSA Models - Baton_Rouge_LA_Baton_Rouge_LA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Baton_Rouge_LA_Baton_Rouge_LA.bngl", + "file": "Baton_Rouge_LA_Baton_Rouge_LA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Battle_Creek_MI_Battle_Creek_MI", + "name": "Mallela 2022 - COVID-19 MSA Models - Battle_Creek_MI_Battle_Creek_MI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Battle_Creek_MI_Battle_Creek_MI.bngl", + "file": "Battle_Creek_MI_Battle_Creek_MI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Bay_City_MI_Bay_City_MI", + "name": "Mallela 2022 - COVID-19 MSA Models - Bay_City_MI_Bay_City_MI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Bay_City_MI_Bay_City_MI.bngl", + "file": "Bay_City_MI_Bay_City_MI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "bcr-signaling", + "name": "bcr signaling", + "description": "BCR signaling: The B-cell antigen receptor cascade.", + "path": "Contributed/BNGPlayground_Examples/biology/bcrsignaling/bcr-signaling.bngl", + "file": "bcr-signaling.bngl", + "tags": [ + "bcr", + "signaling", + "antigen", + "syk", + "plcg2", + "cd22", + "shp1", + "calcium" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Beantown_m11", + "name": "Mallela 2021 - COVID-19 City Models - Beantown_m11", + "description": "Parameter-fit COVID-19 epidemiological models for major US cities.", + "path": "Published/Mallela2021_Cities/Beantown_m11.bngl", + "file": "Beantown_m11.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "Beaumont-Port_Arthur_TX_Beaumont-Port_Arthur_TX", + "name": "Mallela 2022 - COVID-19 MSA Models - Beaumont-Port_Arthur_TX_Beaumont-Port_Arthur_TX", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Beaumont-Port_Arthur_TX_Beaumont-Port_Arthur_TX.bngl", + "file": "Beaumont-Port_Arthur_TX_Beaumont-Port_Arthur_TX.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Bellingham_WA_Bellingham_WA", + "name": "Mallela 2022 - COVID-19 MSA Models - Bellingham_WA_Bellingham_WA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Bellingham_WA_Bellingham_WA.bngl", + "file": "Bellingham_WA_Bellingham_WA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "beta-adrenergic-response", + "name": "beta adrenergic response", + "description": "Beta-adrenergic signaling: GPCR pathway and desensitization.", + "path": "Contributed/BNGPlayground_Examples/biology/betaadrenergicresponse/beta-adrenergic-response.bngl", + "file": "beta-adrenergic-response.bngl", + "tags": [ + "beta", + "adrenergic", + "response", + "epi", + "betar", + "gs", + "ac", + "arr", + "camp" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "BigApple_m1", + "name": "Mallela 2021 - COVID-19 City Models - BigApple_m1", + "description": "Parameter-fit COVID-19 epidemiological models for major US cities.", + "path": "Published/Mallela2021_Cities/BigApple_m1.bngl", + "file": "BigApple_m1.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "BigD_m4", + "name": "Mallela 2021 - COVID-19 City Models - BigD_m4", + "description": "Parameter-fit COVID-19 epidemiological models for major US cities.", + "path": "Published/Mallela2021_Cities/BigD_m4.bngl", + "file": "BigD_m4.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "Binghamton_NY_Binghamton_NY", + "name": "Mallela 2022 - COVID-19 MSA Models - Binghamton_NY_Binghamton_NY", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Binghamton_NY_Binghamton_NY.bngl", + "file": "Binghamton_NY_Binghamton_NY.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Birmingham-Hoover_AL_Birmingham-Hoover_AL", + "name": "Mallela 2022 - COVID-19 MSA Models - Birmingham-Hoover_AL_Birmingham-Hoover_AL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Birmingham-Hoover_AL_Birmingham-Hoover_AL.bngl", + "file": "Birmingham-Hoover_AL_Birmingham-Hoover_AL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "birth-death", + "name": "Birth-Death", + "description": "Stochastic process", + "path": "Tutorials/NativeTutorials/birthdeath/birth-death.bngl", + "file": "birth-death.bngl", + "tags": [ + "published", + "tutorial", + "native", + "birth", + "death", + "a", + "generate_network", + "saveconcentrations", + "simulate" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "bistable-toggle-switch", + "name": "bistable toggle switch", + "description": "Genetic Toggle Switch: Mutual repression circuit.", + "path": "Contributed/BNGPlayground_Examples/biology/bistabletoggleswitch/bistable-toggle-switch.bngl", + "file": "bistable-toggle-switch.bngl", + "tags": [ + "bistable", + "toggle", + "switch", + "proml", + "promr", + "tf_l", + "tf_r", + "ind_l", + "ind_r" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "BLBR", + "name": "BLBR", + "description": "title: BLBR.bngl", + "path": "Tutorials/NativeTutorials/BLBR/BLBR.bngl", + "file": "BLBR.bngl", + "tags": [ + "blbr", + "setoption", + "r", + "l", + "simulate" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "Blinov_2006", + "name": "Blinov 2006", + "description": "Phosphotyrosine signaling", + "path": "Published/Blinov2006/Blinov_2006.bngl", + "file": "Blinov_2006.bngl", + "tags": [ + "published", + "blinov", + "2006", + "egf", + "egfr", + "shc", + "grb2", + "sos" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "Blinov_egfr", + "name": "Blinov egfr", + "description": "EGFR signaling model", + "path": "Published/Blinovegfr/Blinov_egfr.bngl", + "file": "Blinov_egfr.bngl", + "tags": [ + "published", + "nfsim", + "blinov", + "egfr", + "egf", + "grb2", + "shc", + "simulate_nf" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Blinov_ran", + "name": "Blinov ran", + "description": "Ran GTPase cycle", + "path": "Published/Blinovran/Blinov_ran.bngl", + "file": "Blinov_ran.bngl", + "tags": [ + "published", + "nfsim", + "blinov", + "ran", + "c", + "rcc1", + "simulate_nf" + ], + "category": "regulation", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "blood-coagulation-thrombin", + "name": "blood coagulation thrombin", + "description": "Blood coagulation: Thrombin burst and feedback propagation.", + "path": "Contributed/BNGPlayground_Examples/biology/bloodcoagulationthrombin/blood-coagulation-thrombin.bngl", + "file": "blood-coagulation-thrombin.bngl", + "tags": [ + "blood", + "coagulation", + "thrombin", + "tf", + "factorx", + "factorv", + "prothrombin", + "fibrinogen", + "at" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Bloomington_IN_Bloomington_IN", + "name": "Mallela 2022 - COVID-19 MSA Models - Bloomington_IN_Bloomington_IN", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Bloomington_IN_Bloomington_IN.bngl", + "file": "Bloomington_IN_Bloomington_IN.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Bloomsburg-Berwick_PA_Bloomsburg-Berwick_PA", + "name": "Mallela 2022 - COVID-19 MSA Models - Bloomsburg-Berwick_PA_Bloomsburg-Berwick_PA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Bloomsburg-Berwick_PA_Bloomsburg-Berwick_PA.bngl", + "file": "Bloomsburg-Berwick_PA_Bloomsburg-Berwick_PA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "bmp-signaling", + "name": "bmp signaling", + "description": "BMP-Smad signaling: Developmental gradient relay.", + "path": "Contributed/BNGPlayground_Examples/biology/bmpsignaling/bmp-signaling.bngl", + "file": "bmp-signaling.bngl", + "tags": [ + "bmp", + "signaling", + "noggin", + "receptor1", + "receptor2", + "smad1", + "smad4", + "smad6" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "bng_error", + "name": "bng error", + "description": "Original values used to generate parabola.exp", + "path": "PyBioNetGen/tests/bngerror/bng_error.bngl", + "file": "bng_error.bngl", + "tags": [ + "bng", + "error", + "counter", + "y", + "generate_network", + "simulate" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "Boise_City_ID_Boise_City_ID", + "name": "Mallela 2022 - COVID-19 MSA Models - Boise_City_ID_Boise_City_ID", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Boise_City_ID_Boise_City_ID.bngl", + "file": "Boise_City_ID_Boise_City_ID.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Boston-Cambridge-Newton_MA-NH_Boston-Cambridge-Newton_MA-NH", + "name": "Mallela 2022 - COVID-19 MSA Models - Boston-Cambridge-Newton_MA-NH_Boston-Cambridge-Newton_MA-NH", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Boston-Cambridge-Newton_MA-NH_Boston-Cambridge-Newton_MA-NH.bngl", + "file": "Boston-Cambridge-Newton_MA-NH_Boston-Cambridge-Newton_MA-NH.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Boulder_CO_Boulder_CO", + "name": "Mallela 2022 - COVID-19 MSA Models - Boulder_CO_Boulder_CO", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Boulder_CO_Boulder_CO.bngl", + "file": "Boulder_CO_Boulder_CO.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Bowling_Green_KY_Bowling_Green_KY", + "name": "Mallela 2022 - COVID-19 MSA Models - Bowling_Green_KY_Bowling_Green_KY", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Bowling_Green_KY_Bowling_Green_KY.bngl", + "file": "Bowling_Green_KY_Bowling_Green_KY.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Bridgeport-Stamford-Norwalk_CT_Bridgeport-Stamford-Norwalk_CT", + "name": "Mallela 2022 - COVID-19 MSA Models - Bridgeport-Stamford-Norwalk_CT_Bridgeport-Stamford-Norwalk_CT", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Bridgeport-Stamford-Norwalk_CT_Bridgeport-Stamford-Norwalk_CT.bngl", + "file": "Bridgeport-Stamford-Norwalk_CT_Bridgeport-Stamford-Norwalk_CT.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "BrotherlyLove_m8", + "name": "Mallela 2021 - COVID-19 City Models - BrotherlyLove_m8", + "description": "Parameter-fit COVID-19 epidemiological models for major US cities.", + "path": "Published/Mallela2021_Cities/BrotherlyLove_m8.bngl", + "file": "BrotherlyLove_m8.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "Brownsville-Harlingen_TX_Brownsville-Harlingen_TX", + "name": "Mallela 2022 - COVID-19 MSA Models - Brownsville-Harlingen_TX_Brownsville-Harlingen_TX", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Brownsville-Harlingen_TX_Brownsville-Harlingen_TX.bngl", + "file": "Brownsville-Harlingen_TX_Brownsville-Harlingen_TX.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "brusselator-oscillator", + "name": "brusselator oscillator", + "description": "The Brusselator: Auto-catalytic chemical oscillator.", + "path": "Contributed/BNGPlayground_Examples/biology/brusselatoroscillator/brusselator-oscillator.bngl", + "file": "brusselator-oscillator.bngl", + "tags": [ + "brusselator", + "oscillator", + "a", + "b", + "x", + "y" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Buffalo-Niagara_Falls_NY_Buffalo-Niagara_Falls_NY", + "name": "Mallela 2022 - COVID-19 MSA Models - Buffalo-Niagara_Falls_NY_Buffalo-Niagara_Falls_NY", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Buffalo-Niagara_Falls_NY_Buffalo-Niagara_Falls_NY.bngl", + "file": "Buffalo-Niagara_Falls_NY_Buffalo-Niagara_Falls_NY.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Burlington_NC_Burlington_NC", + "name": "Mallela 2022 - COVID-19 MSA Models - Burlington_NC_Burlington_NC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Burlington_NC_Burlington_NC.bngl", + "file": "Burlington_NC_Burlington_NC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Burlington-South_Burlington_VT_Burlington-South_Burlington_VT", + "name": "Mallela 2022 - COVID-19 MSA Models - Burlington-South_Burlington_VT_Burlington-South_Burlington_VT", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Burlington-South_Burlington_VT_Burlington-South_Burlington_VT.bngl", + "file": "Burlington-South_Burlington_VT_Burlington-South_Burlington_VT.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "calcineurin-nfat-pathway", + "name": "calcineurin nfat pathway", + "description": "NFAT Signaling: Calcium-dependent nuclear translocation.", + "path": "Contributed/BNGPlayground_Examples/biology/calcineurinnfatpathway/calcineurin-nfat-pathway.bngl", + "file": "calcineurin-nfat-pathway.bngl", + "tags": [ + "calcineurin", + "nfat", + "pathway", + "ca", + "cam", + "can", + "rcan1" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "calcium-spike-signaling", + "name": "calcium spike signaling", + "description": "Calcium spikes: Oscillations driven by IP3R and CICR feedback.", + "path": "Contributed/BNGPlayground_Examples/biology/calciumspikesignaling/calcium-spike-signaling.bngl", + "file": "calcium-spike-signaling.bngl", + "tags": [ + "calcium", + "spike", + "signaling", + "plc", + "ip3", + "ca", + "stim1" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "California-Lexington_Park_MD_California-Lexington_Park_MD", + "name": "Mallela 2022 - COVID-19 MSA Models - California-Lexington_Park_MD_California-Lexington_Park_MD", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/California-Lexington_Park_MD_California-Lexington_Park_MD.bngl", + "file": "California-Lexington_Park_MD_California-Lexington_Park_MD.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "CaMKII_holo", + "name": "Ordyan 2020: CaMKII holo", + "description": "CaMKII holo", + "path": "Published/Ordyan2020/CaMKIIholo/CaMKII_holo.bngl", + "file": "CaMKII_holo.bngl", + "tags": [ + "published", + "neuroscience", + "camkii", + "holo", + "ca", + "cam", + "ng", + "pp1", + "time_counter" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Canton-Massillon_OH_Canton-Massillon_OH", + "name": "Mallela 2022 - COVID-19 MSA Models - Canton-Massillon_OH_Canton-Massillon_OH", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Canton-Massillon_OH_Canton-Massillon_OH.bngl", + "file": "Canton-Massillon_OH_Canton-Massillon_OH.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "CaOscillate_Func", + "name": "CaOscillate_Func", + "description": "Calcium oscillations (func)", + "path": "Contributed/BNGPlayground_Validation/CaOscillateFunc/CaOscillate_Func.bngl", + "file": "CaOscillate_Func.bngl", + "tags": [ + "validation", + "caoscillate", + "func", + "null", + "ga", + "plc", + "ca" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "CaOscillate_Sat", + "name": "CaOscillate_Sat", + "description": "Calcium oscillations (sat)", + "path": "Contributed/BNGPlayground_Validation/CaOscillateSat/CaOscillate_Sat.bngl", + "file": "CaOscillate_Sat.bngl", + "tags": [ + "validation", + "caoscillate", + "sat", + "null", + "ga", + "plc", + "ca" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "Cape_Coral-Fort_Myers_FL_Cape_Coral-Fort_Myers_FL", + "name": "Mallela 2022 - COVID-19 MSA Models - Cape_Coral-Fort_Myers_FL_Cape_Coral-Fort_Myers_FL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Cape_Coral-Fort_Myers_FL_Cape_Coral-Fort_Myers_FL.bngl", + "file": "Cape_Coral-Fort_Myers_FL_Cape_Coral-Fort_Myers_FL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Carbondale-Marion_IL_Carbondale-Marion_IL", + "name": "Mallela 2022 - COVID-19 MSA Models - Carbondale-Marion_IL_Carbondale-Marion_IL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Carbondale-Marion_IL_Carbondale-Marion_IL.bngl", + "file": "Carbondale-Marion_IL_Carbondale-Marion_IL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "caspase-activation-loop", + "name": "caspase activation loop", + "description": "Caspase activation loop: The executioner feedback system.", + "path": "Contributed/BNGPlayground_Examples/biology/caspaseactivationloop/caspase-activation-loop.bngl", + "file": "caspase-activation-loop.bngl", + "tags": [ + "caspase", + "activation", + "loop", + "deathligand", + "caspase8", + "caspase3", + "iap", + "flip" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "catalysis", + "name": "catalysis", + "description": "Catalysis in energy BNG", + "path": "Contributed/BNGPlayground_Validation/catalysis/catalysis.bngl", + "file": "catalysis.bngl", + "tags": [ + "validation", + "catalysis", + "version", + "setoption", + "s", + "kinase", + "pptase", + "atp", + "adp" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "cBNGL_simple", + "name": "cBNGL simple", + "description": "A simplified signal transduction model including the following processes:", + "path": "Tutorials/NativeTutorials/cBNGLsimple/cBNGL_simple.bngl", + "file": "cBNGL_simple.bngl", + "tags": [ + "cbngl", + "simple", + "l", + "r", + "tf", + "dna", + "mrna", + "p" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "cd40-signaling", + "name": "cd40 signaling", + "description": "CD40 Signaling: B-cell activation and TRAF-mediated relay.", + "path": "Contributed/BNGPlayground_Examples/biology/cd40signaling/cd40-signaling.bngl", + "file": "cd40-signaling.bngl", + "tags": [ + "cd40", + "signaling", + "cd40l", + "traf", + "ikk", + "nik", + "nfkb", + "relb" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Cedar_Rapids_IA_Cedar_Rapids_IA", + "name": "Mallela 2022 - COVID-19 MSA Models - Cedar_Rapids_IA_Cedar_Rapids_IA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Cedar_Rapids_IA_Cedar_Rapids_IA.bngl", + "file": "Cedar_Rapids_IA_Cedar_Rapids_IA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "cell-cycle-checkpoint", + "name": "cell cycle checkpoint", + "description": "Cell cycle checkpoint: Mitotic entry switch (CDK1).", + "path": "Contributed/BNGPlayground_Examples/biology/cellcyclecheckpoint/cell-cycle-checkpoint.bngl", + "file": "cell-cycle-checkpoint.bngl", + "tags": [ + "cell", + "cycle", + "checkpoint", + "cyclin", + "cdk", + "cdc25", + "wee1", + "apc", + "p21" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Chambersburg-Waynesboro_PA_Chambersburg-Waynesboro_PA", + "name": "Mallela 2022 - COVID-19 MSA Models - Chambersburg-Waynesboro_PA_Chambersburg-Waynesboro_PA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Chambersburg-Waynesboro_PA_Chambersburg-Waynesboro_PA.bngl", + "file": "Chambersburg-Waynesboro_PA_Chambersburg-Waynesboro_PA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Champaign-Urbana_IL_Champaign-Urbana_IL", + "name": "Mallela 2022 - COVID-19 MSA Models - Champaign-Urbana_IL_Champaign-Urbana_IL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Champaign-Urbana_IL_Champaign-Urbana_IL.bngl", + "file": "Champaign-Urbana_IL_Champaign-Urbana_IL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Charleston_WV_Charleston_WV", + "name": "Mallela 2022 - COVID-19 MSA Models - Charleston_WV_Charleston_WV", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Charleston_WV_Charleston_WV.bngl", + "file": "Charleston_WV_Charleston_WV.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Charleston-North_Charleston_SC_Charleston-North_Charleston_SC", + "name": "Mallela 2022 - COVID-19 MSA Models - Charleston-North_Charleston_SC_Charleston-North_Charleston_SC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Charleston-North_Charleston_SC_Charleston-North_Charleston_SC.bngl", + "file": "Charleston-North_Charleston_SC_Charleston-North_Charleston_SC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Charlotte-Concord-Gastonia_NC-SC_Charlotte-Concord-Gastonia_NC-SC", + "name": "Mallela 2022 - COVID-19 MSA Models - Charlotte-Concord-Gastonia_NC-SC_Charlotte-Concord-Gastonia_NC-SC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Charlotte-Concord-Gastonia_NC-SC_Charlotte-Concord-Gastonia_NC-SC.bngl", + "file": "Charlotte-Concord-Gastonia_NC-SC_Charlotte-Concord-Gastonia_NC-SC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Charlottesville_VA_Charlottesville_VA", + "name": "Mallela 2022 - COVID-19 MSA Models - Charlottesville_VA_Charlottesville_VA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Charlottesville_VA_Charlottesville_VA.bngl", + "file": "Charlottesville_VA_Charlottesville_VA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Chattanooga_TN-GA_Chattanooga_TN-GA", + "name": "Mallela 2022 - COVID-19 MSA Models - Chattanooga_TN-GA_Chattanooga_TN-GA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Chattanooga_TN-GA_Chattanooga_TN-GA.bngl", + "file": "Chattanooga_TN-GA_Chattanooga_TN-GA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Chattaraj_2021", + "name": "Chattaraj 2021", + "description": "NFkB oscillations", + "path": "Published/Chattaraj2021/Chattaraj_2021.bngl", + "file": "Chattaraj_2021.bngl", + "tags": [ + "published", + "chattaraj", + "2021", + "nephrin", + "nck", + "nwasp", + "writexml" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "checkpoint-kinase-signaling", + "name": "checkpoint kinase signaling", + "description": "DNA Checkpoint: ATM/ATR mediated damage sensing.", + "path": "Contributed/BNGPlayground_Examples/biology/checkpointkinasesignaling/checkpoint-kinase-signaling.bngl", + "file": "checkpoint-kinase-signaling.bngl", + "tags": [ + "checkpoint", + "kinase", + "signaling", + "dna", + "atm", + "atr", + "chk1", + "chk2", + "p53", + "cdc25" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Cheemalavagu_JAK_STAT", + "name": "Cheemalavagu 2024", + "description": "JAK-STAT signaling", + "path": "Published/CheemalavaguJAKSTAT/Cheemalavagu_JAK_STAT.bngl", + "file": "Cheemalavagu_JAK_STAT.bngl", + "tags": [ + "published", + "literature", + "signaling", + "cheemalavagu", + "jak", + "stat", + "l1", + "il6r", + "gp130", + "l2", + "il10r1", + "il10r2", + "jak1", + "jak2" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "chemistry", + "name": "chemistry", + "description": "Basic chemical reactions", + "path": "Tutorials/General/chemistry/chemistry.bngl", + "file": "chemistry.bngl", + "tags": [ + "published", + "tutorials", + "chemistry", + "a", + "b", + "c", + "d", + "e" + ], + "category": "tutorial", + "bng2_compatible": false, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "chemotaxis-signal-transduction", + "name": "chemotaxis signal transduction", + "description": "Bacterial Chemotaxis: Adaptation through methylation.", + "path": "Contributed/BNGPlayground_Examples/biology/chemotaxissignaltransduction/chemotaxis-signal-transduction.bngl", + "file": "chemotaxis-signal-transduction.bngl", + "tags": [ + "chemotaxis", + "signal", + "transduction", + "attr", + "mcp", + "chea", + "chey", + "cheb", + "motor" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Chicago-Naperville-Elgin_IL-IN-WI_Chicago-Naperville-Elgin_IL-IN-WI", + "name": "Mallela 2022 - COVID-19 MSA Models - Chicago-Naperville-Elgin_IL-IN-WI_Chicago-Naperville-Elgin_IL-IN-WI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Chicago-Naperville-Elgin_IL-IN-WI_Chicago-Naperville-Elgin_IL-IN-WI.bngl", + "file": "Chicago-Naperville-Elgin_IL-IN-WI_Chicago-Naperville-Elgin_IL-IN-WI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Chylek_library", + "name": "Chylek library", + "description": "Created by BioNetGen 2.2.6", + "path": "Tutorials/NativeTutorials/Chyleklibrary/Chylek_library.bngl", + "file": "Chylek_library.bngl", + "tags": [ + "chylek", + "library", + "kflatplcg", + "kfgrb2gab2", + "kflcp2plcg1", + "kd1", + "kd2", + "sink", + "pre", + "pag1" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "ChylekFceRI_2014", + "name": "Chylek 2014 (FceRI)", + "description": "FceRI signaling", + "path": "Published/ChylekFceRI2014/ChylekFceRI_2014.bngl", + "file": "ChylekFceRI_2014.bngl", + "tags": [ + "published", + "immunology", + "chylekfceri", + "2014", + "lig", + "rec", + "lyn", + "fyn", + "syk", + "pag1", + "csk", + "lat" + ], + "category": "immunology", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "ChylekTCR_2014", + "name": "Chylek 2014 (TCR)", + "description": "TCR signaling", + "path": "Published/ChylekTCR2014/ChylekTCR_2014.bngl", + "file": "ChylekTCR_2014.bngl", + "tags": [ + "published", + "immunology", + "chylektcr", + "2014", + "lig1", + "lig2", + "lig3", + "tcr", + "cd28", + "lck", + "itk", + "zap70" + ], + "category": "immunology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Cincinnati_OH-KY-IN_Cincinnati_OH-KY-IN", + "name": "Mallela 2022 - COVID-19 MSA Models - Cincinnati_OH-KY-IN_Cincinnati_OH-KY-IN", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Cincinnati_OH-KY-IN_Cincinnati_OH-KY-IN.bngl", + "file": "Cincinnati_OH-KY-IN_Cincinnati_OH-KY-IN.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "circadian-oscillator", + "name": "circadian oscillator", + "description": "title: Vilar Circadian Oscillator Model", + "path": "Contributed/BNGPlayground_Examples/biology/circadianoscillator/circadian-oscillator.bngl", + "file": "circadian-oscillator.bngl", + "tags": [ + "circadian", + "oscillator", + "a", + "r", + "pa", + "pr", + "mrna_a", + "mrna_r" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "CircadianOscillator", + "name": "CircadianOscillator", + "description": "Circadian rhythm", + "path": "Tutorials/NativeTutorials/CircadianOscillator/CircadianOscillator.bngl", + "file": "CircadianOscillator.bngl", + "tags": [ + "published", + "tutorial", + "native", + "circadianoscillator", + "a", + "r", + "pa", + "pr", + "mrna_a", + "mrna_r" + ], + "category": "tutorial", + "bng2_compatible": false, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "Clarksville_TN-KY_Clarksville_TN-KY", + "name": "Mallela 2022 - COVID-19 MSA Models - Clarksville_TN-KY_Clarksville_TN-KY", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Clarksville_TN-KY_Clarksville_TN-KY.bngl", + "file": "Clarksville_TN-KY_Clarksville_TN-KY.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Cleveland-Elyria_OH_Cleveland-Elyria_OH", + "name": "Mallela 2022 - COVID-19 MSA Models - Cleveland-Elyria_OH_Cleveland-Elyria_OH", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Cleveland-Elyria_OH_Cleveland-Elyria_OH.bngl", + "file": "Cleveland-Elyria_OH_Cleveland-Elyria_OH.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "clock-bmal1-gene-circuit", + "name": "clock bmal1 gene circuit", + "description": "BMAL1-CLOCK: The master activator of the circadian circuit.", + "path": "Contributed/BNGPlayground_Examples/biology/clockbmal1genecircuit/clock-bmal1-gene-circuit.bngl", + "file": "clock-bmal1-gene-circuit.bngl", + "tags": [ + "clock", + "bmal1", + "gene", + "circuit", + "ror", + "reverb", + "dna" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "College_Station-Bryan_TX_College_Station-Bryan_TX", + "name": "Mallela 2022 - COVID-19 MSA Models - College_Station-Bryan_TX_College_Station-Bryan_TX", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/College_Station-Bryan_TX_College_Station-Bryan_TX.bngl", + "file": "College_Station-Bryan_TX_College_Station-Bryan_TX.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Colorado_Springs_CO_Colorado_Springs_CO", + "name": "Mallela 2022 - COVID-19 MSA Models - Colorado_Springs_CO_Colorado_Springs_CO", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Colorado_Springs_CO_Colorado_Springs_CO.bngl", + "file": "Colorado_Springs_CO_Colorado_Springs_CO.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Columbia_SC_Columbia_SC", + "name": "Mallela 2022 - COVID-19 MSA Models - Columbia_SC_Columbia_SC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Columbia_SC_Columbia_SC.bngl", + "file": "Columbia_SC_Columbia_SC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Columbus_GA-AL_Columbus_GA-AL", + "name": "Mallela 2022 - COVID-19 MSA Models - Columbus_GA-AL_Columbus_GA-AL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Columbus_GA-AL_Columbus_GA-AL.bngl", + "file": "Columbus_GA-AL_Columbus_GA-AL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Columbus_IN_Columbus_IN", + "name": "Mallela 2022 - COVID-19 MSA Models - Columbus_IN_Columbus_IN", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Columbus_IN_Columbus_IN.bngl", + "file": "Columbus_IN_Columbus_IN.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Columbus_OH_Columbus_OH", + "name": "Mallela 2022 - COVID-19 MSA Models - Columbus_OH_Columbus_OH", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Columbus_OH_Columbus_OH.bngl", + "file": "Columbus_OH_Columbus_OH.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "compartment_endocytosis", + "name": "compartment endocytosis", + "description": "Model: compartment_endocytosis.bngl", + "path": "Contributed/BNGPlayground_Examples/compartments/compartmentendocytosis/compartment_endocytosis.bngl", + "file": "compartment_endocytosis.bngl", + "tags": [ + "compartment", + "endocytosis", + "l", + "r", + "t" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "compartment_membrane_bound", + "name": "compartment membrane bound", + "description": "Model: compartment_membrane_bound.bngl", + "path": "Contributed/BNGPlayground_Examples/compartments/compartmentmembranebound/compartment_membrane_bound.bngl", + "file": "compartment_membrane_bound.bngl", + "tags": [ + "compartment", + "membrane", + "bound", + "p", + "lipid", + "generate_network", + "simulate" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "compartment_nested_transport", + "name": "compartment nested transport", + "description": "Model: compartment_nested_transport.bngl", + "path": "Contributed/BNGPlayground_Examples/compartments/compartmentnestedtransport/compartment_nested_transport.bngl", + "file": "compartment_nested_transport.bngl", + "tags": [ + "compartment", + "nested", + "transport", + "s", + "generate_network", + "simulate" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "compartment_nuclear_transport", + "name": "compartment nuclear transport", + "description": "Model: compartment_nuclear_transport.bngl", + "path": "Contributed/BNGPlayground_Examples/compartments/compartmentnucleartransport/compartment_nuclear_transport.bngl", + "file": "compartment_nuclear_transport.bngl", + "tags": [ + "compartment", + "nuclear", + "transport", + "tf", + "generate_network", + "simulate" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "compartment_organelle_exchange", + "name": "compartment organelle exchange", + "description": "Model: compartment_organelle_exchange.bngl", + "path": "Contributed/BNGPlayground_Examples/compartments/compartmentorganelleexchange/compartment_organelle_exchange.bngl", + "file": "compartment_organelle_exchange.bngl", + "tags": [ + "compartment", + "organelle", + "exchange", + "cargo", + "generate_network", + "simulate" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "competitive-enzyme-inhibition", + "name": "competitive enzyme inhibition", + "description": "Competitive inhibition: Inhibitor (I) and Substrate (S) compete for the same", + "path": "Contributed/BNGPlayground_Examples/biology/competitiveenzymeinhibition/competitive-enzyme-inhibition.bngl", + "file": "competitive-enzyme-inhibition.bngl", + "tags": [ + "competitive", + "enzyme", + "inhibition", + "substrate1", + "substrate2", + "inhibitor", + "product" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "complement-activation-cascade", + "name": "complement activation cascade", + "description": "Complement System: Pathogen opsonization and the Alternative Pathway.", + "path": "Contributed/BNGPlayground_Examples/biology/complementactivationcascade/complement-activation-cascade.bngl", + "file": "complement-activation-cascade.bngl", + "tags": [ + "complement", + "activation", + "cascade", + "c3", + "fb", + "c5", + "mac", + "surf" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "ComplexDegradation", + "name": "ComplexDegradation", + "description": "Degradation model", + "path": "Tutorials/NativeTutorials/ComplexDegradation/ComplexDegradation.bngl", + "file": "ComplexDegradation.bngl", + "tags": [ + "published", + "tutorial", + "native", + "complexdegradation", + "a", + "b", + "c", + "generate_network" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "contact-inhibition-hippo-yap", + "name": "contact inhibition hippo yap", + "description": "Hippo Pathway: Contact inhibition and YAP regulation.", + "path": "Contributed/BNGPlayground_Examples/biology/contactinhibitionhippoyap/contact-inhibition-hippo-yap.bngl", + "file": "contact-inhibition-hippo-yap.bngl", + "tags": [ + "contact", + "inhibition", + "hippo", + "yap", + "mst", + "lats", + "tead" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "continue", + "name": "continue", + "description": "Test trajectory continuation", + "path": "Contributed/BNGPlayground_Validation/continue/continue.bngl", + "file": "continue.bngl", + "tags": [ + "validation", + "continue", + "a", + "b", + "c", + "trash" + ], + "category": "validation", + "bng2_compatible": false, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "cooperative-binding", + "name": "cooperative binding", + "description": "Cooperative binding: The binding of the first ligand molecule increases", + "path": "Contributed/BNGPlayground_Examples/biology/cooperativebinding/cooperative-binding.bngl", + "file": "cooperative-binding.bngl", + "tags": [ + "cooperative", + "binding", + "receptor", + "ligand", + "competitor" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Corpus_Christi_TX_Corpus_Christi_TX", + "name": "Mallela 2022 - COVID-19 MSA Models - Corpus_Christi_TX_Corpus_Christi_TX", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Corpus_Christi_TX_Corpus_Christi_TX.bngl", + "file": "Corpus_Christi_TX_Corpus_Christi_TX.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Creamer_2012", + "name": "Creamer 2012", + "description": "Initial values", + "path": "Tutorials/NativeTutorials/Creamer2012/Creamer_2012.bngl", + "file": "Creamer_2012.bngl", + "tags": [ + "creamer", + "2012", + "egf", + "hrg", + "egfr", + "erbb2", + "erbb3", + "erbb4", + "p52shc1", + "grb2" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "Crestview-Fort_Walton_Beach-Destin_FL_Crestview-Fort_Walton_Beach-Destin_FL", + "name": "Mallela 2022 - COVID-19 MSA Models - Crestview-Fort_Walton_Beach-Destin_FL_Crestview-Fort_Walton_Beach-Destin_FL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Crestview-Fort_Walton_Beach-Destin_FL_Crestview-Fort_Walton_Beach-Destin_FL.bngl", + "file": "Crestview-Fort_Walton_Beach-Destin_FL_Crestview-Fort_Walton_Beach-Destin_FL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "cs_diffie_hellman", + "name": "cs diffie hellman", + "description": "Model: cs_diffie_hellman.bngl", + "path": "Contributed/BNGPlayground_Examples/cs/csdiffiehellman/cs_diffie_hellman.bngl", + "file": "cs_diffie_hellman.bngl", + "tags": [ + "cs", + "diffie", + "hellman", + "agent", + "target", + "dshareda_dt", + "dsharedb_dt" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "cs_hash_function", + "name": "cs hash function", + "description": "Cryptographic Hash Function in BNGL", + "path": "Contributed/BNGPlayground_Examples/cs/cshashfunction/cs_hash_function.bngl", + "file": "cs_hash_function.bngl", + "tags": [ + "cs", + "hash", + "function", + "b0", + "b1", + "b2", + "b3", + "h0", + "h1", + "h2", + "h3" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "cs_huffman", + "name": "cs huffman", + "description": "Model: cs_huffman.bngl", + "path": "Contributed/BNGPlayground_Examples/cs/cshuffman/cs_huffman.bngl", + "file": "cs_huffman.bngl", + "tags": [ + "cs", + "huffman", + "char", + "hnode", + "generate_network", + "simulate" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "cs_monte_carlo_pi", + "name": "cs monte carlo pi", + "description": "Model: cs_monte_carlo_pi.bngl", + "path": "Contributed/BNGPlayground_Examples/cs/csmontecarlopi/cs_monte_carlo_pi.bngl", + "file": "cs_monte_carlo_pi.bngl", + "tags": [ + "cs", + "monte", + "carlo", + "pi", + "trial", + "pi_estimate", + "generate_network", + "simulate" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "cs_pagerank", + "name": "cs pagerank", + "description": "Model: cs_pagerank.bngl", + "path": "Contributed/BNGPlayground_Examples/cs/cspagerank/cs_pagerank.bngl", + "file": "cs_pagerank.bngl", + "tags": [ + "cs", + "pagerank", + "teleport", + "page" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "cs_pid_controller", + "name": "cs pid controller", + "description": "PID Controller in BNGL", + "path": "Contributed/BNGPlayground_Examples/cs/cspidcontroller/cs_pid_controller.bngl", + "file": "cs_pid_controller.bngl", + "tags": [ + "cs", + "pid", + "controller", + "sensor", + "accumulator", + "leakyerror", + "actuator", + "disturbance" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "cs_regex_nfa", + "name": "cs regex nfa", + "description": "Model: cs_regex_nfa.bngl", + "path": "Contributed/BNGPlayground_Examples/cs/csregexnfa/cs_regex_nfa.bngl", + "file": "cs_regex_nfa.bngl", + "tags": [ + "cs", + "regex", + "nfa", + "state", + "char", + "generate_network", + "simulate", + "setparameter" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Cumberland_MD-WV_Cumberland_MD-WV", + "name": "Mallela 2022 - COVID-19 MSA Models - Cumberland_MD-WV_Cumberland_MD-WV", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Cumberland_MD-WV_Cumberland_MD-WV.bngl", + "file": "Cumberland_MD-WV_Cumberland_MD-WV.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Dallas", + "name": "Dallas", + "description": "- This model is intended to be consistent with the compartmental model", + "path": "Published/VaxAndVariants/Dallas/Dallas.bngl", + "file": "Dallas.bngl", + "tags": [ + "dallas", + "counter", + "fdcs", + "s", + "sv", + "e", + "a", + "i", + "v" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Dallas-Fort_Worth-Arlington_TX_Dallas-Fort_Worth-Arlington_TX", + "name": "Mallela 2022 - COVID-19 MSA Models - Dallas-Fort_Worth-Arlington_TX_Dallas-Fort_Worth-Arlington_TX", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Dallas-Fort_Worth-Arlington_TX_Dallas-Fort_Worth-Arlington_TX.bngl", + "file": "Dallas-Fort_Worth-Arlington_TX_Dallas-Fort_Worth-Arlington_TX.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Dalton_GA_Dalton_GA", + "name": "Mallela 2022 - COVID-19 MSA Models - Dalton_GA_Dalton_GA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Dalton_GA_Dalton_GA.bngl", + "file": "Dalton_GA_Dalton_GA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Daphne-Fairhope-Foley_AL_Daphne-Fairhope-Foley_AL", + "name": "Mallela 2022 - COVID-19 MSA Models - Daphne-Fairhope-Foley_AL_Daphne-Fairhope-Foley_AL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Daphne-Fairhope-Foley_AL_Daphne-Fairhope-Foley_AL.bngl", + "file": "Daphne-Fairhope-Foley_AL_Daphne-Fairhope-Foley_AL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Davenport-Moline-Rock_Island_IA-IL_Davenport-Moline-Rock_Island_IA-IL", + "name": "Mallela 2022 - COVID-19 MSA Models - Davenport-Moline-Rock_Island_IA-IL_Davenport-Moline-Rock_Island_IA-IL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Davenport-Moline-Rock_Island_IA-IL_Davenport-Moline-Rock_Island_IA-IL.bngl", + "file": "Davenport-Moline-Rock_Island_IA-IL_Davenport-Moline-Rock_Island_IA-IL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Dayton_OH_Dayton_OH", + "name": "Mallela 2022 - COVID-19 MSA Models - Dayton_OH_Dayton_OH", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Dayton_OH_Dayton_OH.bngl", + "file": "Dayton_OH_Dayton_OH.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "DC_m6", + "name": "Mallela 2021 - COVID-19 City Models - DC_m6", + "description": "Parameter-fit COVID-19 epidemiological models for major US cities.", + "path": "Published/Mallela2021_Cities/DC_m6.bngl", + "file": "DC_m6.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "degranulation_model", + "name": "PyBNG: Degranulation model", + "description": "Degranulation model", + "path": "PyBioNetGen/core/degranulationmodel/degranulation_model.bngl", + "file": "degranulation_model.bngl", + "tags": [ + "published", + "pybng", + "degranulation", + "model", + "ag", + "r", + "syk", + "ship1", + "x", + "pip3", + "h" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "Deltona-Daytona_Beach-Ormond_Beach_FL_Deltona-Daytona_Beach-Ormond_Beach_FL", + "name": "Mallela 2022 - COVID-19 MSA Models - Deltona-Daytona_Beach-Ormond_Beach_FL_Deltona-Daytona_Beach-Ormond_Beach_FL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Deltona-Daytona_Beach-Ormond_Beach_FL_Deltona-Daytona_Beach-Ormond_Beach_FL.bngl", + "file": "Deltona-Daytona_Beach-Ormond_Beach_FL_Deltona-Daytona_Beach-Ormond_Beach_FL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Denver-Aurora-Lakewood_CO_Denver-Aurora-Lakewood_CO", + "name": "Mallela 2022 - COVID-19 MSA Models - Denver-Aurora-Lakewood_CO_Denver-Aurora-Lakewood_CO", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Denver-Aurora-Lakewood_CO_Denver-Aurora-Lakewood_CO.bngl", + "file": "Denver-Aurora-Lakewood_CO_Denver-Aurora-Lakewood_CO.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Des_Moines-West_Des_Moines_IA_Des_Moines-West_Des_Moines_IA", + "name": "Mallela 2022 - COVID-19 MSA Models - Des_Moines-West_Des_Moines_IA_Des_Moines-West_Des_Moines_IA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Des_Moines-West_Des_Moines_IA_Des_Moines-West_Des_Moines_IA.bngl", + "file": "Des_Moines-West_Des_Moines_IA_Des_Moines-West_Des_Moines_IA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Detroit_Warren_Dearborn_MI_Detroit_Warren_Dearborn_MI", + "name": "Mallela 2022 - COVID-19 MSA Models - Detroit_Warren_Dearborn_MI_Detroit_Warren_Dearborn_MI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Detroit_Warren_Dearborn_MI_Detroit_Warren_Dearborn_MI.bngl", + "file": "Detroit_Warren_Dearborn_MI_Detroit_Warren_Dearborn_MI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Detroit-Warren-Dearborn_MI_Detroit-Warren-Dearborn_MI", + "name": "Mallela 2022 - COVID-19 MSA Models - Detroit-Warren-Dearborn_MI_Detroit-Warren-Dearborn_MI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Detroit-Warren-Dearborn_MI_Detroit-Warren-Dearborn_MI.bngl", + "file": "Detroit-Warren-Dearborn_MI_Detroit-Warren-Dearborn_MI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "dna-damage-repair", + "name": "dna damage repair", + "description": "DNA damage sensing and repair pathway (ATM-CHK2-p53 axis)", + "path": "Contributed/BNGPlayground_Examples/biology/dnadamagerepair/dna-damage-repair.bngl", + "file": "dna-damage-repair.bngl", + "tags": [ + "dna", + "damage", + "repair", + "mrn", + "atm", + "chk2", + "repaircomplex" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "dna-methylation-dynamics", + "name": "dna methylation dynamics", + "description": "DNA Methylation: Maintenance and de novo dynamics.", + "path": "Contributed/BNGPlayground_Examples/biology/dnamethylationdynamics/dna-methylation-dynamics.bngl", + "file": "dna-methylation-dynamics.bngl", + "tags": [ + "dna", + "methylation", + "dynamics", + "cpg", + "dnmt1", + "tet", + "v_maint", + "v_erase" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Dolan_2015", + "name": "Dolan 2015 - Dolan_2015", + "description": "Insulin signaling", + "path": "Published/Dolan2015/Dolan_2015.bngl", + "file": "Dolan_2015.bngl", + "tags": [ + "published", + "literature", + "signaling", + "dolan", + "2015", + "time", + "t", + "p", + "e", + "ir", + "d", + "p53_mrna", + "p53" + ], + "category": "other", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": "Dolan_2015" + }, + { + "id": "Dolan2015", + "name": "Dolan 2015 - Dolan2015", + "description": "Insulin signaling", + "path": "Published/Dolan2015/Dolan2015.bngl", + "file": "Dolan2015.bngl", + "tags": [ + "published", + "literature", + "signaling", + "dolan", + "2015", + "time", + "t", + "p", + "e", + "ir", + "d", + "p53_mrna", + "p53" + ], + "category": "other", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": "Dolan_2015" + }, + { + "id": "Dothan_AL_Dothan_AL", + "name": "Mallela 2022 - COVID-19 MSA Models - Dothan_AL_Dothan_AL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Dothan_AL_Dothan_AL.bngl", + "file": "Dothan_AL_Dothan_AL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Dover_DE_Dover_DE", + "name": "Mallela 2022 - COVID-19 MSA Models - Dover_DE_Dover_DE", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Dover_DE_Dover_DE.bngl", + "file": "Dover_DE_Dover_DE.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "dr5-apoptosis-signaling", + "name": "dr5 apoptosis signaling", + "description": "DR5 (TRAIL) Signaling: Extrinsic apoptosis and DISC formation.", + "path": "Contributed/BNGPlayground_Examples/biology/dr5apoptosissignaling/dr5-apoptosis-signaling.bngl", + "file": "dr5-apoptosis-signaling.bngl", + "tags": [ + "dr5", + "apoptosis", + "signaling", + "trail", + "fadd", + "caspase8", + "flip", + "death_signal" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "dual-site-phosphorylation", + "name": "dual site phosphorylation", + "description": "Dual-site phosphorylation: Requires two sequential modifications for activity.", + "path": "Contributed/BNGPlayground_Examples/biology/dualsitephosphorylation/dual-site-phosphorylation.bngl", + "file": "dual-site-phosphorylation.bngl", + "tags": [ + "dual", + "site", + "phosphorylation", + "kinase", + "phosphatase", + "substrate" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Dubuque_IA_Dubuque_IA", + "name": "Mallela 2022 - COVID-19 MSA Models - Dubuque_IA_Dubuque_IA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Dubuque_IA_Dubuque_IA.bngl", + "file": "Dubuque_IA_Dubuque_IA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Durham-Chapel_Hill_NC_Durham-Chapel_Hill_NC", + "name": "Mallela 2022 - COVID-19 MSA Models - Durham-Chapel_Hill_NC_Durham-Chapel_Hill_NC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Durham-Chapel_Hill_NC_Durham-Chapel_Hill_NC.bngl", + "file": "Durham-Chapel_Hill_NC_Durham-Chapel_Hill_NC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Dushek_2011", + "name": "Dushek 2011", + "description": "TCR signaling", + "path": "Published/Dushek2011/Dushek_2011.bngl", + "file": "Dushek_2011.bngl", + "tags": [ + "published", + "dushek", + "2011", + "s" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Dushek_2014", + "name": "Dushek 2014", + "description": "TCR signaling dynamics", + "path": "Published/Dushek2014/Dushek_2014.bngl", + "file": "Dushek_2014.bngl", + "tags": [ + "published", + "dushek", + "2014", + "e", + "f", + "b" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "e2f-rb-cell-cycle-switch", + "name": "e2f rb cell cycle switch", + "description": "E2F/Rb Switch: The G1/S transition gate.", + "path": "Contributed/BNGPlayground_Examples/biology/e2frbcellcycleswitch/e2f-rb-cell-cycle-switch.bngl", + "file": "e2f-rb-cell-cycle-switch.bngl", + "tags": [ + "e2f", + "rb", + "cell", + "cycle", + "switch", + "mitogen", + "cycd", + "cyce", + "p27" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "East_Stroudsburg_PA_East_Stroudsburg_PA", + "name": "Mallela 2022 - COVID-19 MSA Models - East_Stroudsburg_PA_East_Stroudsburg_PA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/East_Stroudsburg_PA_East_Stroudsburg_PA.bngl", + "file": "East_Stroudsburg_PA_East_Stroudsburg_PA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "eco_coevolution_host_parasite", + "name": "eco coevolution host parasite", + "description": "Model: eco_coevolution_host_parasite.bngl", + "path": "Contributed/BNGPlayground_Examples/ecology/ecocoevolutionhostparasite/eco_coevolution_host_parasite.bngl", + "file": "eco_coevolution_host_parasite.bngl", + "tags": [ + "eco", + "coevolution", + "host", + "parasite" + ], + "category": "ecology", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "eco_food_web_chaos_3sp", + "name": "eco food web chaos 3sp", + "description": "Model: eco_food_web_chaos_3sp.bngl", + "path": "Contributed/BNGPlayground_Examples/ecology/ecofoodwebchaos3sp/eco_food_web_chaos_3sp.bngl", + "file": "eco_food_web_chaos_3sp.bngl", + "tags": [ + "eco", + "food", + "web", + "chaos", + "3sp", + "r", + "c", + "p", + "k_eat_r", + "k_eat_c" + ], + "category": "ecology", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "eco_lotka_volterra_grid", + "name": "eco lotka volterra grid", + "description": "Model: eco_lotka_volterra_grid.bngl", + "path": "Contributed/BNGPlayground_Examples/ecology/ecolotkavolterragrid/eco_lotka_volterra_grid.bngl", + "file": "eco_lotka_volterra_grid.bngl", + "tags": [ + "eco", + "lotka", + "volterra", + "grid", + "prey", + "pred" + ], + "category": "ecology", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "eco_mutualism_obligate", + "name": "eco mutualism obligate", + "description": "Model: eco_mutualism_obligate.bngl", + "path": "Contributed/BNGPlayground_Examples/ecology/ecomutualismobligate/eco_mutualism_obligate.bngl", + "file": "eco_mutualism_obligate.bngl", + "tags": [ + "eco", + "mutualism", + "obligate", + "a", + "b" + ], + "category": "ecology", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "eco_rock_paper_scissors_spatial", + "name": "eco rock paper scissors spatial", + "description": "Model: eco_rock_paper_scissors_spatial.bngl", + "path": "Contributed/BNGPlayground_Examples/ecology/ecorockpaperscissorsspatial/eco_rock_paper_scissors_spatial.bngl", + "file": "eco_rock_paper_scissors_spatial.bngl", + "tags": [ + "eco", + "rock", + "paper", + "scissors", + "spatial", + "s", + "generate_network" + ], + "category": "ecology", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "egfr", + "name": "egfr", + "description": "Blinov et al. 2006. Biosystems, 83:136", + "path": "PyBioNetGen/core/egfr/egfr.bngl", + "file": "egfr.bngl", + "tags": [ + "egfr", + "egf", + "grb2", + "shc", + "sos" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "egfr_ground", + "name": "egfr ground", + "description": "Blinov et al. 2006. Biosystems, 83:136", + "path": "PyBioNetGen/core/egfrground/egfr_ground.bngl", + "file": "egfr_ground.bngl", + "tags": [ + "egfr", + "ground", + "egf", + "grb2", + "shc", + "sos" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "egfr_net", + "name": "egfr_net", + "description": "check detailed balanced", + "path": "Contributed/BNGPlayground_Validation/egfrnet/egfr_net.bngl", + "file": "egfr_net.bngl", + "tags": [ + "validation", + "egfr", + "net", + "egf", + "shc", + "grb2", + "sos" + ], + "category": "validation", + "bng2_compatible": false, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "egfr_net_red", + "name": "egfr_net_red", + "description": "Reduced state-space version of EGFR_NET.BNGL with equivalent ODE dynamics", + "path": "Contributed/BNGPlayground_Validation/egfrnetred/egfr_net_red.bngl", + "file": "egfr_net_red.bngl", + "tags": [ + "validation", + "egfr", + "net", + "red", + "egf", + "egfr_1", + "egfr_2", + "egfr_3", + "grb2", + "shc", + "sos" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "egfr_nf", + "name": "egfr nf", + "description": "Filename: example2_starting_point.bngl", + "path": "PyBioNetGen/core/egfrnf/egfr_nf.bngl", + "file": "egfr_nf.bngl", + "tags": [ + "egfr", + "nf", + "egf", + "clusters", + "pre1_dose", + "pre2_time" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "egfr_ode", + "name": "egfr ode", + "description": "Filename: example1.bngl", + "path": "PyBioNetGen/core/egfrode/egfr_ode.bngl", + "file": "egfr_ode.bngl", + "tags": [ + "egfr", + "ode", + "egf", + "pre1_dose", + "pre2_time", + "pre3_dose" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "egfr_ode", + "name": "PyBNG: EGFR ODE", + "description": "EGFR ODE", + "path": "PyBioNetGen/core/egfrode_published-models_PyBNG/egfr_ode.bngl", + "file": "egfr_ode.bngl", + "tags": [ + "published", + "pybng", + "egfr", + "ode", + "egf", + "pre1_dose", + "pre2_time", + "pre3_dose" + ], + "category": "other", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "egfr_path", + "name": "egfr_path", + "description": "The primary focus of the model developed by Kholodenko", + "path": "Contributed/BNGPlayground_Validation/egfrpath/egfr_path.bngl", + "file": "egfr_path.bngl", + "tags": [ + "validation", + "egfr", + "path", + "generate_network", + "setconcentration", + "simulate" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "egfr_simple", + "name": "egfr simple", + "description": "This is a demo model of EGFR signaling.", + "path": "Tutorials/NativeTutorials/egfrsimple/egfr_simple.bngl", + "file": "egfr_simple.bngl", + "tags": [ + "egfr", + "simple", + "egf", + "grb2", + "sos1" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "egfr-signaling-pathway", + "name": "egfr signaling pathway", + "description": "Enhanced EGFR Signaling: Combinatorial complexity with multiple phosphorylation sites.", + "path": "Contributed/BNGPlayground_Examples/biology/egfrsignalingpathway/egfr-signaling-pathway.bngl", + "file": "egfr-signaling-pathway.bngl", + "tags": [ + "egfr", + "signaling", + "pathway", + "egf", + "grb2", + "shc" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "egg", + "name": "egg", + "description": "BioNetGen model: egg", + "path": "PyBioNetGen/tests/egg/egg.bngl", + "file": "egg.bngl", + "tags": [ + "egg", + "x", + "y", + "generate_network", + "simulate" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "eif2a-stress-response", + "name": "eif2a stress response", + "description": "Integrated Stress Response: eIF2alpha and the translational gate.", + "path": "Contributed/BNGPlayground_Examples/biology/eif2astressresponse/eif2a-stress-response.bngl", + "file": "eif2a-stress-response.bngl", + "tags": [ + "eif2a", + "stress", + "response", + "eif2b", + "perk", + "gadd34" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "El_Centro_CA_El_Centro_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - El_Centro_CA_El_Centro_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/El_Centro_CA_El_Centro_CA.bngl", + "file": "El_Centro_CA_El_Centro_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "El_Paso_TX_El_Paso_TX", + "name": "Mallela 2022 - COVID-19 MSA Models - El_Paso_TX_El_Paso_TX", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/El_Paso_TX_El_Paso_TX.bngl", + "file": "El_Paso_TX_El_Paso_TX.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Elkhart-Goshen_IN_Elkhart-Goshen_IN", + "name": "Mallela 2022 - COVID-19 MSA Models - Elkhart-Goshen_IN_Elkhart-Goshen_IN", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Elkhart-Goshen_IN_Elkhart-Goshen_IN.bngl", + "file": "Elkhart-Goshen_IN_Elkhart-Goshen_IN.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "EmeraldCity_m15", + "name": "Mallela 2021 - COVID-19 City Models - EmeraldCity_m15", + "description": "Parameter-fit COVID-19 epidemiological models for major US cities.", + "path": "Published/Mallela2021_Cities/EmeraldCity_m15.bngl", + "file": "EmeraldCity_m15.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "endosomal-sorting-rab", + "name": "endosomal sorting rab", + "description": "Endosomal Sorting: Rab GTPase conversion and effector recruitment.", + "path": "Contributed/BNGPlayground_Examples/biology/endosomalsortingrab/endosomal-sorting-rab.bngl", + "file": "endosomal-sorting-rab.bngl", + "tags": [ + "endosomal", + "sorting", + "rab", + "rab5", + "rab7", + "effector", + "v_gef", + "v_gap_drive" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "energy_allostery_mwc", + "name": "energy allostery mwc", + "description": "Model: energy_allostery_mwc.bngl", + "path": "Contributed/BNGPlayground_Examples/energy/energyallosterymwc/energy_allostery_mwc.bngl", + "file": "energy_allostery_mwc.bngl", + "tags": [ + "energy", + "allostery", + "mwc", + "p", + "l" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "energy_catalysis_mm", + "name": "energy catalysis mm", + "description": "Model: energy_catalysis_mm.bngl", + "path": "Contributed/BNGPlayground_Examples/energy/energycatalysismm/energy_catalysis_mm.bngl", + "file": "energy_catalysis_mm.bngl", + "tags": [ + "energy", + "catalysis", + "mm", + "e", + "s", + "p" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "energy_cooperativity_adh", + "name": "energy cooperativity adh", + "description": "Model: energy_cooperativity_adh.bngl", + "path": "Contributed/BNGPlayground_Examples/energy/energycooperativityadh/energy_cooperativity_adh.bngl", + "file": "energy_cooperativity_adh.bngl", + "tags": [ + "energy", + "cooperativity", + "adh", + "r", + "l" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "energy_example1", + "name": "energy_example1", + "description": "Illustration of energy modeling approach w/ a simple protein scaffold model", + "path": "Contributed/BNGPlayground_Validation/energyexample1/energy_example1.bngl", + "file": "energy_example1.bngl", + "tags": [ + "validation", + "energy", + "example1", + "version", + "setoption", + "s", + "a", + "b", + "c" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "energy_linear_chain", + "name": "energy linear chain", + "description": "Model: energy_linear_chain.bngl", + "path": "Contributed/BNGPlayground_Examples/energy/energylinearchain/energy_linear_chain.bngl", + "file": "energy_linear_chain.bngl", + "tags": [ + "energy", + "linear", + "chain", + "m", + "generate_network" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "energy_transport_pump", + "name": "energy transport pump", + "description": "Model: energy_transport_pump.bngl", + "path": "Contributed/BNGPlayground_Examples/energy/energytransportpump/energy_transport_pump.bngl", + "file": "energy_transport_pump.bngl", + "tags": [ + "energy", + "transport", + "pump", + "a", + "atp", + "adp", + "pi", + "t" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "er-stress-response", + "name": "er stress response", + "description": "Rate Constants", + "path": "Contributed/BNGPlayground_Examples/biology/erstressresponse/er-stress-response.bngl", + "file": "er-stress-response.bngl", + "tags": [ + "er", + "stress", + "response", + "unfoldedprotein", + "perk", + "eif2a", + "chaperone" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Erdem_2021", + "name": "Erdem 2021", + "description": "InsR/IGF1R signaling", + "path": "Published/Erdem2021/Erdem_2021.bngl", + "file": "Erdem_2021.bngl", + "tags": [ + "published", + "erdem", + "2021", + "igf1", + "ins", + "igf1r", + "insr", + "irs", + "sos", + "ras", + "raf" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "erk-nuclear-translocation", + "name": "erk nuclear translocation", + "description": "ERK Translocation: Spatial signaling and transcriptional assembly.", + "path": "Contributed/BNGPlayground_Examples/biology/erknucleartranslocation/erk-nuclear-translocation.bngl", + "file": "erk-nuclear-translocation.bngl", + "tags": [ + "erk", + "nuclear", + "translocation", + "mek", + "elk1", + "dusp", + "transcription_signal" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "ErrNoFrees", + "name": "ErrNoFrees", + "description": "An example from a real application", + "path": "PyBioNetGen/tests/ErrNoFrees/ErrNoFrees.bngl", + "file": "ErrNoFrees.bngl", + "tags": [ + "errnofrees", + "ag", + "r", + "h" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "Evansville_IN-KY_Evansville_IN-KY", + "name": "Mallela 2022 - COVID-19 MSA Models - Evansville_IN-KY_Evansville_IN-KY", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Evansville_IN-KY_Evansville_IN-KY.bngl", + "file": "Evansville_IN-KY_Evansville_IN-KY.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "example1", + "name": "example1", + "description": "Example file for BNG2 tutorial.", + "path": "Contributed/BNGPlayground_Validation/example1/example1.bngl", + "file": "example1.bngl", + "tags": [ + "validation", + "example1", + "version", + "generate_network", + "simulate_ode" + ], + "category": "validation", + "bng2_compatible": false, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "example1", + "name": "example1", + "description": "Filename: example1.bngl", + "path": "PyBioNetGen/core/example1/example1.bngl", + "file": "example1.bngl", + "tags": [ + "example1", + "egf", + "egfr", + "pre1_dose", + "pre2_time", + "pre3_dose" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "example2_starting_point", + "name": "example2 starting point", + "description": "Filename: example2_starting_point.bngl", + "path": "PyBioNetGen/core/example2startingpoint/example2_starting_point.bngl", + "file": "example2_starting_point.bngl", + "tags": [ + "example2", + "starting", + "point", + "egf", + "egfr", + "clusters", + "pre1_dose", + "pre2_time" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "extra_CaMKII_Holo", + "name": "Ordyan 2020: extra CaMKII holo", + "description": "Extra CaMKII holo (supplement)", + "path": "Published/Ordyan2020/extraCaMKIIHolo/extra_CaMKII_Holo.bngl", + "file": "extra_CaMKII_Holo.bngl", + "tags": [ + "published", + "neuroscience", + "extra", + "camkii", + "holo", + "t1", + "t2", + "t3", + "t4", + "t5", + "t6", + "t7", + "t8" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Faeder_2003", + "name": "Faeder 2003 - Faeder_2003", + "description": "FceRI signaling", + "path": "Published/Faeder2003/Faeder_2003.bngl", + "file": "Faeder_2003.bngl", + "tags": [ + "published", + "immunology", + "faeder", + "2003", + "lig", + "lyn", + "syk", + "rec" + ], + "category": "immunology", + "bng2_compatible": false, + "origin": "published", + "visible": true, + "collectionId": "Faeder_2003" + }, + { + "id": "Fargo_ND-MN_Fargo_ND-MN", + "name": "Mallela 2022 - COVID-19 MSA Models - Fargo_ND-MN_Fargo_ND-MN", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Fargo_ND-MN_Fargo_ND-MN.bngl", + "file": "Fargo_ND-MN_Fargo_ND-MN.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Farmington_NM_Farmington_NM", + "name": "Mallela 2022 - COVID-19 MSA Models - Farmington_NM_Farmington_NM", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Farmington_NM_Farmington_NM.bngl", + "file": "Farmington_NM_Farmington_NM.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Fayetteville_NC_Fayetteville_NC", + "name": "Mallela 2022 - COVID-19 MSA Models - Fayetteville_NC_Fayetteville_NC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Fayetteville_NC_Fayetteville_NC.bngl", + "file": "Fayetteville_NC_Fayetteville_NC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Fayetteville-Springdale-Rogers_AR_Fayetteville-Springdale-Rogers_AR", + "name": "Mallela 2022 - COVID-19 MSA Models - Fayetteville-Springdale-Rogers_AR_Fayetteville-Springdale-Rogers_AR", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Fayetteville-Springdale-Rogers_AR_Fayetteville-Springdale-Rogers_AR.bngl", + "file": "Fayetteville-Springdale-Rogers_AR_Fayetteville-Springdale-Rogers_AR.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "fceri_fyn", + "name": "FceRI Fyn", + "description": "FceRI signaling", + "path": "Published/fcerifyn/fceri_fyn.bngl", + "file": "fceri_fyn.bngl", + "tags": [ + "published", + "immunology", + "fceri", + "fyn", + "lig", + "lyn", + "syk", + "rec" + ], + "category": "immunology", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "fceri_gamma2", + "name": "fceri gamma2", + "description": "BioNetGen model: fceri gamma2", + "path": "PyBioNetGen/core/fcerigamma2/fceri_gamma2.bngl", + "file": "fceri_gamma2.bngl", + "tags": [ + "fceri", + "gamma2", + "lig", + "lyn", + "syk", + "rec" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "fceri_gamma2_ground_truth", + "name": "fceri gamma2 ground truth", + "description": "BioNetGen model: fceri gamma2 ground truth", + "path": "PyBioNetGen/core/fcerigamma2groundtruth/fceri_gamma2_ground_truth.bngl", + "file": "fceri_gamma2_ground_truth.bngl", + "tags": [ + "fceri", + "gamma2", + "ground", + "truth", + "lig", + "lyn", + "syk", + "rec" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "fceri_ji", + "name": "Faeder 2003 - fceri_ji", + "description": "FceRI signaling", + "path": "Published/Faeder2003/fceri_ji.bngl", + "file": "fceri_ji.bngl", + "tags": [ + "published", + "immunology", + "faeder", + "2003", + "lig", + "lyn", + "syk", + "rec" + ], + "category": "immunology", + "bng2_compatible": false, + "origin": "published", + "visible": true, + "collectionId": "Faeder_2003" + }, + { + "id": "FceRI_ji", + "name": "FceRI ji", + "description": "title: FceRI_ji.bngl", + "path": "Tutorials/NativeTutorials/FceRIji/FceRI_ji.bngl", + "file": "FceRI_ji.bngl", + "tags": [ + "fceri", + "ji", + "lig", + "lyn", + "syk", + "rec" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "fceri_ji_comp", + "name": "fceri_ji_comp", + "description": "Ligand-receptor binding", + "path": "Contributed/BNGPlayground_Validation/fcerijicomp/fceri_ji_comp.bngl", + "file": "fceri_ji_comp.bngl", + "tags": [ + "validation", + "fceri", + "ji", + "comp", + "lig", + "lyn", + "syk", + "rec" + ], + "category": "validation", + "bng2_compatible": false, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "FceRI_viz", + "name": "FceRI Viz", + "description": "FcεRI (viz)", + "path": "Tutorials/NativeTutorials/FceRIviz/FceRI_viz.bngl", + "file": "FceRI_viz.bngl", + "tags": [ + "published", + "tutorial", + "native", + "fceri", + "viz", + "fcr", + "ige", + "lat", + "lyn", + "syk", + "pb", + "pg", + "sykp" + ], + "category": "tutorial", + "bng2_compatible": false, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "feature_functional_rates_volume", + "name": "feature functional rates volume", + "description": "Model: feature_functional_rates_volume.bngl", + "path": "Contributed/BNGPlayground_Examples/feature-demos/featurefunctionalratesvolume/feature_functional_rates_volume.bngl", + "file": "feature_functional_rates_volume.bngl", + "tags": [ + "feature", + "functional", + "rates", + "volume", + "a", + "b", + "c" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "feature_global_functions_scan", + "name": "feature global functions scan", + "description": "Model: feature_global_functions_scan.bngl", + "path": "Contributed/BNGPlayground_Examples/feature-demos/featureglobalfunctionsscan/feature_global_functions_scan.bngl", + "file": "feature_global_functions_scan.bngl", + "tags": [ + "feature", + "global", + "functions", + "scan", + "signal", + "response", + "stimulus" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "feature_local_functions_explicit", + "name": "feature local functions explicit", + "description": "Model: feature_local_functions_explicit.bngl", + "path": "Contributed/BNGPlayground_Examples/feature-demos/featurelocalfunctionsexplicit/feature_local_functions_explicit.bngl", + "file": "feature_local_functions_explicit.bngl", + "tags": [ + "feature", + "local", + "functions", + "explicit", + "s", + "p", + "e", + "mm_rate", + "ratelaw" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "feature_symmetry_factors_cyclic", + "name": "feature symmetry factors cyclic", + "description": "Model: feature_symmetry_factors_cyclic.bngl", + "path": "Contributed/BNGPlayground_Examples/feature-demos/featuresymmetryfactorscyclic/feature_symmetry_factors_cyclic.bngl", + "file": "feature_symmetry_factors_cyclic.bngl", + "tags": [ + "feature", + "symmetry", + "factors", + "cyclic", + "x", + "generate_network", + "simulate" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "feature_synthesis_degradation_ss", + "name": "feature synthesis degradation ss", + "description": "Model: feature_synthesis_degradation_ss.bngl", + "path": "Contributed/BNGPlayground_Examples/feature-demos/featuresynthesisdegradationss/feature_synthesis_degradation_ss.bngl", + "file": "feature_synthesis_degradation_ss.bngl", + "tags": [ + "feature", + "synthesis", + "degradation", + "ss", + "m", + "generate_network", + "simulate" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "fgf-signaling-pathway", + "name": "fgf signaling pathway", + "description": "FGF Signaling: FGFR dimerization and FRS2-Ras/PI3K relay.", + "path": "Contributed/BNGPlayground_Examples/biology/fgfsignalingpathway/fgf-signaling-pathway.bngl", + "file": "fgf-signaling-pathway.bngl", + "tags": [ + "fgf", + "signaling", + "pathway", + "fgfr", + "frs2", + "spry", + "rasgef", + "internalized_rec" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Flagstaff_AZ_Flagstaff_AZ", + "name": "Mallela 2022 - COVID-19 MSA Models - Flagstaff_AZ_Flagstaff_AZ", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Flagstaff_AZ_Flagstaff_AZ.bngl", + "file": "Flagstaff_AZ_Flagstaff_AZ.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Flint_MI_Flint_MI", + "name": "Mallela 2022 - COVID-19 MSA Models - Flint_MI_Flint_MI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Flint_MI_Flint_MI.bngl", + "file": "Flint_MI_Flint_MI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Florence_SC_Florence_SC", + "name": "Mallela 2022 - COVID-19 MSA Models - Florence_SC_Florence_SC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Florence_SC_Florence_SC.bngl", + "file": "Florence_SC_Florence_SC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Florence-Muscle_Shoals_AL_Florence-Muscle_Shoals_AL", + "name": "Mallela 2022 - COVID-19 MSA Models - Florence-Muscle_Shoals_AL_Florence-Muscle_Shoals_AL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Florence-Muscle_Shoals_AL_Florence-Muscle_Shoals_AL.bngl", + "file": "Florence-Muscle_Shoals_AL_Florence-Muscle_Shoals_AL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Fort_Collins_CO_Fort_Collins_CO", + "name": "Mallela 2022 - COVID-19 MSA Models - Fort_Collins_CO_Fort_Collins_CO", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Fort_Collins_CO_Fort_Collins_CO.bngl", + "file": "Fort_Collins_CO_Fort_Collins_CO.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Fort_Wayne_IN_Fort_Wayne_IN", + "name": "Mallela 2022 - COVID-19 MSA Models - Fort_Wayne_IN_Fort_Wayne_IN", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Fort_Wayne_IN_Fort_Wayne_IN.bngl", + "file": "Fort_Wayne_IN_Fort_Wayne_IN.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "free_missing", + "name": "free missing", + "description": "Original values used to generate parabola.exp", + "path": "PyBioNetGen/tests/freemissing/free_missing.bngl", + "file": "free_missing.bngl", + "tags": [ + "free", + "missing", + "counter", + "y", + "generate_network", + "simulate" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "Fresno_CA_Fresno_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - Fresno_CA_Fresno_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Fresno_CA_Fresno_CA.bngl", + "file": "Fresno_CA_Fresno_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Frisco_m12", + "name": "Mallela 2021 - COVID-19 City Models - Frisco_m12", + "description": "Parameter-fit COVID-19 epidemiological models for major US cities.", + "path": "Published/Mallela2021_Cities/Frisco_m12.bngl", + "file": "Frisco_m12.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "Gadsden_AL_Gadsden_AL", + "name": "Mallela 2022 - COVID-19 MSA Models - Gadsden_AL_Gadsden_AL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Gadsden_AL_Gadsden_AL.bngl", + "file": "Gadsden_AL_Gadsden_AL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Gainesville_FL_Gainesville_FL", + "name": "Mallela 2022 - COVID-19 MSA Models - Gainesville_FL_Gainesville_FL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Gainesville_FL_Gainesville_FL.bngl", + "file": "Gainesville_FL_Gainesville_FL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Gainesville_GA_Gainesville_GA", + "name": "Mallela 2022 - COVID-19 MSA Models - Gainesville_GA_Gainesville_GA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Gainesville_GA_Gainesville_GA.bngl", + "file": "Gainesville_GA_Gainesville_GA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "gas6-axl-signaling", + "name": "gas6 axl signaling", + "description": "GAS6/AXL Signaling: AKT activation and SOCS feedback.", + "path": "Contributed/BNGPlayground_Examples/biology/gas6axlsignaling/gas6-axl-signaling.bngl", + "file": "gas6-axl-signaling.bngl", + "tags": [ + "gas6", + "axl", + "signaling", + "pi3k", + "akt", + "socs", + "survival_burst" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "gene-expression-toggle", + "name": "gene expression toggle", + "description": "Kinetic Parameters", + "path": "Contributed/BNGPlayground_Examples/biology/geneexpressiontoggle/gene-expression-toggle.bngl", + "file": "gene-expression-toggle.bngl", + "tags": [ + "gene", + "expression", + "toggle", + "mrna", + "protein" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "genetic_bistability_energy", + "name": "genetic bistability energy", + "description": "Model: genetic_bistability_energy.bngl", + "path": "Contributed/BNGPlayground_Examples/genetics/geneticbistabilityenergy/genetic_bistability_energy.bngl", + "file": "genetic_bistability_energy.bngl", + "tags": [ + "genetic", + "bistability", + "energy", + "genea", + "geneb", + "prota", + "protb" + ], + "category": "gene-expression", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "genetic_dna_replication_stochastic", + "name": "genetic dna replication stochastic", + "description": "Model: genetic_dna_replication_stochastic.bngl", + "path": "Contributed/BNGPlayground_Examples/genetics/geneticdnareplicationstochastic/genetic_dna_replication_stochastic.bngl", + "file": "genetic_dna_replication_stochastic.bngl", + "tags": [ + "genetic", + "dna", + "replication", + "stochastic", + "pol", + "n", + "generate_network" + ], + "category": "gene-expression", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "genetic_goodwin_oscillator", + "name": "genetic goodwin oscillator", + "description": "Model: genetic_goodwin_oscillator.bngl", + "path": "Contributed/BNGPlayground_Examples/genetics/geneticgoodwinoscillator/genetic_goodwin_oscillator.bngl", + "file": "genetic_goodwin_oscillator.bngl", + "tags": [ + "genetic", + "goodwin", + "oscillator", + "gene", + "mrna", + "protein", + "repressor" + ], + "category": "gene-expression", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "genetic_translation_kinetics", + "name": "genetic translation kinetics", + "description": "Model: genetic_translation_kinetics.bngl", + "path": "Contributed/BNGPlayground_Examples/genetics/genetictranslationkinetics/genetic_translation_kinetics.bngl", + "file": "genetic_translation_kinetics.bngl", + "tags": [ + "genetic", + "translation", + "kinetics", + "mrna", + "rib", + "protein" + ], + "category": "gene-expression", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "genetic_turing_pattern_1d", + "name": "genetic turing pattern 1d", + "description": "Model: genetic_turing_pattern_1d.bngl", + "path": "Contributed/BNGPlayground_Examples/genetics/geneticturingpattern1d/genetic_turing_pattern_1d.bngl", + "file": "genetic_turing_pattern_1d.bngl", + "tags": [ + "genetic", + "turing", + "pattern", + "1d", + "a", + "b" + ], + "category": "gene-expression", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "GK", + "name": "GK", + "description": "title: GK.bngl", + "path": "Tutorials/NativeTutorials/GK/GK.bngl", + "file": "GK.bngl", + "tags": [ + "gk", + "b", + "simulate" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "Glens_Falls_NY_Glens_Falls_NY", + "name": "Mallela 2022 - COVID-19 MSA Models - Glens_Falls_NY_Glens_Falls_NY", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Glens_Falls_NY_Glens_Falls_NY.bngl", + "file": "Glens_Falls_NY_Glens_Falls_NY.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "glioblastoma-egfrviii-signaling", + "name": "glioblastoma egfrviii signaling", + "description": "EGFRvIII in Glioblastoma: Constitutive AKT drive and escape from decay.", + "path": "Contributed/BNGPlayground_Examples/biology/glioblastomaegfrviiisignaling/glioblastoma-egfrviii-signaling.bngl", + "file": "glioblastoma-egfrviii-signaling.bngl", + "tags": [ + "glioblastoma", + "egfrviii", + "signaling", + "pi3k", + "akt", + "oncogenic_output", + "v_viii_act" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "glycolysis-branch-point", + "name": "glycolysis branch point", + "description": "BioNetGen model: glycolysis branch point", + "path": "Contributed/BNGPlayground_Examples/biology/glycolysisbranchpoint/glycolysis-branch-point.bngl", + "file": "glycolysis-branch-point.bngl", + "tags": [ + "glycolysis", + "branch", + "point", + "glucose", + "atp", + "biomass" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "gm_game_of_life", + "name": "gm game of life", + "description": "Model: gm_game_of_life.bngl", + "path": "Contributed/BNGPlayground_Examples/generative/gmgameoflife/gm_game_of_life.bngl", + "file": "gm_game_of_life.bngl", + "tags": [ + "gm", + "game", + "of", + "life", + "cell" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "gm_ray_marcher", + "name": "gm ray marcher", + "description": "Ray Marching Renderer in BNGL", + "path": "Contributed/BNGPlayground_Examples/generative/gmraymarcher/gm_ray_marcher.bngl", + "file": "gm_ray_marcher.bngl", + "tags": [ + "gm", + "ray", + "marcher", + "ray0", + "hit0", + "bright0", + "sdf0", + "sdf1", + "sdf2", + "sdf3", + "speed0" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Goldsboro_NC_Goldsboro_NC", + "name": "Mallela 2022 - COVID-19 MSA Models - Goldsboro_NC_Goldsboro_NC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Goldsboro_NC_Goldsboro_NC.bngl", + "file": "Goldsboro_NC_Goldsboro_NC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "gpcr-desensitization-arrestin", + "name": "gpcr desensitization arrestin", + "description": "GPCR Desensitization: Arrestin-mediated spatial sequestration.", + "path": "Contributed/BNGPlayground_Examples/biology/gpcrdesensitizationarrestin/gpcr-desensitization-arrestin.bngl", + "file": "gpcr-desensitization-arrestin.bngl", + "tags": [ + "gpcr", + "desensitization", + "arrestin", + "ligand", + "gprotein" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Grand_Forks_ND-MN_Grand_Forks_ND-MN", + "name": "Mallela 2022 - COVID-19 MSA Models - Grand_Forks_ND-MN_Grand_Forks_ND-MN", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Grand_Forks_ND-MN_Grand_Forks_ND-MN.bngl", + "file": "Grand_Forks_ND-MN_Grand_Forks_ND-MN.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Grand_Island_NE_Grand_Island_NE", + "name": "Mallela 2022 - COVID-19 MSA Models - Grand_Island_NE_Grand_Island_NE", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Grand_Island_NE_Grand_Island_NE.bngl", + "file": "Grand_Island_NE_Grand_Island_NE.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Grand_Rapids-Kentwood_MI_Grand_Rapids-Kentwood_MI", + "name": "Mallela 2022 - COVID-19 MSA Models - Grand_Rapids-Kentwood_MI_Grand_Rapids-Kentwood_MI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Grand_Rapids-Kentwood_MI_Grand_Rapids-Kentwood_MI.bngl", + "file": "Grand_Rapids-Kentwood_MI_Grand_Rapids-Kentwood_MI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Greeley_CO_Greeley_CO", + "name": "Mallela 2022 - COVID-19 MSA Models - Greeley_CO_Greeley_CO", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Greeley_CO_Greeley_CO.bngl", + "file": "Greeley_CO_Greeley_CO.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Green_Bay_WI_Green_Bay_WI", + "name": "Mallela 2022 - COVID-19 MSA Models - Green_Bay_WI_Green_Bay_WI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Green_Bay_WI_Green_Bay_WI.bngl", + "file": "Green_Bay_WI_Green_Bay_WI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Greensboro-High_Point_NC_Greensboro-High_Point_NC", + "name": "Mallela 2022 - COVID-19 MSA Models - Greensboro-High_Point_NC_Greensboro-High_Point_NC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Greensboro-High_Point_NC_Greensboro-High_Point_NC.bngl", + "file": "Greensboro-High_Point_NC_Greensboro-High_Point_NC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Greenville_NC_Greenville_NC", + "name": "Mallela 2022 - COVID-19 MSA Models - Greenville_NC_Greenville_NC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Greenville_NC_Greenville_NC.bngl", + "file": "Greenville_NC_Greenville_NC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Greenville-Anderson_SC_Greenville-Anderson_SC", + "name": "Mallela 2022 - COVID-19 MSA Models - Greenville-Anderson_SC_Greenville-Anderson_SC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Greenville-Anderson_SC_Greenville-Anderson_SC.bngl", + "file": "Greenville-Anderson_SC_Greenville-Anderson_SC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Gulfport-Biloxi_MS_Gulfport-Biloxi_MS", + "name": "Mallela 2022 - COVID-19 MSA Models - Gulfport-Biloxi_MS_Gulfport-Biloxi_MS", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Gulfport-Biloxi_MS_Gulfport-Biloxi_MS.bngl", + "file": "Gulfport-Biloxi_MS_Gulfport-Biloxi_MS.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Hagerstown-Martinsburg_MD-WV_Hagerstown-Martinsburg_MD-WV", + "name": "Mallela 2022 - COVID-19 MSA Models - Hagerstown-Martinsburg_MD-WV_Hagerstown-Martinsburg_MD-WV", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Hagerstown-Martinsburg_MD-WV_Hagerstown-Martinsburg_MD-WV.bngl", + "file": "Hagerstown-Martinsburg_MD-WV_Hagerstown-Martinsburg_MD-WV.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Hammond_LA_Hammond_LA", + "name": "Mallela 2022 - COVID-19 MSA Models - Hammond_LA_Hammond_LA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Hammond_LA_Hammond_LA.bngl", + "file": "Hammond_LA_Hammond_LA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Hanford-Corcoran_CA_Hanford-Corcoran_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - Hanford-Corcoran_CA_Hanford-Corcoran_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Hanford-Corcoran_CA_Hanford-Corcoran_CA.bngl", + "file": "Hanford-Corcoran_CA_Hanford-Corcoran_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Harrisburg-Carlisle_PA_Harrisburg-Carlisle_PA", + "name": "Mallela 2022 - COVID-19 MSA Models - Harrisburg-Carlisle_PA_Harrisburg-Carlisle_PA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Harrisburg-Carlisle_PA_Harrisburg-Carlisle_PA.bngl", + "file": "Harrisburg-Carlisle_PA_Harrisburg-Carlisle_PA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Harrisonburg_VA_Harrisonburg_VA", + "name": "Mallela 2022 - COVID-19 MSA Models - Harrisonburg_VA_Harrisonburg_VA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Harrisonburg_VA_Harrisonburg_VA.bngl", + "file": "Harrisonburg_VA_Harrisonburg_VA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Hartford-East_Hartford-Middletown_CT_Hartford-East_Hartford-Middletown_CT", + "name": "Mallela 2022 - COVID-19 MSA Models - Hartford-East_Hartford-Middletown_CT_Hartford-East_Hartford-Middletown_CT", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Hartford-East_Hartford-Middletown_CT_Hartford-East_Hartford-Middletown_CT.bngl", + "file": "Hartford-East_Hartford-Middletown_CT_Hartford-East_Hartford-Middletown_CT.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Hat_2016", + "name": "Hat 2016", + "description": "Nuclear transport", + "path": "Published/Hat2016/Hat_2016.bngl", + "file": "Hat_2016.bngl", + "tags": [ + "published", + "hat", + "2016", + "dna_dsb", + "atm", + "siah1", + "hipk2", + "wip1", + "gene_wip1", + "mrna_wip1", + "p53" + ], + "category": "regulation", + "bng2_compatible": false, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "Hattiesburg_MS_Hattiesburg_MS", + "name": "Mallela 2022 - COVID-19 MSA Models - Hattiesburg_MS_Hattiesburg_MS", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Hattiesburg_MS_Hattiesburg_MS.bngl", + "file": "Hattiesburg_MS_Hattiesburg_MS.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Haugh2b", + "name": "Haugh2b", + "description": "R(KD,Y1~U,Y2~U) 1.00", + "path": "Contributed/BNGPlayground_Validation/Haugh2b/Haugh2b.bngl", + "file": "Haugh2b.bngl", + "tags": [ + "validation", + "haugh2b", + "r", + "s1", + "s2", + "exclude_reactants", + "include_reactants" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "hedgehog-signaling-pathway", + "name": "hedgehog signaling pathway", + "description": "Hedgehog (Hh) Signaling: Ciliary translocation and Gli processing.", + "path": "Contributed/BNGPlayground_Examples/biology/hedgehogsignalingpathway/hedgehog-signaling-pathway.bngl", + "file": "hedgehog-signaling-pathway.bngl", + "tags": [ + "hedgehog", + "signaling", + "pathway", + "hh", + "ptch", + "smo", + "gli", + "sufu" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "heise", + "name": "heise", + "description": "Validate state inheritance in a symmetric context", + "path": "Contributed/BNGPlayground_Validation/heise/heise.bngl", + "file": "heise.bngl", + "tags": [ + "validation", + "heise", + "a", + "b", + "generate_network", + "simulate_ode", + "setparameter" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "hematopoietic-growth-factor", + "name": "hematopoietic growth factor", + "description": "Kinetic Parameters", + "path": "Contributed/BNGPlayground_Examples/biology/hematopoieticgrowthfactor/hematopoietic-growth-factor.bngl", + "file": "hematopoietic-growth-factor.bngl", + "tags": [ + "hematopoietic", + "growth", + "factor", + "epo", + "epor", + "jak2", + "stat5" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Hickory-Lenoir-Morganton_NC_Hickory-Lenoir-Morganton_NC", + "name": "Mallela 2022 - COVID-19 MSA Models - Hickory-Lenoir-Morganton_NC_Hickory-Lenoir-Morganton_NC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Hickory-Lenoir-Morganton_NC_Hickory-Lenoir-Morganton_NC.bngl", + "file": "Hickory-Lenoir-Morganton_NC_Hickory-Lenoir-Morganton_NC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "hif1a_degradation_loop", + "name": "hif1a degradation loop", + "description": "HIF-1alpha Oxygen Sensing: Hydroxylation and VHL-mediated decay.", + "path": "Contributed/BNGPlayground_Examples/biology/hif1adegradationloop/hif1a_degradation_loop.bngl", + "file": "hif1a_degradation_loop.bngl", + "tags": [ + "hif1a", + "degradation", + "loop", + "vhl", + "arnt", + "v_hydrox" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Hilton_Head_Island-Bluffton-Beaufort_SC_Hilton_Head_Island-Bluffton-Beaufort_SC", + "name": "Mallela 2022 - COVID-19 MSA Models - Hilton_Head_Island-Bluffton-Beaufort_SC_Hilton_Head_Island-Bluffton-Beaufort_SC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Hilton_Head_Island-Bluffton-Beaufort_SC_Hilton_Head_Island-Bluffton-Beaufort_SC.bngl", + "file": "Hilton_Head_Island-Bluffton-Beaufort_SC_Hilton_Head_Island-Bluffton-Beaufort_SC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Hotlanta_m9", + "name": "Mallela 2021 - COVID-19 City Models - Hotlanta_m9", + "description": "Parameter-fit COVID-19 epidemiological models for major US cities.", + "path": "Published/Mallela2021_Cities/Hotlanta_m9.bngl", + "file": "Hotlanta_m9.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "Houma-Thibodaux_LA_Houma-Thibodaux_LA", + "name": "Mallela 2022 - COVID-19 MSA Models - Houma-Thibodaux_LA_Houma-Thibodaux_LA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Houma-Thibodaux_LA_Houma-Thibodaux_LA.bngl", + "file": "Houma-Thibodaux_LA_Houma-Thibodaux_LA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Houston", + "name": "Houston", + "description": "- This model is intended to be consistent with the compartmental model", + "path": "Published/VaxAndVariants/Houston/Houston.bngl", + "file": "Houston.bngl", + "tags": [ + "houston", + "counter", + "fdcs", + "s", + "sv", + "e", + "a", + "i", + "v" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Houston-The_Woodlands-Sugar_Land_TX_Houston-The_Woodlands-Sugar_Land_TX", + "name": "Mallela 2022 - COVID-19 MSA Models - Houston-The_Woodlands-Sugar_Land_TX_Houston-The_Woodlands-Sugar_Land_TX", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Houston-The_Woodlands-Sugar_Land_TX_Houston-The_Woodlands-Sugar_Land_TX.bngl", + "file": "Houston-The_Woodlands-Sugar_Land_TX_Houston-The_Woodlands-Sugar_Land_TX.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "HTown_m5", + "name": "Mallela 2021 - COVID-19 City Models - HTown_m5", + "description": "Parameter-fit COVID-19 epidemiological models for major US cities.", + "path": "Published/Mallela2021_Cities/HTown_m5.bngl", + "file": "HTown_m5.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "Huntington-Ashland_WV-KY-OH_Huntington-Ashland_WV-KY-OH", + "name": "Mallela 2022 - COVID-19 MSA Models - Huntington-Ashland_WV-KY-OH_Huntington-Ashland_WV-KY-OH", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Huntington-Ashland_WV-KY-OH_Huntington-Ashland_WV-KY-OH.bngl", + "file": "Huntington-Ashland_WV-KY-OH_Huntington-Ashland_WV-KY-OH.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Huntsville_AL_Huntsville_AL", + "name": "Mallela 2022 - COVID-19 MSA Models - Huntsville_AL_Huntsville_AL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Huntsville_AL_Huntsville_AL.bngl", + "file": "Huntsville_AL_Huntsville_AL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "hypoxia-response-signaling", + "name": "hypoxia response signaling", + "description": "Rate Constants", + "path": "Contributed/BNGPlayground_Examples/biology/hypoxiaresponsesignaling/hypoxia-response-signaling.bngl", + "file": "hypoxia-response-signaling.bngl", + "tags": [ + "hypoxia", + "response", + "signaling", + "oxygensensor", + "hif1", + "vegf" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "IGF1R_Model_receptor_activation_bnf", + "name": "IGF1R Model receptor activation bnf", + "description": "Author: William S. Hlavacek", + "path": "PyBioNetGen/core/IGF1RModelreceptoractivationbnf/IGF1R_Model_receptor_activation_bnf.bngl", + "file": "IGF1R_Model_receptor_activation_bnf.bngl", + "tags": [ + "igf1r", + "model", + "receptor", + "activation", + "bnf", + "igf1" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "il1b-signaling", + "name": "il1b signaling", + "description": "IL-1beta Signaling: MyD88/IRAK assembly and NF-kB translocation.", + "path": "Contributed/BNGPlayground_Examples/biology/il1bsignaling/il1b-signaling.bngl", + "file": "il1b-signaling.bngl", + "tags": [ + "il1b", + "signaling", + "il1ri", + "myd88", + "irak", + "nfkb" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "il6-jak-stat-pathway", + "name": "il6 jak stat pathway", + "description": "IL-6 Signaling: gp130 hexamerization and pSTAT3 import.", + "path": "Contributed/BNGPlayground_Examples/biology/il6jakstatpathway/il6-jak-stat-pathway.bngl", + "file": "il6-jak-stat-pathway.bngl", + "tags": [ + "il6", + "jak", + "stat", + "pathway", + "gp130", + "stat3", + "socs" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "immune-synapse-formation", + "name": "immune synapse formation", + "description": "Kinetic Parameters", + "path": "Contributed/BNGPlayground_Examples/biology/immunesynapseformation/immune-synapse-formation.bngl", + "file": "immune-synapse-formation.bngl", + "tags": [ + "immune", + "synapse", + "formation", + "tcr", + "pmhc", + "lck", + "zap70" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Indianapolis-Carmel-Anderson_IN_Indianapolis-Carmel-Anderson_IN", + "name": "Mallela 2022 - COVID-19 MSA Models - Indianapolis-Carmel-Anderson_IN_Indianapolis-Carmel-Anderson_IN", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Indianapolis-Carmel-Anderson_IN_Indianapolis-Carmel-Anderson_IN.bngl", + "file": "Indianapolis-Carmel-Anderson_IN_Indianapolis-Carmel-Anderson_IN.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "inflammasome-activation", + "name": "inflammasome activation", + "description": "Rate Constants", + "path": "Contributed/BNGPlayground_Examples/biology/inflammasomeactivation/inflammasome-activation.bngl", + "file": "inflammasome-activation.bngl", + "tags": [ + "inflammasome", + "activation", + "sensor", + "asc", + "caspase1", + "il1b" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "InlandEmpire_m13", + "name": "Mallela 2021 - COVID-19 City Models - InlandEmpire_m13", + "description": "Parameter-fit COVID-19 epidemiological models for major US cities.", + "path": "Published/Mallela2021_Cities/InlandEmpire_m13.bngl", + "file": "InlandEmpire_m13.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "innate_immunity", + "name": "Korwek 2023", + "description": "Immune response", + "path": "Published/innateimmunity/innate_immunity.bngl", + "file": "innate_immunity.bngl", + "tags": [ + "published", + "immunology", + "innate", + "immunity", + "polyic", + "rigi", + "mavs", + "pkr", + "oas3", + "rnasel", + "eif2a", + "rigi_mrna" + ], + "category": "immunology", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "inositol-phosphate-metabolism", + "name": "inositol phosphate metabolism", + "description": "Inositol Phosphate (IP) Metabolism: PLC signaling and branch points.", + "path": "Contributed/BNGPlayground_Examples/biology/inositolphosphatemetabolism/inositol-phosphate-metabolism.bngl", + "file": "inositol-phosphate-metabolism.bngl", + "tags": [ + "inositol", + "phosphate", + "metabolism", + "pip2", + "ip3", + "ip4", + "calcium", + "agonist" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "insulin-glucose-homeostasis", + "name": "insulin glucose homeostasis", + "description": "Insulin-Glucose: Compartmentalized transport.", + "path": "Contributed/BNGPlayground_Examples/biology/insulinglucosehomeostasis/insulin-glucose-homeostasis.bngl", + "file": "insulin-glucose-homeostasis.bngl", + "tags": [ + "insulin", + "glucose", + "homeostasis", + "ir", + "glut4", + "pancreas" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "interferon-signaling", + "name": "interferon signaling", + "description": "Rate Constants", + "path": "Contributed/BNGPlayground_Examples/biology/interferonsignaling/interferon-signaling.bngl", + "file": "interferon-signaling.bngl", + "tags": [ + "interferon", + "signaling", + "ifn", + "ifnar", + "tyk2", + "stat1" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Iowa_City_IA_Iowa_City_IA", + "name": "Mallela 2022 - COVID-19 MSA Models - Iowa_City_IA_Iowa_City_IA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Iowa_City_IA_Iowa_City_IA.bngl", + "file": "Iowa_City_IA_Iowa_City_IA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "ire1a-xbp1-er-stress", + "name": "ire1a xbp1 er stress", + "description": "IRE1a/XBP1 ER Stress: Chaperone buffering and mRNA decay (RIDD).", + "path": "Contributed/BNGPlayground_Examples/biology/ire1axbp1erstress/ire1a-xbp1-er-stress.bngl", + "file": "ire1a-xbp1-er-stress.bngl", + "tags": [ + "ire1a", + "xbp1", + "er", + "stress", + "ire1", + "bip", + "unfolded", + "ridd_target" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "issue_198_short", + "name": "issue_198_short", + "description": "No description available", + "path": "Contributed/BNGPlayground_Validation/issue198short/issue_198_short.bngl", + "file": "issue_198_short.bngl", + "tags": [ + "validation", + "issue", + "198", + "short", + "a", + "b", + "c", + "generate_network", + "simulate" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "Jackson_MI_Jackson_MI", + "name": "Mallela 2022 - COVID-19 MSA Models - Jackson_MI_Jackson_MI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Jackson_MI_Jackson_MI.bngl", + "file": "Jackson_MI_Jackson_MI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Jackson_MS_Jackson_MS", + "name": "Mallela 2022 - COVID-19 MSA Models - Jackson_MS_Jackson_MS", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Jackson_MS_Jackson_MS.bngl", + "file": "Jackson_MS_Jackson_MS.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Jacksonville_FL_Jacksonville_FL", + "name": "Mallela 2022 - COVID-19 MSA Models - Jacksonville_FL_Jacksonville_FL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Jacksonville_FL_Jacksonville_FL.bngl", + "file": "Jacksonville_FL_Jacksonville_FL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "jak-stat-cytokine-signaling", + "name": "jak stat cytokine signaling", + "description": "Rate Constants", + "path": "Contributed/BNGPlayground_Examples/biology/jakstatcytokinesignaling/jak-stat-cytokine-signaling.bngl", + "file": "jak-stat-cytokine-signaling.bngl", + "tags": [ + "jak", + "stat", + "cytokine", + "signaling", + "receptor" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Janesville-Beloit_WI_Janesville-Beloit_WI", + "name": "Mallela 2022 - COVID-19 MSA Models - Janesville-Beloit_WI_Janesville-Beloit_WI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Janesville-Beloit_WI_Janesville-Beloit_WI.bngl", + "file": "Janesville-Beloit_WI_Janesville-Beloit_WI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Jaruszewicz-Blonska_2023", + "name": "Jaruszewicz 2023", + "description": "T-cell discrimination", + "path": "Published/JaruszewiczBlonska2023/Jaruszewicz-Blonska_2023.bngl", + "file": "Jaruszewicz-Blonska_2023.bngl", + "tags": [ + "published", + "immunology", + "jaruszewicz", + "blonska", + "2023", + "ikk", + "ikba", + "ikba_mrna", + "a20", + "nfkb" + ], + "category": "immunology", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "jnk-mapk-signaling", + "name": "jnk mapk signaling", + "description": "JNK MAPK Signaling: Scaffold-mediated activation and feedback.", + "path": "Contributed/BNGPlayground_Examples/biology/jnkmapksignaling/jnk-mapk-signaling.bngl", + "file": "jnk-mapk-signaling.bngl", + "tags": [ + "jnk", + "mapk", + "signaling", + "mkk7", + "jip1", + "v_dephos" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Jung_2017", + "name": "Jung 2017", + "description": "M1 receptor signaling", + "path": "Published/Jung2017/Jung_2017.bngl", + "file": "Jung_2017.bngl", + "tags": [ + "published", + "jung", + "2017", + "m1r", + "oxo", + "arrestin", + "mek", + "erk", + "perk", + "oxo_ec", + "pp2a" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Kalamazoo-Portage_MI_Kalamazoo-Portage_MI", + "name": "Mallela 2022 - COVID-19 MSA Models - Kalamazoo-Portage_MI_Kalamazoo-Portage_MI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Kalamazoo-Portage_MI_Kalamazoo-Portage_MI.bngl", + "file": "Kalamazoo-Portage_MI_Kalamazoo-Portage_MI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Kankakee_IL_Kankakee_IL", + "name": "Mallela 2022 - COVID-19 MSA Models - Kankakee_IL_Kankakee_IL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Kankakee_IL_Kankakee_IL.bngl", + "file": "Kankakee_IL_Kankakee_IL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Kansas_City_MO-KS_Kansas_City_MO-KS", + "name": "Mallela 2022 - COVID-19 MSA Models - Kansas_City_MO-KS_Kansas_City_MO-KS", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Kansas_City_MO-KS_Kansas_City_MO-KS.bngl", + "file": "Kansas_City_MO-KS_Kansas_City_MO-KS.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Kennewick-Richland_WA_Kennewick-Richland_WA", + "name": "Mallela 2022 - COVID-19 MSA Models - Kennewick-Richland_WA_Kennewick-Richland_WA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Kennewick-Richland_WA_Kennewick-Richland_WA.bngl", + "file": "Kennewick-Richland_WA_Kennewick-Richland_WA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Kesseler_2013", + "name": "Kesseler 2013", + "description": "G2/Mitosis transition", + "path": "Published/Kesseler2013/Kesseler_2013.bngl", + "file": "Kesseler_2013.bngl", + "tags": [ + "published", + "kesseler", + "2013", + "mpf", + "cdc25", + "wee1", + "myt1", + "pin1", + "pp2a", + "prox", + "e33" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Kiefhaber_emodel", + "name": "Kiefhaber_emodel", + "description": "Allow molar units to be used for bimolecular rate constants", + "path": "Contributed/BNGPlayground_Validation/Kiefhaberemodel/Kiefhaber_emodel.bngl", + "file": "Kiefhaber_emodel.bngl", + "tags": [ + "validation", + "kiefhaber", + "emodel", + "setoption", + "l", + "p", + "s", + "a" + ], + "category": "validation", + "bng2_compatible": false, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "Killeen-Temple_TX_Killeen-Temple_TX", + "name": "Mallela 2022 - COVID-19 MSA Models - Killeen-Temple_TX_Killeen-Temple_TX", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Killeen-Temple_TX_Killeen-Temple_TX.bngl", + "file": "Killeen-Temple_TX_Killeen-Temple_TX.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Kingston_NY_Kingston_NY", + "name": "Mallela 2022 - COVID-19 MSA Models - Kingston_NY_Kingston_NY", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Kingston_NY_Kingston_NY.bngl", + "file": "Kingston_NY_Kingston_NY.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "kir-channel-regulation", + "name": "kir channel regulation", + "description": "Kir Channel Regulation: PIP2 modulation and G-protein potentiation.", + "path": "Contributed/BNGPlayground_Examples/biology/kirchannelregulation/kir-channel-regulation.bngl", + "file": "kir-channel-regulation.bngl", + "tags": [ + "kir", + "channel", + "regulation", + "pip2", + "gbg", + "v_opening", + "v_gbg_factor" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Knoxville_TN_Knoxville_TN", + "name": "Mallela 2022 - COVID-19 MSA Models - Knoxville_TN_Knoxville_TN", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Knoxville_TN_Knoxville_TN.bngl", + "file": "Knoxville_TN_Knoxville_TN.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Kocieniewski_2012", + "name": "Kocieniewski 2012", + "description": "Actin dynamics", + "path": "Published/Kocieniewski2012/Kocieniewski_2012.bngl", + "file": "Kocieniewski_2012.bngl", + "tags": [ + "published", + "kocieniewski", + "2012", + "map3k", + "map2k", + "mapk", + "scaff" + ], + "category": "regulation", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Kokomo_IN_Kokomo_IN", + "name": "Mallela 2022 - COVID-19 MSA Models - Kokomo_IN_Kokomo_IN", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Kokomo_IN_Kokomo_IN.bngl", + "file": "Kokomo_IN_Kokomo_IN.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Korwek_2023", + "name": "Korwek_2023", + "description": "This BioNetGen file features the article:", + "path": "Contributed/BNGPlayground_Validation/Korwek2023/Korwek_2023.bngl", + "file": "Korwek_2023.bngl", + "tags": [ + "validation", + "korwek", + "2023", + "polyic", + "rigi", + "mavs", + "pkr", + "oas3", + "rnasel", + "eif2a", + "rigi_mrna" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "Kozer_2013", + "name": "Kozer 2013", + "description": "EGFR oligomerization", + "path": "Published/Kozer2013/Kozer_2013.bngl", + "file": "Kozer_2013.bngl", + "tags": [ + "published", + "kozer", + "2013", + "egf", + "egfr" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Kozer_2014", + "name": "Kozer 2014", + "description": "Grb2-EGFR recruitment", + "path": "Published/Kozer2014/Kozer_2014.bngl", + "file": "Kozer_2014.bngl", + "tags": [ + "published", + "kozer", + "2014", + "egf", + "egfr", + "grb2" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "l-type-calcium-channel-dynamics", + "name": "l type calcium channel dynamics", + "description": "L-type Calcium Channel: Voltage gating and CDI (Calcium-dependent inactivation).", + "path": "Contributed/BNGPlayground_Examples/biology/ltypecalciumchanneldynamics/l-type-calcium-channel-dynamics.bngl", + "file": "l-type-calcium-channel-dynamics.bngl", + "tags": [ + "l", + "type", + "calcium", + "channel", + "dynamics", + "ltcc", + "voltage", + "v_open", + "v_inact" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "lac-operon-regulation", + "name": "lac operon regulation", + "description": "Kinetic Parameters", + "path": "Contributed/BNGPlayground_Examples/biology/lacoperonregulation/lac-operon-regulation.bngl", + "file": "lac-operon-regulation.bngl", + "tags": [ + "lac", + "operon", + "regulation", + "laci", + "promoter", + "mrna", + "betagal", + "lactose", + "allolactose" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Lafayette_LA_Lafayette_LA", + "name": "Mallela 2022 - COVID-19 MSA Models - Lafayette_LA_Lafayette_LA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Lafayette_LA_Lafayette_LA.bngl", + "file": "Lafayette_LA_Lafayette_LA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lafayette-West_Lafayette_IN_Lafayette-West_Lafayette_IN", + "name": "Mallela 2022 - COVID-19 MSA Models - Lafayette-West_Lafayette_IN_Lafayette-West_Lafayette_IN", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Lafayette-West_Lafayette_IN_Lafayette-West_Lafayette_IN.bngl", + "file": "Lafayette-West_Lafayette_IN_Lafayette-West_Lafayette_IN.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lake_Charles_LA_Lake_Charles_LA", + "name": "Mallela 2022 - COVID-19 MSA Models - Lake_Charles_LA_Lake_Charles_LA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Lake_Charles_LA_Lake_Charles_LA.bngl", + "file": "Lake_Charles_LA_Lake_Charles_LA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lake_Havasu_City-Kingman_AZ_Lake_Havasu_City-Kingman_AZ", + "name": "Mallela 2022 - COVID-19 MSA Models - Lake_Havasu_City-Kingman_AZ_Lake_Havasu_City-Kingman_AZ", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Lake_Havasu_City-Kingman_AZ_Lake_Havasu_City-Kingman_AZ.bngl", + "file": "Lake_Havasu_City-Kingman_AZ_Lake_Havasu_City-Kingman_AZ.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lakeland-Winter_Haven_FL_Lakeland-Winter_Haven_FL", + "name": "Mallela 2022 - COVID-19 MSA Models - Lakeland-Winter_Haven_FL_Lakeland-Winter_Haven_FL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Lakeland-Winter_Haven_FL_Lakeland-Winter_Haven_FL.bngl", + "file": "Lakeland-Winter_Haven_FL_Lakeland-Winter_Haven_FL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "LaLaLand_m2", + "name": "Mallela 2021 - COVID-19 City Models - LaLaLand_m2", + "description": "Parameter-fit COVID-19 epidemiological models for major US cities.", + "path": "Published/Mallela2021_Cities/LaLaLand_m2.bngl", + "file": "LaLaLand_m2.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "Lancaster_PA_Lancaster_PA", + "name": "Mallela 2022 - COVID-19 MSA Models - Lancaster_PA_Lancaster_PA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Lancaster_PA_Lancaster_PA.bngl", + "file": "Lancaster_PA_Lancaster_PA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lang_2024", + "name": "Lang 2024", + "description": "Cell cycle regulation", + "path": "Published/Lang2024/Lang_2024.bngl", + "file": "Lang_2024.bngl", + "tags": [ + "published", + "lang", + "2024", + "e2f", + "rb1", + "ppp2r2b", + "ccnb_promoter", + "ccna", + "ccna_promoter", + "foxm1_promoter", + "ensa_arpp19" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "Lansing-East_Lansing_MI_Lansing-East_Lansing_MI", + "name": "Mallela 2022 - COVID-19 MSA Models - Lansing-East_Lansing_MI_Lansing-East_Lansing_MI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Lansing-East_Lansing_MI_Lansing-East_Lansing_MI.bngl", + "file": "Lansing-East_Lansing_MI_Lansing-East_Lansing_MI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Laredo_TX_Laredo_TX", + "name": "Mallela 2022 - COVID-19 MSA Models - Laredo_TX_Laredo_TX", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Laredo_TX_Laredo_TX.bngl", + "file": "Laredo_TX_Laredo_TX.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Las_Cruces_NM_Las_Cruces_NM", + "name": "Mallela 2022 - COVID-19 MSA Models - Las_Cruces_NM_Las_Cruces_NM", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Las_Cruces_NM_Las_Cruces_NM.bngl", + "file": "Las_Cruces_NM_Las_Cruces_NM.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Las_Vegas-Henderson-Paradise_NV_Las_Vegas-Henderson-Paradise_NV", + "name": "Mallela 2022 - COVID-19 MSA Models - Las_Vegas-Henderson-Paradise_NV_Las_Vegas-Henderson-Paradise_NV", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Las_Vegas-Henderson-Paradise_NV_Las_Vegas-Henderson-Paradise_NV.bngl", + "file": "Las_Vegas-Henderson-Paradise_NV_Las_Vegas-Henderson-Paradise_NV.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lawton_OK_Lawton_OK", + "name": "Mallela 2022 - COVID-19 MSA Models - Lawton_OK_Lawton_OK", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Lawton_OK_Lawton_OK.bngl", + "file": "Lawton_OK_Lawton_OK.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lebanon_PA_Lebanon_PA", + "name": "Mallela 2022 - COVID-19 MSA Models - Lebanon_PA_Lebanon_PA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Lebanon_PA_Lebanon_PA.bngl", + "file": "Lebanon_PA_Lebanon_PA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lexington-Fayette_KY_Lexington-Fayette_KY", + "name": "Mallela 2022 - COVID-19 MSA Models - Lexington-Fayette_KY_Lexington-Fayette_KY", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Lexington-Fayette_KY_Lexington-Fayette_KY.bngl", + "file": "Lexington-Fayette_KY_Lexington-Fayette_KY.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Ligon_2014", + "name": "Ligon 2014", + "description": "Lipoplex delivery", + "path": "Published/Ligon2014/Ligon_2014.bngl", + "file": "Ligon_2014.bngl", + "tags": [ + "published", + "nfsim", + "ligon", + "2014", + "lext", + "pit", + "lint" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "LilyIgE", + "name": "LilyIgE", + "description": "An example from a real application", + "path": "PyBioNetGen/tests/LilyIgE/LilyIgE.bngl", + "file": "LilyIgE.bngl", + "tags": [ + "lilyige", + "ag", + "r", + "syk", + "ship1", + "x", + "pip3", + "h" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "Lin_ERK_2019", + "name": "Lin 2019", + "description": "ERK signaling", + "path": "Published/LinERK2019/Lin_ERK_2019.bngl", + "file": "Lin_ERK_2019.bngl", + "tags": [ + "published", + "literature", + "signaling", + "lin", + "erk", + "2019", + "egfr", + "sos", + "ras", + "rasgap", + "raf", + "mek", + "ekar3" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "Lin_Prion_2019", + "name": "Lin 2019", + "description": "Prion replication", + "path": "Published/LinPrion2019/Lin_Prion_2019.bngl", + "file": "Lin_Prion_2019.bngl", + "tags": [ + "published", + "literature", + "prion", + "lin", + "2019", + "prp", + "scaledupspecies1", + "scaledupspecies2", + "scaledupspecies15", + "scaledupspecies30" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Lin_TCR_2019", + "name": "Lin 2019", + "description": "TCR signaling", + "path": "Published/LinTCR2019/Lin_TCR_2019.bngl", + "file": "Lin_TCR_2019.bngl", + "tags": [ + "published", + "literature", + "immune", + "lin", + "tcr", + "2019", + "pmhc", + "lck", + "shp", + "zap", + "mek", + "erk" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "Lincoln_NE_Lincoln_NE", + "name": "Mallela 2022 - COVID-19 MSA Models - Lincoln_NE_Lincoln_NE", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Lincoln_NE_Lincoln_NE.bngl", + "file": "Lincoln_NE_Lincoln_NE.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "lipid-mediated-pip3-signaling", + "name": "lipid mediated pip3 signaling", + "description": "Kinetic Parameters", + "path": "Contributed/BNGPlayground_Examples/biology/lipidmediatedpip3signaling/lipid-mediated-pip3-signaling.bngl", + "file": "lipid-mediated-pip3-signaling.bngl", + "tags": [ + "lipid", + "mediated", + "pip3", + "signaling", + "pi3k", + "pip2", + "pten", + "pdk1" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Lisman", + "name": "Lisman", + "description": "title: auto.bngl", + "path": "Tutorials/NativeTutorials/Lisman/Lisman.bngl", + "file": "Lisman.bngl", + "tags": [ + "lisman", + "k1", + "p", + "input", + "visualize", + "setparameter", + "simulate" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "Lisman_bifurcate", + "name": "Lisman bifurcate", + "description": "title: Lisman_bifurcate.bngl", + "path": "Tutorials/NativeTutorials/Lismanbifurcate/Lisman_bifurcate.bngl", + "file": "Lisman_bifurcate.bngl", + "tags": [ + "lisman", + "bifurcate", + "k1", + "p" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "Little_Rock-North_Little_Rock-Conway_AR_Little_Rock-North_Little_Rock-Conway_AR", + "name": "Mallela 2022 - COVID-19 MSA Models - Little_Rock-North_Little_Rock-Conway_AR_Little_Rock-North_Little_Rock-Conway_AR", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Little_Rock-North_Little_Rock-Conway_AR_Little_Rock-North_Little_Rock-Conway_AR.bngl", + "file": "Little_Rock-North_Little_Rock-Conway_AR_Little_Rock-North_Little_Rock-Conway_AR.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "localfunc", + "name": "localfunc", + "description": "Test local function expansion", + "path": "Contributed/BNGPlayground_Validation/localfunc/localfunc.bngl", + "file": "localfunc.bngl", + "tags": [ + "validation", + "localfunc", + "a", + "b", + "c", + "trash", + "f_synth" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "Longview_TX_Longview_TX", + "name": "Mallela 2022 - COVID-19 MSA Models - Longview_TX_Longview_TX", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Longview_TX_Longview_TX.bngl", + "file": "Longview_TX_Longview_TX.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Los_Angeles-Long_Beach-Anaheim_CA_Los_Angeles-Long_Beach-Anaheim_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - Los_Angeles-Long_Beach-Anaheim_CA_Los_Angeles-Long_Beach-Anaheim_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Los_Angeles-Long_Beach-Anaheim_CA_Los_Angeles-Long_Beach-Anaheim_CA.bngl", + "file": "Los_Angeles-Long_Beach-Anaheim_CA_Los_Angeles-Long_Beach-Anaheim_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Louisville_Jefferson_County_KY-IN_Louisville_Jefferson_County_KY-IN", + "name": "Mallela 2022 - COVID-19 MSA Models - Louisville_Jefferson_County_KY-IN_Louisville_Jefferson_County_KY-IN", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Louisville_Jefferson_County_KY-IN_Louisville_Jefferson_County_KY-IN.bngl", + "file": "Louisville_Jefferson_County_KY-IN_Louisville_Jefferson_County_KY-IN.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "LR", + "name": "LR", + "description": "title: LR.bngl", + "path": "Tutorials/NativeTutorials/LR/LR.bngl", + "file": "LR.bngl", + "tags": [ + "lr", + "l", + "r", + "simulate" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "LR_comp", + "name": "LR comp", + "description": "title: LR_comp.bngl", + "path": "Tutorials/NativeTutorials/LRcomp/LR_comp.bngl", + "file": "LR_comp.bngl", + "tags": [ + "lr", + "comp", + "l", + "r", + "simulate" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "LRR", + "name": "LRR", + "description": "title: LRR.bngl", + "path": "Tutorials/NativeTutorials/LRR/LRR.bngl", + "file": "LRR.bngl", + "tags": [ + "lrr", + "l", + "r" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "LRR_comp", + "name": "LRR comp", + "description": "title: LRR_comp.bngl", + "path": "Tutorials/NativeTutorials/LRRcomp/LRR_comp.bngl", + "file": "LRR_comp.bngl", + "tags": [ + "lrr", + "comp", + "l", + "r", + "simulate" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "Lubbock_TX_Lubbock_TX", + "name": "Mallela 2022 - COVID-19 MSA Models - Lubbock_TX_Lubbock_TX", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Lubbock_TX_Lubbock_TX.bngl", + "file": "Lubbock_TX_Lubbock_TX.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "LV", + "name": "LV", + "description": "title: LV.bgl", + "path": "Tutorials/NativeTutorials/LV/LV.bngl", + "file": "LV.bngl", + "tags": [ + "lv", + "s", + "w", + "generate_network", + "writesbml", + "simulate" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "LV_comp", + "name": "LV comp", + "description": "title: LV_comp.bgl", + "path": "Tutorials/NativeTutorials/LVcomp/LV_comp.bngl", + "file": "LV_comp.bngl", + "tags": [ + "lv", + "comp", + "k2", + "s", + "w" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": false, + "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", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Macon-Bibb_County_GA_Macon-Bibb_County_GA.bngl", + "file": "Macon-Bibb_County_GA_Macon-Bibb_County_GA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Madison_WI_Madison_WI", + "name": "Mallela 2022 - COVID-19 MSA Models - Madison_WI_Madison_WI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Madison_WI_Madison_WI.bngl", + "file": "Madison_WI_Madison_WI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "MagicCity_m7", + "name": "Mallela 2021 - COVID-19 City Models - MagicCity_m7", + "description": "Parameter-fit COVID-19 epidemiological models for major US cities.", + "path": "Published/Mallela2021_Cities/MagicCity_m7.bngl", + "file": "MagicCity_m7.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "Manchester-Nashua_NH_Manchester-Nashua_NH", + "name": "Mallela 2022 - COVID-19 MSA Models - Manchester-Nashua_NH_Manchester-Nashua_NH", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Manchester-Nashua_NH_Manchester-Nashua_NH.bngl", + "file": "Manchester-Nashua_NH_Manchester-Nashua_NH.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "mapk-dimers", + "name": "MAPK Dimers", + "description": "MAPK dimerization", + "path": "Published/mapkdimers/mapk-dimers.bngl", + "file": "mapk-dimers.bngl", + "tags": [ + "published", + "mapk", + "dimers", + "ste5", + "ste11", + "ste7", + "fus3" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "mapk-monomers", + "name": "MAPK Monomers", + "description": "MAPK cascade", + "path": "Published/mapkmonomers/mapk-monomers.bngl", + "file": "mapk-monomers.bngl", + "tags": [ + "published", + "mapk", + "monomers", + "ste5", + "ste11", + "ste7", + "fus3" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "mapk-signaling-cascade", + "name": "mapk signaling cascade", + "description": "Rate Constants", + "path": "Contributed/BNGPlayground_Examples/biology/mapksignalingcascade/mapk-signaling-cascade.bngl", + "file": "mapk-signaling-cascade.bngl", + "tags": [ + "mapk", + "signaling", + "cascade", + "ligand", + "receptor", + "mapkkk", + "mapkk" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Massole_2023", + "name": "Massole 2023", + "description": "Epo receptor signaling", + "path": "Published/Massole2023/Massole_2023.bngl", + "file": "Massole_2023.bngl", + "tags": [ + "published", + "massole", + "2023" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "McAllen-Edinburg-Mission_TX_McAllen-Edinburg-Mission_TX", + "name": "Mallela 2022 - COVID-19 MSA Models - McAllen-Edinburg-Mission_TX_McAllen-Edinburg-Mission_TX", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/McAllen-Edinburg-Mission_TX_McAllen-Edinburg-Mission_TX.bngl", + "file": "McAllen-Edinburg-Mission_TX_McAllen-Edinburg-Mission_TX.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "mCaMKII_Ca_Spike", + "name": "Ordyan 2020: mCaMKII Ca Spike", + "description": "mCaMKII Ca Spike model", + "path": "Published/Ordyan2020/mCaMKIICaSpike/mCaMKII_Ca_Spike.bngl", + "file": "mCaMKII_Ca_Spike.bngl", + "tags": [ + "published", + "neuroscience", + "mcamkii", + "ca", + "spike", + "cam", + "ng", + "camkii", + "pp1", + "time_counter" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "McMillan_2021", + "name": "McMillan 2021", + "description": "TNF signaling", + "path": "Published/McMillan2021/McMillan_2021.bngl", + "file": "McMillan_2021.bngl", + "tags": [ + "published", + "nfsim", + "mcmillan", + "2021", + "r0_tot", + "t0_tot", + "r", + "t", + "generate_network", + "simulate_ode" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "MEK_isoform_aMCMC_MEK1_KO", + "name": "Miller 2025 - MEK Isoform Models - MEK_isoform_aMCMC_MEK1_KO", + "description": "MEK isoform variant models curated for PyBioNetGen.", + "path": "Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_KO.bngl", + "file": "MEK_isoform_aMCMC_MEK1_KO.bngl", + "tags": [ + "mek", + "isoforms", + "signaling", + "pybionetgen" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "MEK_isoform_aMCMC_MEK1_N78G", + "name": "Miller 2025 - MEK Isoform Models - MEK_isoform_aMCMC_MEK1_N78G", + "description": "MEK isoform variant models curated for PyBioNetGen.", + "path": "Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_N78G.bngl", + "file": "MEK_isoform_aMCMC_MEK1_N78G.bngl", + "tags": [ + "mek", + "isoforms", + "signaling", + "pybionetgen" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "MEK_isoform_aMCMC_MEK1_T292A", + "name": "Miller 2025 - MEK Isoform Models - MEK_isoform_aMCMC_MEK1_T292A", + "description": "MEK isoform variant models curated for PyBioNetGen.", + "path": "Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_T292A.bngl", + "file": "MEK_isoform_aMCMC_MEK1_T292A.bngl", + "tags": [ + "mek", + "isoforms", + "signaling", + "pybionetgen" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "MEK_isoform_aMCMC_MEK1_T292D", + "name": "Miller 2025 - MEK Isoform Models - MEK_isoform_aMCMC_MEK1_T292D", + "description": "MEK isoform variant models curated for PyBioNetGen.", + "path": "Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_T292D.bngl", + "file": "MEK_isoform_aMCMC_MEK1_T292D.bngl", + "tags": [ + "mek", + "isoforms", + "signaling", + "pybionetgen" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "MEK_isoform_aMCMC_MEK1_WT", + "name": "Miller 2025 - MEK Isoform Models - MEK_isoform_aMCMC_MEK1_WT", + "description": "MEK isoform variant models curated for PyBioNetGen.", + "path": "Published/Miller2025_MEK/MEK_isoform_aMCMC_MEK1_WT.bngl", + "file": "MEK_isoform_aMCMC_MEK1_WT.bngl", + "tags": [ + "mek", + "isoforms", + "signaling", + "pybionetgen" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "MEK_isoform_optimization_DE_MEK1_KO", + "name": "Miller 2025 - MEK Isoform Models - MEK_isoform_optimization_DE_MEK1_KO", + "description": "MEK isoform variant models curated for PyBioNetGen.", + "path": "Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_KO.bngl", + "file": "MEK_isoform_optimization_DE_MEK1_KO.bngl", + "tags": [ + "mek", + "isoforms", + "signaling", + "pybionetgen" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "MEK_isoform_optimization_DE_MEK1_N78G", + "name": "Miller 2025 - MEK Isoform Models - MEK_isoform_optimization_DE_MEK1_N78G", + "description": "MEK isoform variant models curated for PyBioNetGen.", + "path": "Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_N78G.bngl", + "file": "MEK_isoform_optimization_DE_MEK1_N78G.bngl", + "tags": [ + "mek", + "isoforms", + "signaling", + "pybionetgen" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "MEK_isoform_optimization_DE_MEK1_T292A", + "name": "Miller 2025 - MEK Isoform Models - MEK_isoform_optimization_DE_MEK1_T292A", + "description": "MEK isoform variant models curated for PyBioNetGen.", + "path": "Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_T292A.bngl", + "file": "MEK_isoform_optimization_DE_MEK1_T292A.bngl", + "tags": [ + "mek", + "isoforms", + "signaling", + "pybionetgen" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "MEK_isoform_optimization_DE_MEK1_T292D", + "name": "Miller 2025 - MEK Isoform Models - MEK_isoform_optimization_DE_MEK1_T292D", + "description": "MEK isoform variant models curated for PyBioNetGen.", + "path": "Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_T292D.bngl", + "file": "MEK_isoform_optimization_DE_MEK1_T292D.bngl", + "tags": [ + "mek", + "isoforms", + "signaling", + "pybionetgen" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "MEK_isoform_optimization_DE_MEK1_WT", + "name": "Miller 2025 - MEK Isoform Models - MEK_isoform_optimization_DE_MEK1_WT", + "description": "MEK isoform variant models curated for PyBioNetGen.", + "path": "Published/Miller2025_MEK/MEK_isoform_optimization_DE_MEK1_WT.bngl", + "file": "MEK_isoform_optimization_DE_MEK1_WT.bngl", + "tags": [ + "mek", + "isoforms", + "signaling", + "pybionetgen" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "Memphis_TN-MS-AR_Memphis_TN-MS-AR", + "name": "Mallela 2022 - COVID-19 MSA Models - Memphis_TN-MS-AR_Memphis_TN-MS-AR", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Memphis_TN-MS-AR_Memphis_TN-MS-AR.bngl", + "file": "Memphis_TN-MS-AR_Memphis_TN-MS-AR.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Merced_CA_Merced_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - Merced_CA_Merced_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Merced_CA_Merced_CA.bngl", + "file": "Merced_CA_Merced_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Mertins_2023", + "name": "Mertins 2023", + "description": "DNA damage response", + "path": "Published/Mertins2023/Mertins_2023.bngl", + "file": "Mertins_2023.bngl", + "tags": [ + "published", + "mertins", + "2023", + "dnadsb", + "p53", + "mrna_bax", + "bax", + "bclxl", + "bad", + "fourteen_3_3", + "caspase" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "meta_formal_game_theory", + "name": "meta formal game theory", + "description": "Model: meta_formal_game_theory.bngl", + "path": "Contributed/BNGPlayground_Examples/meta/metaformalgametheory/meta_formal_game_theory.bngl", + "file": "meta_formal_game_theory.bngl", + "tags": [ + "meta", + "formal", + "game", + "theory", + "hawk", + "dove", + "pop", + "payoffh", + "payoffd" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "meta_formal_molecular_clock", + "name": "meta formal molecular clock", + "description": "Model: meta_formal_molecular_clock.bngl", + "path": "Contributed/BNGPlayground_Examples/meta/metaformalmolecularclock/meta_formal_molecular_clock.bngl", + "file": "meta_formal_molecular_clock.bngl", + "tags": [ + "meta", + "formal", + "molecular", + "clock", + "fasta", + "fastb", + "slowc", + "slowd" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "meta_formal_petri_net", + "name": "meta formal petri net", + "description": "Model: meta_formal_petri_net.bngl", + "path": "Contributed/BNGPlayground_Examples/meta/metaformalpetrinet/meta_formal_petri_net.bngl", + "file": "meta_formal_petri_net.bngl", + "tags": [ + "meta", + "formal", + "petri", + "net", + "p1", + "p2", + "p3", + "p4" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Miami-Fort_Lauderdale-West_Palm_Beach_FL_Miami-Fort_Lauderdale-West_Palm_Beach_FL", + "name": "Mallela 2022 - COVID-19 MSA Models - Miami-Fort_Lauderdale-West_Palm_Beach_FL_Miami-Fort_Lauderdale-West_Palm_Beach_FL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Miami-Fort_Lauderdale-West_Palm_Beach_FL_Miami-Fort_Lauderdale-West_Palm_Beach_FL.bngl", + "file": "Miami-Fort_Lauderdale-West_Palm_Beach_FL_Miami-Fort_Lauderdale-West_Palm_Beach_FL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "michaelis-menten-kinetics", + "name": "michaelis menten kinetics", + "description": "Kinetic Constants", + "path": "Contributed/BNGPlayground_Examples/biology/michaelismentenkinetics/michaelis-menten-kinetics.bngl", + "file": "michaelis-menten-kinetics.bngl", + "tags": [ + "michaelis", + "menten", + "kinetics", + "e", + "s", + "p", + "generate_network", + "simulate", + "writesbml" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Michigan_City-La_Porte_IN_Michigan_City-La_Porte_IN", + "name": "Mallela 2022 - COVID-19 MSA Models - Michigan_City-La_Porte_IN_Michigan_City-La_Porte_IN", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Michigan_City-La_Porte_IN_Michigan_City-La_Porte_IN.bngl", + "file": "Michigan_City-La_Porte_IN_Michigan_City-La_Porte_IN.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "michment", + "name": "michment", + "description": "Michaelis Menten", + "path": "Contributed/BNGPlayground_Validation/michment/michment.bngl", + "file": "michment.bngl", + "tags": [ + "validation", + "michment", + "e", + "s", + "generate_network" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "michment_cont", + "name": "michment_cont", + "description": "Michaelis Menten Continue", + "path": "Contributed/BNGPlayground_Validation/michmentcont/michment_cont.bngl", + "file": "michment_cont.bngl", + "tags": [ + "validation", + "michment", + "cont", + "readfile", + "setconcentration", + "simulate_ode", + "addconcentration" + ], + "category": "validation", + "bng2_compatible": false, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "Milwaukee-Waukesha_WI_Milwaukee-Waukesha_WI", + "name": "Mallela 2022 - COVID-19 MSA Models - Milwaukee-Waukesha_WI_Milwaukee-Waukesha_WI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Milwaukee-Waukesha_WI_Milwaukee-Waukesha_WI.bngl", + "file": "Milwaukee-Waukesha_WI_Milwaukee-Waukesha_WI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Minneapolis-St._Paul-Bloomington_MN-WI_Minneapolis-St._Paul-Bloomington_MN-WI", + "name": "Mallela 2022 - COVID-19 MSA Models - Minneapolis-St._Paul-Bloomington_MN-WI_Minneapolis-St._Paul-Bloomington_MN-WI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Minneapolis-St._Paul-Bloomington_MN-WI_Minneapolis-St._Paul-Bloomington_MN-WI.bngl", + "file": "Minneapolis-St._Paul-Bloomington_MN-WI_Minneapolis-St._Paul-Bloomington_MN-WI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "ml_gradient_descent", + "name": "ml gradient descent", + "description": "Gradient Descent Optimizer in BNGL", + "path": "Contributed/BNGPlayground_Examples/ml/mlgradientdescent/ml_gradient_descent.bngl", + "file": "ml_gradient_descent.bngl", + "tags": [ + "ml", + "gradient", + "descent", + "posx", + "posy", + "velx", + "vely", + "loss" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "ml_hopfield", + "name": "ml hopfield", + "description": "Model: ml_hopfield.bngl", + "path": "Contributed/BNGPlayground_Examples/ml/mlhopfield/ml_hopfield.bngl", + "file": "ml_hopfield.bngl", + "tags": [ + "ml", + "hopfield", + "neuron", + "net1", + "net2", + "net3", + "target1" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "ml_kmeans", + "name": "ml kmeans", + "description": "Model: ml_kmeans.bngl", + "path": "Contributed/BNGPlayground_Examples/ml/mlkmeans/ml_kmeans.bngl", + "file": "ml_kmeans.bngl", + "tags": [ + "ml", + "kmeans", + "ax", + "ay", + "bx", + "by" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "ml_q_learning", + "name": "ml q learning", + "description": "Q-Learning Agent in BNGL", + "path": "Contributed/BNGPlayground_Examples/ml/mlqlearning/ml_q_learning.bngl", + "file": "ml_q_learning.bngl", + "tags": [ + "ml", + "q", + "learning", + "pos", + "ql", + "qr", + "reward", + "action" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "ml_svm", + "name": "ml svm", + "description": "Model: ml_svm.bngl", + "path": "Contributed/BNGPlayground_Examples/ml/mlsvm/ml_svm.bngl", + "file": "ml_svm.bngl", + "tags": [ + "ml", + "svm", + "w1", + "w2", + "b", + "db_dt", + "dw1_dt" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Mobile_AL_Mobile_AL", + "name": "Mallela 2022 - COVID-19 MSA Models - Mobile_AL_Mobile_AL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Mobile_AL_Mobile_AL.bngl", + "file": "Mobile_AL_Mobile_AL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "model", + "name": "model", + "description": "filename: model.bngl", + "path": "PyBioNetGen/core/model/model.bngl", + "file": "model.bngl", + "tags": [ + "model", + "ag", + "r", + "syk", + "ship1", + "x", + "pip3", + "h" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "model", + "name": "model", + "description": "A model of IgE receptor signaling", + "path": "PyBioNetGen/core/model_Degranulation_aMCMC/model.bngl", + "file": "model.bngl", + "tags": [ + "model", + "ag", + "r", + "syk", + "ship1", + "x", + "pip3", + "h" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "model_tofit", + "name": "model tofit", + "description": "A model of IgE receptor signaling", + "path": "PyBioNetGen/core/modeltofit/model_tofit.bngl", + "file": "model_tofit.bngl", + "tags": [ + "model", + "tofit", + "ag", + "r", + "syk", + "ship1", + "x", + "pip3", + "h" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Model_ZAP", + "name": "Model ZAP", + "description": "ZAP-70 recruitment", + "path": "Published/ModelZAP/Model_ZAP.bngl", + "file": "Model_ZAP.bngl", + "tags": [ + "published", + "immunology", + "nfsim", + "model", + "zap", + "kon", + "a", + "cbl", + "cd16", + "lck", + "ligand", + "zeta", + "dead" + ], + "category": "immunology", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Modesto_CA_Modesto_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - Modesto_CA_Modesto_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Modesto_CA_Modesto_CA.bngl", + "file": "Modesto_CA_Modesto_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Monroe_LA_Monroe_LA", + "name": "Mallela 2022 - COVID-19 MSA Models - Monroe_LA_Monroe_LA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Monroe_LA_Monroe_LA.bngl", + "file": "Monroe_LA_Monroe_LA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Monroe_MI_Monroe_MI", + "name": "Mallela 2022 - COVID-19 MSA Models - Monroe_MI_Monroe_MI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Monroe_MI_Monroe_MI.bngl", + "file": "Monroe_MI_Monroe_MI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Montgomery_AL_Montgomery_AL", + "name": "Mallela 2022 - COVID-19 MSA Models - Montgomery_AL_Montgomery_AL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Montgomery_AL_Montgomery_AL.bngl", + "file": "Montgomery_AL_Montgomery_AL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Motivating_example", + "name": "Motivating_example", + "description": "Signal Transduction with receptor internalization", + "path": "Contributed/BNGPlayground_Validation/Motivatingexample/Motivating_example.bngl", + "file": "Motivating_example.bngl", + "tags": [ + "validation", + "motivating", + "example", + "l", + "r", + "tf", + "dna", + "mrna1", + "mrna2", + "p1", + "p2" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "Motivating_example_cBNGL", + "name": "Motivating_example_cBNGL", + "description": "Signal transduction with receptor internalization", + "path": "Contributed/BNGPlayground_Validation/MotivatingexamplecBNGL/Motivating_example_cBNGL.bngl", + "file": "Motivating_example_cBNGL.bngl", + "tags": [ + "validation", + "motivating", + "example", + "cbngl", + "l", + "r", + "tf", + "dna", + "mrna1", + "mrna2", + "p1", + "p2" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "motor", + "name": "motor", + "description": "Motor protein", + "path": "Contributed/BNGPlayground_Validation/motor/motor.bngl", + "file": "motor.bngl", + "tags": [ + "validation", + "motor", + "chey", + "kplus", + "kminus" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "MotorCity_m14", + "name": "Mallela 2021 - COVID-19 City Models - MotorCity_m14", + "description": "Parameter-fit COVID-19 epidemiological models for major US cities.", + "path": "Published/Mallela2021_Cities/MotorCity_m14.bngl", + "file": "MotorCity_m14.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "Mount_Vernon-Anacortes_WA_Mount_Vernon-Anacortes_WA", + "name": "Mallela 2022 - COVID-19 MSA Models - Mount_Vernon-Anacortes_WA_Mount_Vernon-Anacortes_WA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Mount_Vernon-Anacortes_WA_Mount_Vernon-Anacortes_WA.bngl", + "file": "Mount_Vernon-Anacortes_WA_Mount_Vernon-Anacortes_WA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "mt_arithmetic_compiler", + "name": "mt arithmetic compiler", + "description": "Model: mt_arithmetic_compiler.bngl", + "path": "Contributed/BNGPlayground_Examples/meta/mtarithmeticcompiler/mt_arithmetic_compiler.bngl", + "file": "mt_arithmetic_compiler.bngl", + "tags": [ + "mt", + "arithmetic", + "compiler", + "node", + "target_add", + "target_mult" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "mt_bngl_interpreter", + "name": "mt bngl interpreter", + "description": "Model: mt_bngl_interpreter.bngl", + "path": "Contributed/BNGPlayground_Examples/meta/mtbnglinterpreter/mt_bngl_interpreter.bngl", + "file": "mt_bngl_interpreter.bngl", + "tags": [ + "mt", + "bngl", + "interpreter", + "rule", + "species", + "exec_s1_s2", + "generate_network", + "simulate" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "mt_music_sequencer", + "name": "mt music sequencer", + "description": "Music Sequencer / Chord Synthesizer in BNGL", + "path": "Contributed/BNGPlayground_Examples/meta/mtmusicsequencer/mt_music_sequencer.bngl", + "file": "mt_music_sequencer.bngl", + "tags": [ + "mt", + "music", + "sequencer", + "v1s", + "v1c", + "v2s", + "v2c", + "v3s", + "v3c", + "mix", + "chordphase" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "mt_pascal_triangle", + "name": "mt pascal triangle", + "description": "Model: mt_pascal_triangle.bngl", + "path": "Contributed/BNGPlayground_Examples/meta/mtpascaltriangle/mt_pascal_triangle.bngl", + "file": "mt_pascal_triangle.bngl", + "tags": [ + "mt", + "pascal", + "triangle", + "node" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "mt_quine", + "name": "mt quine", + "description": "Model: mt_quine.bngl", + "path": "Contributed/BNGPlayground_Examples/meta/mtquine/mt_quine.bngl", + "file": "mt_quine.bngl", + "tags": [ + "mt", + "quine", + "gene", + "protein" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "mtor-signaling", + "name": "mtor signaling", + "description": "mTOR Signaling Pathway", + "path": "Contributed/BNGPlayground_Examples/biology/mtorsignaling/mtor-signaling.bngl", + "file": "mtor-signaling.bngl", + "tags": [ + "mtor", + "signaling", + "rheb", + "mtorc1", + "s6k", + "ampk" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "mtorc2-signaling", + "name": "mtorc2 signaling", + "description": "mTORC2 signaling regulates cell survival and growth via AKT and SGK1.", + "path": "Contributed/BNGPlayground_Examples/biology/mtorc2signaling/mtorc2-signaling.bngl", + "file": "mtorc2-signaling.bngl", + "tags": [ + "mtorc2", + "signaling", + "mtor", + "sin1", + "rictor", + "akt", + "sgk1", + "pip3" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Mukhopadhyay_2013", + "name": "Mukhopadhyay 2013", + "description": "FceRI signaling", + "path": "Published/Mukhopadhyay2013/Mukhopadhyay_2013.bngl", + "file": "Mukhopadhyay_2013.bngl", + "tags": [ + "published", + "immunology", + "mukhopadhyay", + "2013", + "s", + "e", + "f", + "z" + ], + "category": "immunology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Muncie_IN_Muncie_IN", + "name": "Mallela 2022 - COVID-19 MSA Models - Muncie_IN_Muncie_IN", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Muncie_IN_Muncie_IN.bngl", + "file": "Muncie_IN_Muncie_IN.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Muskegon_MI_Muskegon_MI", + "name": "Mallela 2022 - COVID-19 MSA Models - Muskegon_MI_Muskegon_MI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Muskegon_MI_Muskegon_MI.bngl", + "file": "Muskegon_MI_Muskegon_MI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "mwc", + "name": "mwc", + "description": "Monod-Wyman-Changeux model", + "path": "Contributed/BNGPlayground_Validation/mwc/mwc.bngl", + "file": "mwc.bngl", + "tags": [ + "validation", + "mwc", + "setoption", + "h", + "ox", + "b" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "myogenic-differentiation", + "name": "myogenic differentiation", + "description": "Myogenic Differentiation", + "path": "Contributed/BNGPlayground_Examples/biology/myogenicdifferentiation/myogenic-differentiation.bngl", + "file": "myogenic-differentiation.bngl", + "tags": [ + "myogenic", + "differentiation", + "myod", + "myog", + "mef2" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC", + "name": "Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC", + "description": "Runtime-only BNGL model migrated from public/models: Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC", + "path": "Contributed/BNGPlayground_PublicRuntime/MyrtleBeachConwayNorthMyrtleBeachSCNC/Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC.bngl", + "file": "Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC.bngl", + "tags": [ + "myrtle", + "beach", + "conway", + "north", + "sc", + "nc" + ], + "category": "other", + "bng2_compatible": true, + "origin": "contributed", + "visible": false, + "collectionId": null + }, + { + "id": "Nag_2009", + "name": "Nag 2009", + "description": "LAT-Grb2-SOS1 signaling", + "path": "Published/Nag2009/Nag_2009.bngl", + "file": "Nag_2009.bngl", + "tags": [ + "published", + "nag", + "2009", + "lig", + "lyn", + "syk", + "rec", + "lat", + "grb", + "sos" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Naples-Marco_Island_FL_Naples-Marco_Island_FL", + "name": "Mallela 2022 - COVID-19 MSA Models - Naples-Marco_Island_FL_Naples-Marco_Island_FL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Naples-Marco_Island_FL_Naples-Marco_Island_FL.bngl", + "file": "Naples-Marco_Island_FL_Naples-Marco_Island_FL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Nashville-Davidson-Murfreesboro-Franklin_TN_Nashville-Davidson-Murfreesboro-Franklin_TN", + "name": "Mallela 2022 - COVID-19 MSA Models - Nashville-Davidson-Murfreesboro-Franklin_TN_Nashville-Davidson-Murfreesboro-Franklin_TN", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Nashville-Davidson-Murfreesboro-Franklin_TN_Nashville-Davidson-Murfreesboro-Franklin_TN.bngl", + "file": "Nashville-Davidson-Murfreesboro-Franklin_TN_Nashville-Davidson-Murfreesboro-Franklin_TN.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "negative-feedback-loop", + "name": "negative feedback loop", + "description": "Negative Feedback Loop", + "path": "Contributed/BNGPlayground_Examples/biology/negativefeedbackloop/negative-feedback-loop.bngl", + "file": "negative-feedback-loop.bngl", + "tags": [ + "negative", + "feedback", + "loop", + "gene", + "mrna", + "protein" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "neurotransmitter-release", + "name": "neurotransmitter release", + "description": "Neurotransmitter Release", + "path": "Contributed/BNGPlayground_Examples/biology/neurotransmitterrelease/neurotransmitter-release.bngl", + "file": "neurotransmitter-release.bngl", + "tags": [ + "neurotransmitter", + "release", + "calcium", + "snare", + "vesicle", + "postsynaptic" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "New_Haven-Milford_CT_New_Haven-Milford_CT", + "name": "Mallela 2022 - COVID-19 MSA Models - New_Haven-Milford_CT_New_Haven-Milford_CT", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/New_Haven-Milford_CT_New_Haven-Milford_CT.bngl", + "file": "New_Haven-Milford_CT_New_Haven-Milford_CT.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "New_Orleans-Metairie_LA_New_Orleans-Metairie_LA", + "name": "Mallela 2022 - COVID-19 MSA Models - New_Orleans-Metairie_LA_New_Orleans-Metairie_LA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/New_Orleans-Metairie_LA_New_Orleans-Metairie_LA.bngl", + "file": "New_Orleans-Metairie_LA_New_Orleans-Metairie_LA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "New_York-Newark-Jersey_City_NY-NJ-PA_New_York-Newark-Jersey_City_NY-NJ-PA", + "name": "Mallela 2022 - COVID-19 MSA Models - New_York-Newark-Jersey_City_NY-NJ-PA_New_York-Newark-Jersey_City_NY-NJ-PA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/New_York-Newark-Jersey_City_NY-NJ-PA_New_York-Newark-Jersey_City_NY-NJ-PA.bngl", + "file": "New_York-Newark-Jersey_City_NY-NJ-PA_New_York-Newark-Jersey_City_NY-NJ-PA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "nfkb", + "name": "nfkb", + "description": "NF-kB signaling pathway", + "path": "Contributed/BNGPlayground_Validation/nfkb/nfkb.bngl", + "file": "nfkb.bngl", + "tags": [ + "validation", + "nfkb", + "tnfr", + "ikkk", + "tnf", + "ikk", + "ikba", + "a20", + "competitor" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "nfkb_illustrating_protocols", + "name": "nfkb_illustrating_protocols", + "description": "NF-kB signaling pathway", + "path": "Contributed/BNGPlayground_Validation/nfkbillustratingprotocols/nfkb_illustrating_protocols.bngl", + "file": "nfkb_illustrating_protocols.bngl", + "tags": [ + "validation", + "nfkb", + "illustrating", + "protocols", + "tnfr", + "ikkk", + "tnf", + "ikk", + "ikba", + "a20", + "competitor" + ], + "category": "validation", + "bng2_compatible": false, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "nfkb-feedback", + "name": "nfkb feedback", + "description": "TNFalpha-induced NF-kB signaling with IkappaB-alpha feedback.", + "path": "Contributed/BNGPlayground_Examples/biology/nfkbfeedback/nfkb-feedback.bngl", + "file": "nfkb-feedback.bngl", + "tags": [ + "nfkb", + "feedback", + "ikb", + "ikk", + "a20" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "NFmodel", + "name": "NFmodel", + "description": "BioNetGen model: NFmodel", + "path": "PyBioNetGen/tests/NFmodel/NFmodel.bngl", + "file": "NFmodel.bngl", + "tags": [ + "nfmodel", + "ag", + "ab", + "simulate" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "nfsim_aggregation_gelation", + "name": "nfsim aggregation gelation", + "description": "Model: nfsim_aggregation_gelation.bngl", + "path": "Contributed/BNGPlayground_Examples/nfsim/nfsimaggregationgelation/nfsim_aggregation_gelation.bngl", + "file": "nfsim_aggregation_gelation.bngl", + "tags": [ + "nfsim", + "aggregation", + "gelation", + "m" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "nfsim_coarse_graining", + "name": "nfsim coarse graining", + "description": "Model: nfsim_coarse_graining.bngl", + "path": "Contributed/BNGPlayground_Examples/nfsim/nfsimcoarsegraining/nfsim_coarse_graining.bngl", + "file": "nfsim_coarse_graining.bngl", + "tags": [ + "nfsim", + "coarse", + "graining", + "droplet" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "nfsim_dynamic_compartments", + "name": "nfsim dynamic compartments", + "description": "Model: nfsim_dynamic_compartments.bngl", + "path": "Contributed/BNGPlayground_Examples/nfsim/nfsimdynamiccompartments/nfsim_dynamic_compartments.bngl", + "file": "nfsim_dynamic_compartments.bngl", + "tags": [ + "nfsim", + "dynamic", + "compartments", + "cell", + "generate_network", + "simulate" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "nfsim_hybrid_particle_field", + "name": "nfsim hybrid particle field", + "description": "Model: nfsim_hybrid_particle_field.bngl", + "path": "Contributed/BNGPlayground_Examples/nfsim/nfsimhybridparticlefield/nfsim_hybrid_particle_field.bngl", + "file": "nfsim_hybrid_particle_field.bngl", + "tags": [ + "nfsim", + "hybrid", + "particle", + "field" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "nfsim_ring_closure_polymer", + "name": "nfsim ring closure polymer", + "description": "Model: nfsim_ring_closure_polymer.bngl", + "path": "Contributed/BNGPlayground_Examples/nfsim/nfsimringclosurepolymer/nfsim_ring_closure_polymer.bngl", + "file": "nfsim_ring_closure_polymer.bngl", + "tags": [ + "nfsim", + "ring", + "closure", + "polymer", + "a", + "generate_network", + "simulate" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Niles_MI_Niles_MI", + "name": "Mallela 2022 - COVID-19 MSA Models - Niles_MI_Niles_MI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Niles_MI_Niles_MI.bngl", + "file": "Niles_MI_Niles_MI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "nn_xor", + "name": "nn xor", + "description": "Model: nn_xor.bngl", + "path": "Contributed/BNGPlayground_Examples/ml/nnxor/nn_xor.bngl", + "file": "nn_xor.bngl", + "tags": [ + "nn", + "xor", + "input", + "hidden", + "output", + "target", + "weightih", + "weightho", + "dopamine" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "no_frees", + "name": "no frees", + "description": "Original values used to generate parabola.exp", + "path": "PyBioNetGen/tests/nofrees/no_frees.bngl", + "file": "no_frees.bngl", + "tags": [ + "no", + "frees", + "counter", + "y", + "generate_network", + "simulate" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "no_generate_network", + "name": "no generate network", + "description": "Original values used to generate parabola.exp", + "path": "PyBioNetGen/tests/nogeneratenetwork/no_generate_network.bngl", + "file": "no_generate_network.bngl", + "tags": [ + "no", + "generate", + "network", + "counter", + "y", + "simulate" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "no_suffix", + "name": "no suffix", + "description": "Original values used to generate parabola.exp", + "path": "PyBioNetGen/tests/nosuffix/no_suffix.bngl", + "file": "no_suffix.bngl", + "tags": [ + "no", + "suffix", + "counter", + "y", + "generate_network", + "simulate" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "no-cgmp-signaling", + "name": "no cgmp signaling", + "description": "Nitric Oxide (NO) / cGMP signaling pathway.", + "path": "Contributed/BNGPlayground_Examples/biology/nocgmpsignaling/no-cgmp-signaling.bngl", + "file": "no-cgmp-signaling.bngl", + "tags": [ + "no", + "cgmp", + "signaling", + "sgc", + "pkg" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "North_Port-Sarasota-Bradenton_FL_North_Port-Sarasota-Bradenton_FL", + "name": "Mallela 2022 - COVID-19 MSA Models - North_Port-Sarasota-Bradenton_FL_North_Port-Sarasota-Bradenton_FL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/North_Port-Sarasota-Bradenton_FL_North_Port-Sarasota-Bradenton_FL.bngl", + "file": "North_Port-Sarasota-Bradenton_FL_North_Port-Sarasota-Bradenton_FL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Norwich-New_London_CT_Norwich-New_London_CT", + "name": "Mallela 2022 - COVID-19 MSA Models - Norwich-New_London_CT_Norwich-New_London_CT", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Norwich-New_London_CT_Norwich-New_London_CT.bngl", + "file": "Norwich-New_London_CT_Norwich-New_London_CT.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Nosbisch_2022", + "name": "Nosbisch 2022", + "description": "RTK-PLCgamma1 signaling", + "path": "Published/Nosbisch2022/Nosbisch_2022.bngl", + "file": "Nosbisch_2022.bngl", + "tags": [ + "published", + "nosbisch", + "2022", + "rtk", + "plcgamma1", + "generate_network" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "notch", + "name": "Notch", + "description": "Notch signaling", + "path": "Published/notch/notch.bngl", + "file": "notch.bngl", + "tags": [ + "published", + "notch", + "icn", + "ofut1", + "fringe", + "furin", + "dsl", + "csl", + "maml" + ], + "category": "regulation", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "notch-delta-lateral-inhibition", + "name": "notch delta lateral inhibition", + "description": "Notch-Delta Lateral Inhibition", + "path": "Contributed/BNGPlayground_Examples/biology/notchdeltalateralinhibition/notch-delta-lateral-inhibition.bngl", + "file": "notch-delta-lateral-inhibition.bngl", + "tags": [ + "notch", + "delta", + "lateral", + "inhibition", + "cellnotch", + "celldelta" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "NYC", + "name": "NYC", + "description": "- This model is intended to be consistent with the compartmental model", + "path": "Published/VaxAndVariants/NYC/NYC.bngl", + "file": "NYC.bngl", + "tags": [ + "nyc", + "counter", + "fdcs", + "s", + "sv", + "e", + "a", + "i", + "v" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Ocala_FL_Ocala_FL", + "name": "Mallela 2022 - COVID-19 MSA Models - Ocala_FL_Ocala_FL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Ocala_FL_Ocala_FL.bngl", + "file": "Ocala_FL_Ocala_FL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Ocean_City_NJ_Ocean_City_NJ", + "name": "Mallela 2022 - COVID-19 MSA Models - Ocean_City_NJ_Ocean_City_NJ", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Ocean_City_NJ_Ocean_City_NJ.bngl", + "file": "Ocean_City_NJ_Ocean_City_NJ.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Ogden-Clearfield_UT_Ogden-Clearfield_UT", + "name": "Mallela 2022 - COVID-19 MSA Models - Ogden-Clearfield_UT_Ogden-Clearfield_UT", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Ogden-Clearfield_UT_Ogden-Clearfield_UT.bngl", + "file": "Ogden-Clearfield_UT_Ogden-Clearfield_UT.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Oklahoma_City_OK_Oklahoma_City_OK", + "name": "Mallela 2022 - COVID-19 MSA Models - Oklahoma_City_OK_Oklahoma_City_OK", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Oklahoma_City_OK_Oklahoma_City_OK.bngl", + "file": "Oklahoma_City_OK_Oklahoma_City_OK.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Omaha-Council_Bluffs_NE-IA_Omaha-Council_Bluffs_NE-IA", + "name": "Mallela 2022 - COVID-19 MSA Models - Omaha-Council_Bluffs_NE-IA_Omaha-Council_Bluffs_NE-IA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Omaha-Council_Bluffs_NE-IA_Omaha-Council_Bluffs_NE-IA.bngl", + "file": "Omaha-Council_Bluffs_NE-IA_Omaha-Council_Bluffs_NE-IA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "organelle_transport", + "name": "organelle transport", + "description": "title: organelle_transport.bngl", + "path": "Tutorials/NativeTutorials/organelletransport/organelle_transport.bngl", + "file": "organelle_transport.bngl", + "tags": [ + "organelle", + "transport", + "a", + "b", + "c", + "d", + "t1", + "at1", + "ct1", + "t2" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "organelle_transport_struct", + "name": "organelle transport struct", + "description": "title: organelle_transport_abcd.bngl", + "path": "Tutorials/NativeTutorials/organelletransportstruct/organelle_transport_struct.bngl", + "file": "organelle_transport_struct.bngl", + "tags": [ + "organelle", + "transport", + "struct", + "a", + "b", + "t1", + "t2" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "Orlando-Kissimmee-Sanford_FL_Orlando-Kissimmee-Sanford_FL", + "name": "Mallela 2022 - COVID-19 MSA Models - Orlando-Kissimmee-Sanford_FL_Orlando-Kissimmee-Sanford_FL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Orlando-Kissimmee-Sanford_FL_Orlando-Kissimmee-Sanford_FL.bngl", + "file": "Orlando-Kissimmee-Sanford_FL_Orlando-Kissimmee-Sanford_FL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Owensboro_KY_Owensboro_KY", + "name": "Mallela 2022 - COVID-19 MSA Models - Owensboro_KY_Owensboro_KY", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Owensboro_KY_Owensboro_KY.bngl", + "file": "Owensboro_KY_Owensboro_KY.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "oxidative-stress-response", + "name": "oxidative stress response", + "description": "Oxidative Stress Response (Keap1-Nrf2 Pathway)", + "path": "Contributed/BNGPlayground_Examples/biology/oxidativestressresponse/oxidative-stress-response.bngl", + "file": "oxidative-stress-response.bngl", + "tags": [ + "oxidative", + "stress", + "response", + "ros", + "keap1", + "nrf2", + "antioxidant" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Oxnard-Thousand_Oaks-Ventura_CA_Oxnard-Thousand_Oaks-Ventura_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - Oxnard-Thousand_Oaks-Ventura_CA_Oxnard-Thousand_Oaks-Ventura_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Oxnard-Thousand_Oaks-Ventura_CA_Oxnard-Thousand_Oaks-Ventura_CA.bngl", + "file": "Oxnard-Thousand_Oaks-Ventura_CA_Oxnard-Thousand_Oaks-Ventura_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "p38-mapk-signaling", + "name": "p38 mapk signaling", + "description": "p38 MAPK stress signaling cascade.", + "path": "Contributed/BNGPlayground_Examples/biology/p38mapksignaling/p38-mapk-signaling.bngl", + "file": "p38-mapk-signaling.bngl", + "tags": [ + "p38", + "mapk", + "signaling", + "mkk3", + "mapkap2", + "v_thermal" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "p53-mdm2-oscillator", + "name": "p53 mdm2 oscillator", + "description": "BioNetGen model: p53 mdm2 oscillator", + "path": "Contributed/BNGPlayground_Examples/biology/p53mdm2oscillator/p53-mdm2-oscillator.bngl", + "file": "p53-mdm2-oscillator.bngl", + "tags": [ + "p53", + "mdm2", + "oscillator", + "generate_network" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Palm_Bay-Melbourne-Titusville_FL_Palm_Bay-Melbourne-Titusville_FL", + "name": "Mallela 2022 - COVID-19 MSA Models - Palm_Bay-Melbourne-Titusville_FL_Palm_Bay-Melbourne-Titusville_FL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Palm_Bay-Melbourne-Titusville_FL_Palm_Bay-Melbourne-Titusville_FL.bngl", + "file": "Palm_Bay-Melbourne-Titusville_FL_Palm_Bay-Melbourne-Titusville_FL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "parabola", + "name": "parabola", + "description": "Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1", + "path": "PyBioNetGen/core/parabola/parabola.bngl", + "file": "parabola.bngl", + "tags": [ + "parabola", + "counter", + "par", + "line", + "generate_network", + "simulate" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "parabola", + "name": "parabola", + "description": "Original values used to generate parabola.exp", + "path": "PyBioNetGen/core/parabola_demo/parabola.bngl", + "file": "parabola.bngl", + "tags": [ + "parabola", + "counter", + "y", + "generate_network", + "simulate" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "parabola", + "name": "parabola", + "description": "Original values used to generate parabola.exp", + "path": "PyBioNetGen/tests/parabola/parabola.bngl", + "file": "parabola.bngl", + "tags": [ + "parabola", + "counter", + "y", + "generate_network", + "simulate", + "resetconcentrations" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "parabola", + "name": "parabola", + "description": "Original values used to generate parabola.exp", + "path": "PyBioNetGen/tests/parabola_bngl_files/parabola.bngl", + "file": "parabola.bngl", + "tags": [ + "parabola", + "counter", + "y", + "generate_network", + "simulate" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "parabola", + "name": "parabola", + "description": "Original values used to generate parabola.exp", + "path": "PyBioNetGen/tests/parabola_bngl_files_special_cases_model_check/parabola.bngl", + "file": "parabola.bngl", + "tags": [ + "parabola", + "counter", + "y", + "generate_network", + "simulate" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "parabola_ground", + "name": "parabola ground", + "description": "Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1", + "path": "PyBioNetGen/core/parabolaground/parabola_ground.bngl", + "file": "parabola_ground.bngl", + "tags": [ + "parabola", + "ground", + "counter", + "par", + "line", + "generate_network", + "simulate" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "parabola2", + "name": "parabola2", + "description": "A file for testing behavior with duplicate file names", + "path": "PyBioNetGen/tests/parabola2/parabola2.bngl", + "file": "parabola2.bngl", + "tags": [ + "parabola2", + "counter", + "y", + "generate_network", + "simulate", + "resetconcentrations" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "ParamsEverywhere", + "name": "ParamsEverywhere", + "description": "An example from a real application", + "path": "PyBioNetGen/tests/ParamsEverywhere/ParamsEverywhere.bngl", + "file": "ParamsEverywhere.bngl", + "tags": [ + "paramseverywhere", + "ag", + "r", + "h" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "parp1-mediated-dna-repair", + "name": "parp1 mediated dna repair", + "description": "PARP1-mediated DNA damage sensing and repair.", + "path": "Contributed/BNGPlayground_Examples/biology/parp1mediateddnarepair/parp1-mediated-dna-repair.bngl", + "file": "parp1-mediated-dna-repair.bngl", + "tags": [ + "parp1", + "mediated", + "dna", + "repair", + "par", + "nad", + "v_parylate" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Pekalski_2013", + "name": "Pekalski 2013", + "description": "Spontaneous signaling", + "path": "Published/Pekalski2013/Pekalski_2013.bngl", + "file": "Pekalski_2013.bngl", + "tags": [ + "published", + "pekalski", + "2013", + "tnfr", + "ikk", + "ikkk", + "ikba", + "ikba_mrna", + "a20", + "a20_mrna", + "nfkb" + ], + "category": "regulation", + "bng2_compatible": false, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "Pensacola-Ferry_Pass-Brent_FL_Pensacola-Ferry_Pass-Brent_FL", + "name": "Mallela 2022 - COVID-19 MSA Models - Pensacola-Ferry_Pass-Brent_FL_Pensacola-Ferry_Pass-Brent_FL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Pensacola-Ferry_Pass-Brent_FL_Pensacola-Ferry_Pass-Brent_FL.bngl", + "file": "Pensacola-Ferry_Pass-Brent_FL_Pensacola-Ferry_Pass-Brent_FL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Peoria_IL_Peoria_IL", + "name": "Mallela 2022 - COVID-19 MSA Models - Peoria_IL_Peoria_IL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Peoria_IL_Peoria_IL.bngl", + "file": "Peoria_IL_Peoria_IL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "ph_lorenz_attractor", + "name": "ph lorenz attractor", + "description": "Lorenz Attractor in BNGL", + "path": "Contributed/BNGPlayground_Examples/physics/phlorenzattractor/ph_lorenz_attractor.bngl", + "file": "ph_lorenz_attractor.bngl", + "tags": [ + "ph", + "lorenz", + "attractor", + "lx", + "ly", + "lz", + "x", + "y" + ], + "category": "physics", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "ph_nbody_gravity", + "name": "ph nbody gravity", + "description": "Model: ph_nbody_gravity.bngl", + "path": "Contributed/BNGPlayground_Examples/physics/phnbodygravity/ph_nbody_gravity.bngl", + "file": "ph_nbody_gravity.bngl", + "tags": [ + "ph", + "nbody", + "gravity", + "body", + "r2" + ], + "category": "physics", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "ph_schrodinger", + "name": "ph schrodinger", + "description": "Model: ph_schrodinger.bngl", + "path": "Contributed/BNGPlayground_Examples/physics/phschrodinger/ph_schrodinger.bngl", + "file": "ph_schrodinger.bngl", + "tags": [ + "ph", + "schrodinger", + "psi" + ], + "category": "physics", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "ph_wave_equation", + "name": "ph wave equation", + "description": "Model: ph_wave_equation.bngl", + "path": "Contributed/BNGPlayground_Examples/physics/phwaveequation/ph_wave_equation.bngl", + "file": "ph_wave_equation.bngl", + "tags": [ + "ph", + "wave", + "equation", + "node" + ], + "category": "physics", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Philadelphia-Camden-Wilmington_PA-NJ-DE-MD_Philadelphia-Camden-Wilmington_PA-NJ-DE-MD", + "name": "Mallela 2022 - COVID-19 MSA Models - Philadelphia-Camden-Wilmington_PA-NJ-DE-MD_Philadelphia-Camden-Wilmington_PA-NJ-DE-MD", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Philadelphia-Camden-Wilmington_PA-NJ-DE-MD_Philadelphia-Camden-Wilmington_PA-NJ-DE-MD.bngl", + "file": "Philadelphia-Camden-Wilmington_PA-NJ-DE-MD_Philadelphia-Camden-Wilmington_PA-NJ-DE-MD.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Phoenix", + "name": "Phoenix", + "description": "- This model is intended to be consistent with the compartmental model", + "path": "Published/VaxAndVariants/Phoenix/Phoenix.bngl", + "file": "Phoenix.bngl", + "tags": [ + "phoenix", + "counter", + "fdcs", + "s", + "sv", + "e", + "a", + "i", + "v" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Phoenix-Mesa-Chandler_AZ_Phoenix-Mesa-Chandler_AZ", + "name": "Mallela 2022 - COVID-19 MSA Models - Phoenix-Mesa-Chandler_AZ_Phoenix-Mesa-Chandler_AZ", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Phoenix-Mesa-Chandler_AZ_Phoenix-Mesa-Chandler_AZ.bngl", + "file": "Phoenix-Mesa-Chandler_AZ_Phoenix-Mesa-Chandler_AZ.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "phosphorelay-chain", + "name": "phosphorelay chain", + "description": "BioNetGen model: phosphorelay chain", + "path": "Contributed/BNGPlayground_Examples/biology/phosphorelaychain/phosphorelay-chain.bngl", + "file": "phosphorelay-chain.bngl", + "tags": [ + "phosphorelay", + "chain", + "sensor", + "relay", + "output" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Pine_Bluff_AR_Pine_Bluff_AR", + "name": "Mallela 2022 - COVID-19 MSA Models - Pine_Bluff_AR_Pine_Bluff_AR", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Pine_Bluff_AR_Pine_Bluff_AR.bngl", + "file": "Pine_Bluff_AR_Pine_Bluff_AR.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Pittsburgh_PA_Pittsburgh_PA", + "name": "Mallela 2022 - COVID-19 MSA Models - Pittsburgh_PA_Pittsburgh_PA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Pittsburgh_PA_Pittsburgh_PA.bngl", + "file": "Pittsburgh_PA_Pittsburgh_PA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Pittsfield_MA_Pittsfield_MA", + "name": "Mallela 2022 - COVID-19 MSA Models - Pittsfield_MA_Pittsfield_MA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Pittsfield_MA_Pittsfield_MA.bngl", + "file": "Pittsfield_MA_Pittsfield_MA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "platelet-activation", + "name": "platelet activation", + "description": "BioNetGen model: platelet activation", + "path": "Contributed/BNGPlayground_Examples/biology/plateletactivation/platelet-activation.bngl", + "file": "platelet-activation.bngl", + "tags": [ + "platelet", + "activation", + "adp", + "p2y12", + "integrin", + "thromboxane" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "polymer", + "name": "polymer", + "description": "Polymerization model", + "path": "Tutorials/General/polymer/polymer.bngl", + "file": "polymer.bngl", + "tags": [ + "published", + "tutorials", + "nfsim", + "polymer", + "a", + "b", + "c", + "simulate_nf" + ], + "category": "tutorial", + "bng2_compatible": false, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "polymer_draft", + "name": "polymer draft", + "description": "Polymerization (draft)", + "path": "Tutorials/General/polymerdraft/polymer_draft.bngl", + "file": "polymer_draft.bngl", + "tags": [ + "published", + "tutorials", + "nfsim", + "polymer", + "draft", + "a", + "b", + "c", + "simulate_nf" + ], + "category": "tutorial", + "bng2_compatible": false, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "polymer_fixed", + "name": "polymer_fixed", + "description": "Runtime-only BNGL model migrated from public/models: polymer_fixed", + "path": "Contributed/BNGPlayground_PublicRuntime/polymerfixed/polymer_fixed.bngl", + "file": "polymer_fixed.bngl", + "tags": [ + "polymer", + "fixed" + ], + "category": "other", + "bng2_compatible": true, + "origin": "contributed", + "visible": false, + "collectionId": null + }, + { + "id": "polynomial", + "name": "polynomial", + "description": "Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1", + "path": "PyBioNetGen/core/polynomial/polynomial.bngl", + "file": "polynomial.bngl", + "tags": [ + "polynomial", + "counter", + "y1", + "y2", + "generate_network", + "simulate", + "setparameter", + "resetconcentrations" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "polynomial", + "name": "polynomial", + "description": "Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1", + "path": "PyBioNetGen/tests/polynomial/polynomial.bngl", + "file": "polynomial.bngl", + "tags": [ + "polynomial", + "counter", + "y1", + "y2", + "generate_network", + "simulate", + "setparameter", + "resetconcentrations" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "polynomial", + "name": "polynomial", + "description": "Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1", + "path": "PyBioNetGen/tests/polynomial_full_tests_T6-check/polynomial.bngl", + "file": "polynomial.bngl", + "tags": [ + "polynomial", + "counter", + "y1", + "y2", + "generate_network", + "simulate", + "setparameter", + "resetconcentrations" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "polynomial_ground", + "name": "polynomial ground", + "description": "Implementation of the parabola from the Mitra constrained optimization manuscript Fig. 1", + "path": "PyBioNetGen/core/polynomialground/polynomial_ground.bngl", + "file": "polynomial_ground.bngl", + "tags": [ + "polynomial", + "ground", + "counter", + "y1", + "y2", + "generate_network", + "simulate", + "setparameter", + "resetconcentrations" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "Port_St._Lucie_FL_Port_St._Lucie_FL", + "name": "Mallela 2022 - COVID-19 MSA Models - Port_St._Lucie_FL_Port_St._Lucie_FL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Port_St._Lucie_FL_Port_St._Lucie_FL.bngl", + "file": "Port_St._Lucie_FL_Port_St._Lucie_FL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Portland-South_Portland_ME_Portland-South_Portland_ME", + "name": "Mallela 2022 - COVID-19 MSA Models - Portland-South_Portland_ME_Portland-South_Portland_ME", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Portland-South_Portland_ME_Portland-South_Portland_ME.bngl", + "file": "Portland-South_Portland_ME_Portland-South_Portland_ME.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Portland-Vancouver-Hillsboro_OR-WA_Portland-Vancouver-Hillsboro_OR-WA", + "name": "Mallela 2022 - COVID-19 MSA Models - Portland-Vancouver-Hillsboro_OR-WA_Portland-Vancouver-Hillsboro_OR-WA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Portland-Vancouver-Hillsboro_OR-WA_Portland-Vancouver-Hillsboro_OR-WA.bngl", + "file": "Portland-Vancouver-Hillsboro_OR-WA_Portland-Vancouver-Hillsboro_OR-WA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Poughkeepsie-Newburgh-Middletown_NY_Poughkeepsie-Newburgh-Middletown_NY", + "name": "Mallela 2022 - COVID-19 MSA Models - Poughkeepsie-Newburgh-Middletown_NY_Poughkeepsie-Newburgh-Middletown_NY", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Poughkeepsie-Newburgh-Middletown_NY_Poughkeepsie-Newburgh-Middletown_NY.bngl", + "file": "Poughkeepsie-Newburgh-Middletown_NY_Poughkeepsie-Newburgh-Middletown_NY.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "predator-prey-dynamics", + "name": "predator prey dynamics", + "description": "BioNetGen model: predator prey dynamics", + "path": "Contributed/BNGPlayground_Examples/biology/predatorpreydynamics/predator-prey-dynamics.bngl", + "file": "predator-prey-dynamics.bngl", + "tags": [ + "predator", + "prey", + "dynamics" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Prescott_Valley-Prescott_AZ_Prescott_Valley-Prescott_AZ", + "name": "Mallela 2022 - COVID-19 MSA Models - Prescott_Valley-Prescott_AZ_Prescott_Valley-Prescott_AZ", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Prescott_Valley-Prescott_AZ_Prescott_Valley-Prescott_AZ.bngl", + "file": "Prescott_Valley-Prescott_AZ_Prescott_Valley-Prescott_AZ.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "process_actin_treadmilling", + "name": "process actin treadmilling", + "description": "Model: process_actin_treadmilling.bngl", + "path": "Contributed/BNGPlayground_Examples/processes/processactintreadmilling/process_actin_treadmilling.bngl", + "file": "process_actin_treadmilling.bngl", + "tags": [ + "process", + "actin", + "treadmilling", + "generate_network", + "simulate" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "process_autophagy_flux", + "name": "process autophagy flux", + "description": "Model: process_autophagy_flux.bngl", + "path": "Contributed/BNGPlayground_Examples/processes/processautophagyflux/process_autophagy_flux.bngl", + "file": "process_autophagy_flux.bngl", + "tags": [ + "process", + "autophagy", + "flux", + "phagophore", + "autophagosome", + "lysosome", + "autolysosome", + "cargo" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "process_cell_adhesion_strength", + "name": "process cell adhesion strength", + "description": "Model: process_cell_adhesion_strength.bngl", + "path": "Contributed/BNGPlayground_Examples/processes/processcelladhesionstrength/process_cell_adhesion_strength.bngl", + "file": "process_cell_adhesion_strength.bngl", + "tags": [ + "process", + "cell", + "adhesion", + "strength", + "c1", + "c2", + "generate_network", + "simulate" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "process_kinetic_proofreading_tcr", + "name": "process kinetic proofreading tcr", + "description": "Model: process_kinetic_proofreading_tcr.bngl", + "path": "Contributed/BNGPlayground_Examples/processes/processkineticproofreadingtcr/process_kinetic_proofreading_tcr.bngl", + "file": "process_kinetic_proofreading_tcr.bngl", + "tags": [ + "process", + "kinetic", + "proofreading", + "tcr", + "l" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "process_quorum_sensing_switch", + "name": "process quorum sensing switch", + "description": "Model: process_quorum_sensing_switch.bngl", + "path": "Contributed/BNGPlayground_Examples/processes/processquorumsensingswitch/process_quorum_sensing_switch.bngl", + "file": "process_quorum_sensing_switch.bngl", + "tags": [ + "process", + "quorum", + "sensing", + "switch", + "gene_ai", + "ai", + "r", + "gene_light" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Providence-Warwick_RI-MA_Providence-Warwick_RI-MA", + "name": "Mallela 2022 - COVID-19 MSA Models - Providence-Warwick_RI-MA_Providence-Warwick_RI-MA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Providence-Warwick_RI-MA_Providence-Warwick_RI-MA.bngl", + "file": "Providence-Warwick_RI-MA_Providence-Warwick_RI-MA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Provo-Orem_UT_Provo-Orem_UT", + "name": "Mallela 2022 - COVID-19 MSA Models - Provo-Orem_UT_Provo-Orem_UT", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Provo-Orem_UT_Provo-Orem_UT.bngl", + "file": "Provo-Orem_UT_Provo-Orem_UT.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "pt303", + "name": "pt303", + "description": "c = 0.20 /d t_1/2 = 3.5 d (inferred)", + "path": "PyBioNetGen/HIVdynamics/pt303/pt303.bngl", + "file": "pt303.bngl", + "tags": [ + "pt303", + "counter", + "v", + "lnv", + "s", + "c", + "half_life", + "lnv_tangent" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "pt403", + "name": "pt403", + "description": "c = 0.23 /d t_1/2 = 3.0 d (inferred)", + "path": "PyBioNetGen/HIVdynamics/pt403/pt403.bngl", + "file": "pt403.bngl", + "tags": [ + "pt403", + "counter", + "v", + "lnv", + "s", + "c", + "half_life", + "lnv_tangent" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "pt409", + "name": "pt409", + "description": "c = 0.39 /d t_1/2 = 1.8 d (inferred)", + "path": "PyBioNetGen/HIVdynamics/pt409/pt409.bngl", + "file": "pt409.bngl", + "tags": [ + "pt409", + "counter", + "v", + "lnv", + "s", + "c", + "half_life", + "lnv_tangent" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Pueblo_CO_Pueblo_CO", + "name": "Mallela 2022 - COVID-19 MSA Models - Pueblo_CO_Pueblo_CO", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Pueblo_CO_Pueblo_CO.bngl", + "file": "Pueblo_CO_Pueblo_CO.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Punta_Gorda_FL_Punta_Gorda_FL", + "name": "Mallela 2022 - COVID-19 MSA Models - Punta_Gorda_FL_Punta_Gorda_FL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Punta_Gorda_FL_Punta_Gorda_FL.bngl", + "file": "Punta_Gorda_FL_Punta_Gorda_FL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "quasi_equilibrium", + "name": "quasi equilibrium", + "description": "Quasi-equilibrium approximation", + "path": "Tutorials/General/quasiequilibrium/quasi_equilibrium.bngl", + "file": "quasi_equilibrium.bngl", + "tags": [ + "published", + "toy models", + "quasi", + "equilibrium", + "a", + "b", + "c" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "quorum-sensing-circuit", + "name": "quorum sensing circuit", + "description": "BioNetGen model: quorum sensing circuit", + "path": "Contributed/BNGPlayground_Examples/biology/quorumsensingcircuit/quorum-sensing-circuit.bngl", + "file": "quorum-sensing-circuit.bngl", + "tags": [ + "quorum", + "sensing", + "circuit", + "autoinducer", + "autoinducer_env", + "gene", + "protein" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "rab-gtpase-cycle", + "name": "rab gtpase cycle", + "description": "BioNetGen model: rab gtpase cycle", + "path": "Contributed/BNGPlayground_Examples/biology/rabgtpasecycle/rab-gtpase-cycle.bngl", + "file": "rab-gtpase-cycle.bngl", + "tags": [ + "rab", + "gtpase", + "cycle", + "gef", + "gap", + "effector" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Racine_WI_Racine_WI", + "name": "Mallela 2022 - COVID-19 MSA Models - Racine_WI_Racine_WI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Racine_WI_Racine_WI.bngl", + "file": "Racine_WI_Racine_WI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "RAFi", + "name": "RAFi", + "description": "BioNetGen model: RAFi", + "path": "PyBioNetGen/core/RAFi/RAFi.bngl", + "file": "RAFi.bngl", + "tags": [ + "rafi", + "r", + "i", + "ybar", + "activity" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "RAFi_ground", + "name": "RAFi ground", + "description": "BioNetGen model: RAFi ground", + "path": "PyBioNetGen/core/RAFiground/RAFi_ground.bngl", + "file": "RAFi_ground.bngl", + "tags": [ + "rafi", + "ground", + "r", + "i", + "ybar", + "activity" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Raleigh-Cary_NC_Raleigh-Cary_NC", + "name": "Mallela 2022 - COVID-19 MSA Models - Raleigh-Cary_NC_Raleigh-Cary_NC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Raleigh-Cary_NC_Raleigh-Cary_NC.bngl", + "file": "Raleigh-Cary_NC_Raleigh-Cary_NC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "rankl-rank-signaling", + "name": "rankl rank signaling", + "description": "RANKL-RANK-OPG signaling in bone remodeling.", + "path": "Contributed/BNGPlayground_Examples/biology/ranklranksignaling/rankl-rank-signaling.bngl", + "file": "rankl-rank-signaling.bngl", + "tags": [ + "rankl", + "rank", + "signaling", + "opg", + "nfat", + "traf6" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "ras-gef-gap-cycle", + "name": "ras gef gap cycle", + "description": "Ras-GEF-GAP cycle with explicit nucleotide exchange.", + "path": "Contributed/BNGPlayground_Examples/biology/rasgefgapcycle/ras-gef-gap-cycle.bngl", + "file": "ras-gef-gap-cycle.bngl", + "tags": [ + "ras", + "gef", + "gap", + "cycle", + "sos", + "rasgap", + "v_gef", + "v_gap" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Reading_PA_Reading_PA", + "name": "Mallela 2022 - COVID-19 MSA Models - Reading_PA_Reading_PA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Reading_PA_Reading_PA.bngl", + "file": "Reading_PA_Reading_PA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "rec_dim", + "name": "rec_dim", + "description": "Ligand-receptor binding", + "path": "Contributed/BNGPlayground_Validation/recdim/rec_dim.bngl", + "file": "rec_dim.bngl", + "tags": [ + "validation", + "rec", + "dim", + "lig", + "writemdl", + "generate_network", + "simulate" + ], + "category": "validation", + "bng2_compatible": false, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "rec_dim_comp", + "name": "rec_dim_comp", + "description": "name dimension volume contained_by", + "path": "Contributed/BNGPlayground_Validation/recdimcomp/rec_dim_comp.bngl", + "file": "rec_dim_comp.bngl", + "tags": [ + "validation", + "rec", + "dim", + "comp", + "kp1", + "kp2", + "lig", + "writemdl", + "generate_network", + "simulate" + ], + "category": "validation", + "bng2_compatible": false, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "receptor", + "name": "receptor", + "description": "A simple model of ligand/receptor binding and receptor phosphorylation.", + "path": "PyBioNetGen/core/receptor/receptor.bngl", + "file": "receptor.bngl", + "tags": [ + "receptor", + "l", + "r", + "func" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "receptor_nf", + "name": "receptor nf", + "description": "A simple model of ligand/receptor binding and receptor phosphorylation.", + "path": "PyBioNetGen/core/receptornf/receptor_nf.bngl", + "file": "receptor_nf.bngl", + "tags": [ + "receptor", + "nf", + "l", + "r" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "receptor_nf", + "name": "receptor nf", + "description": "A simple model of ligand/receptor binding and receptor phosphorylation.", + "path": "PyBioNetGen/tests/receptornf/receptor_nf.bngl", + "file": "receptor_nf.bngl", + "tags": [ + "receptor", + "nf", + "l", + "r" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "Reno_NV_Reno_NV", + "name": "Mallela 2022 - COVID-19 MSA Models - Reno_NV_Reno_NV", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Reno_NV_Reno_NV.bngl", + "file": "Reno_NV_Reno_NV.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Repressilator", + "name": "Repressilator", + "description": "Repressilator circuit", + "path": "Tutorials/NativeTutorials/Repressilator/Repressilator.bngl", + "file": "Repressilator.bngl", + "tags": [ + "published", + "tutorial", + "native", + "repressilator", + "gtetr", + "gci", + "glaci", + "mtetr", + "mci", + "mlaci", + "ptetr", + "pci" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "repressilator-oscillator", + "name": "repressilator oscillator", + "description": "BioNetGen model: repressilator oscillator", + "path": "Contributed/BNGPlayground_Examples/biology/repressilatoroscillator/repressilator-oscillator.bngl", + "file": "repressilator-oscillator.bngl", + "tags": [ + "repressilator", + "oscillator", + "genea", + "geneb", + "genec", + "mrna_a", + "mrna_b", + "mrna_c", + "proteina", + "proteinb" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "retinoic-acid-signaling", + "name": "retinoic acid signaling", + "description": "BioNetGen model: retinoic acid signaling", + "path": "Contributed/BNGPlayground_Examples/biology/retinoicacidsignaling/retinoic-acid-signaling.bngl", + "file": "retinoic-acid-signaling.bngl", + "tags": [ + "retinoic", + "acid", + "signaling", + "ra", + "rarrxr", + "corepressor", + "targetgene" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "rho-gtpase-actin-cytoskeleton", + "name": "rho gtpase actin cytoskeleton", + "description": "RhoA-GTPase regulation of the actin cytoskeleton.", + "path": "Contributed/BNGPlayground_Examples/biology/rhogtpaseactincytoskeleton/rho-gtpase-actin-cytoskeleton.bngl", + "file": "rho-gtpase-actin-cytoskeleton.bngl", + "tags": [ + "rho", + "gtpase", + "actin", + "cytoskeleton", + "rhoa", + "rock", + "limk", + "cofilin" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Richmond_VA_Richmond_VA", + "name": "Mallela 2022 - COVID-19 MSA Models - Richmond_VA_Richmond_VA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Richmond_VA_Richmond_VA.bngl", + "file": "Richmond_VA_Richmond_VA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Riverside-San_Bernardino-Ontario_CA_Riverside-San_Bernardino-Ontario_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - Riverside-San_Bernardino-Ontario_CA_Riverside-San_Bernardino-Ontario_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Riverside-San_Bernardino-Ontario_CA_Riverside-San_Bernardino-Ontario_CA.bngl", + "file": "Riverside-San_Bernardino-Ontario_CA_Riverside-San_Bernardino-Ontario_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Roanoke_VA_Roanoke_VA", + "name": "Mallela 2022 - COVID-19 MSA Models - Roanoke_VA_Roanoke_VA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Roanoke_VA_Roanoke_VA.bngl", + "file": "Roanoke_VA_Roanoke_VA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Rochester_MN_Rochester_MN", + "name": "Mallela 2022 - COVID-19 MSA Models - Rochester_MN_Rochester_MN", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Rochester_MN_Rochester_MN.bngl", + "file": "Rochester_MN_Rochester_MN.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Rochester_NY_Rochester_NY", + "name": "Mallela 2022 - COVID-19 MSA Models - Rochester_NY_Rochester_NY", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Rochester_NY_Rochester_NY.bngl", + "file": "Rochester_NY_Rochester_NY.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Rockford_IL_Rockford_IL", + "name": "Mallela 2022 - COVID-19 MSA Models - Rockford_IL_Rockford_IL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Rockford_IL_Rockford_IL.bngl", + "file": "Rockford_IL_Rockford_IL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Rocky_Mount_NC_Rocky_Mount_NC", + "name": "Mallela 2022 - COVID-19 MSA Models - Rocky_Mount_NC_Rocky_Mount_NC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Rocky_Mount_NC_Rocky_Mount_NC.bngl", + "file": "Rocky_Mount_NC_Rocky_Mount_NC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Rome_GA_Rome_GA", + "name": "Mallela 2022 - COVID-19 MSA Models - Rome_GA_Rome_GA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Rome_GA_Rome_GA.bngl", + "file": "Rome_GA_Rome_GA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Rule_based_egfr_compart", + "name": "Rule based egfr compart", + "description": "Compartmental EGFR model", + "path": "Published/Rulebasedegfrcompart/Rule_based_egfr_compart.bngl", + "file": "Rule_based_egfr_compart.bngl", + "tags": [ + "published", + "rule", + "based", + "egfr", + "compart", + "egf", + "grb2", + "shc", + "generate_network" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Rule_based_egfr_tutorial", + "name": "Faeder 2009", + "description": "EGFR signaling", + "path": "Published/Rulebasedegfrtutorial/Rule_based_egfr_tutorial.bngl", + "file": "Rule_based_egfr_tutorial.bngl", + "tags": [ + "published", + "rule", + "based", + "egfr", + "tutorial", + "egf", + "grb2", + "shc", + "generate_network" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Rule_based_Ran_transport", + "name": "Rule based Ran transport", + "description": "Nuclear Ran transport", + "path": "Published/RulebasedRantransport/Rule_based_Ran_transport.bngl", + "file": "Rule_based_Ran_transport.bngl", + "tags": [ + "published", + "rule", + "based", + "ran", + "transport", + "c", + "rcc1", + "generate_network" + ], + "category": "regulation", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Rule_based_Ran_transport_draft", + "name": "Rule based Ran transport draft", + "description": "Ran transport (draft)", + "path": "Published/RulebasedRantransportdraft/Rule_based_Ran_transport_draft.bngl", + "file": "Rule_based_Ran_transport_draft.bngl", + "tags": [ + "published", + "rule", + "based", + "ran", + "transport", + "draft", + "c", + "rcc1", + "generate_network" + ], + "category": "regulation", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Sacramento-Roseville-Folsom_CA_Sacramento-Roseville-Folsom_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - Sacramento-Roseville-Folsom_CA_Sacramento-Roseville-Folsom_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Sacramento-Roseville-Folsom_CA_Sacramento-Roseville-Folsom_CA.bngl", + "file": "Sacramento-Roseville-Folsom_CA_Sacramento-Roseville-Folsom_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Saginaw_MI_Saginaw_MI", + "name": "Mallela 2022 - COVID-19 MSA Models - Saginaw_MI_Saginaw_MI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Saginaw_MI_Saginaw_MI.bngl", + "file": "Saginaw_MI_Saginaw_MI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Salem_OR_Salem_OR", + "name": "Mallela 2022 - COVID-19 MSA Models - Salem_OR_Salem_OR", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Salem_OR_Salem_OR.bngl", + "file": "Salem_OR_Salem_OR.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Salinas_CA_Salinas_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - Salinas_CA_Salinas_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Salinas_CA_Salinas_CA.bngl", + "file": "Salinas_CA_Salinas_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Salisbury_MD-DE_Salisbury_MD-DE", + "name": "Mallela 2022 - COVID-19 MSA Models - Salisbury_MD-DE_Salisbury_MD-DE", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Salisbury_MD-DE_Salisbury_MD-DE.bngl", + "file": "Salisbury_MD-DE_Salisbury_MD-DE.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Salt_Lake_City_UT_Salt_Lake_City_UT", + "name": "Mallela 2022 - COVID-19 MSA Models - Salt_Lake_City_UT_Salt_Lake_City_UT", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Salt_Lake_City_UT_Salt_Lake_City_UT.bngl", + "file": "Salt_Lake_City_UT_Salt_Lake_City_UT.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "San_Antonio-New_Braunfels_TX_San_Antonio-New_Braunfels_TX", + "name": "Mallela 2022 - COVID-19 MSA Models - San_Antonio-New_Braunfels_TX_San_Antonio-New_Braunfels_TX", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/San_Antonio-New_Braunfels_TX_San_Antonio-New_Braunfels_TX.bngl", + "file": "San_Antonio-New_Braunfels_TX_San_Antonio-New_Braunfels_TX.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "San_Diego-Chula_Vista-Carlsbad_CA_San_Diego-Chula_Vista-Carlsbad_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - San_Diego-Chula_Vista-Carlsbad_CA_San_Diego-Chula_Vista-Carlsbad_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/San_Diego-Chula_Vista-Carlsbad_CA_San_Diego-Chula_Vista-Carlsbad_CA.bngl", + "file": "San_Diego-Chula_Vista-Carlsbad_CA_San_Diego-Chula_Vista-Carlsbad_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "San_Francisco-Oakland-Berkeley_CA_San_Francisco-Oakland-Berkeley_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - San_Francisco-Oakland-Berkeley_CA_San_Francisco-Oakland-Berkeley_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/San_Francisco-Oakland-Berkeley_CA_San_Francisco-Oakland-Berkeley_CA.bngl", + "file": "San_Francisco-Oakland-Berkeley_CA_San_Francisco-Oakland-Berkeley_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "San_Jose-Sunnyvale-Santa_Clara_CA_San_Jose-Sunnyvale-Santa_Clara_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - San_Jose-Sunnyvale-Santa_Clara_CA_San_Jose-Sunnyvale-Santa_Clara_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/San_Jose-Sunnyvale-Santa_Clara_CA_San_Jose-Sunnyvale-Santa_Clara_CA.bngl", + "file": "San_Jose-Sunnyvale-Santa_Clara_CA_San_Jose-Sunnyvale-Santa_Clara_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "San_Luis_Obispo-Paso_Robles_CA_San_Luis_Obispo-Paso_Robles_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - San_Luis_Obispo-Paso_Robles_CA_San_Luis_Obispo-Paso_Robles_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/San_Luis_Obispo-Paso_Robles_CA_San_Luis_Obispo-Paso_Robles_CA.bngl", + "file": "San_Luis_Obispo-Paso_Robles_CA_San_Luis_Obispo-Paso_Robles_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Santa_Maria-Santa_Barbara_CA_Santa_Maria-Santa_Barbara_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - Santa_Maria-Santa_Barbara_CA_Santa_Maria-Santa_Barbara_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Santa_Maria-Santa_Barbara_CA_Santa_Maria-Santa_Barbara_CA.bngl", + "file": "Santa_Maria-Santa_Barbara_CA_Santa_Maria-Santa_Barbara_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Santa_Rosa-Petaluma_CA_Santa_Rosa-Petaluma_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - Santa_Rosa-Petaluma_CA_Santa_Rosa-Petaluma_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Santa_Rosa-Petaluma_CA_Santa_Rosa-Petaluma_CA.bngl", + "file": "Santa_Rosa-Petaluma_CA_Santa_Rosa-Petaluma_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Savannah_GA_Savannah_GA", + "name": "Mallela 2022 - COVID-19 MSA Models - Savannah_GA_Savannah_GA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Savannah_GA_Savannah_GA.bngl", + "file": "Savannah_GA_Savannah_GA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Scranton_Wilkes-Barre_PA_Scranton_Wilkes-Barre_PA", + "name": "Mallela 2022 - COVID-19 MSA Models - Scranton_Wilkes-Barre_PA_Scranton_Wilkes-Barre_PA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Scranton_Wilkes-Barre_PA_Scranton_Wilkes-Barre_PA.bngl", + "file": "Scranton_Wilkes-Barre_PA_Scranton_Wilkes-Barre_PA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Scranton-Wilkes-Barre_PA_Scranton-Wilkes-Barre_PA", + "name": "Mallela 2022 - COVID-19 MSA Models - Scranton-Wilkes-Barre_PA_Scranton-Wilkes-Barre_PA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Scranton-Wilkes-Barre_PA_Scranton-Wilkes-Barre_PA.bngl", + "file": "Scranton-Wilkes-Barre_PA_Scranton-Wilkes-Barre_PA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Seattle-Tacoma-Bellevue_WA_Seattle-Tacoma-Bellevue_WA", + "name": "Mallela 2022 - COVID-19 MSA Models - Seattle-Tacoma-Bellevue_WA_Seattle-Tacoma-Bellevue_WA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Seattle-Tacoma-Bellevue_WA_Seattle-Tacoma-Bellevue_WA.bngl", + "file": "Seattle-Tacoma-Bellevue_WA_Seattle-Tacoma-Bellevue_WA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "SHP2_base_model", + "name": "SHP2_base_model", + "description": "Base model of Shp2 regulation", + "path": "Contributed/BNGPlayground_Validation/SHP2basemodel/SHP2_base_model.bngl", + "file": "SHP2_base_model.bngl", + "tags": [ + "validation", + "shp2", + "base", + "model", + "r", + "s", + "exclude_reactants" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "shp2-phosphatase-regulation", + "name": "shp2 phosphatase regulation", + "description": "SHP2 phosphatase regulation via autoinhibition and SH2 binding.", + "path": "Contributed/BNGPlayground_Examples/biology/shp2phosphataseregulation/shp2-phosphatase-regulation.bngl", + "file": "shp2-phosphatase-regulation.bngl", + "tags": [ + "shp2", + "phosphatase", + "regulation", + "rtk", + "substrate", + "v_dephos" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Shreveport-Bossier_City_LA_Shreveport-Bossier_City_LA", + "name": "Mallela 2022 - COVID-19 MSA Models - Shreveport-Bossier_City_LA_Shreveport-Bossier_City_LA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Shreveport-Bossier_City_LA_Shreveport-Bossier_City_LA.bngl", + "file": "Shreveport-Bossier_City_LA_Shreveport-Bossier_City_LA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "SI_files_Alabama_Alabama", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Alabama_Alabama", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Alabama_Alabama.bngl", + "file": "SI_files_Alabama_Alabama.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Alaska_Alaska", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Alaska_Alaska", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Alaska_Alaska.bngl", + "file": "SI_files_Alaska_Alaska.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Arizona_Arizona", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Arizona_Arizona", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Arizona_Arizona.bngl", + "file": "SI_files_Arizona_Arizona.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Arkansas_Arkansas", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Arkansas_Arkansas", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Arkansas_Arkansas.bngl", + "file": "SI_files_Arkansas_Arkansas.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_California_California", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_California_California", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_California_California.bngl", + "file": "SI_files_California_California.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Colorado_Colorado", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Colorado_Colorado", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Colorado_Colorado.bngl", + "file": "SI_files_Colorado_Colorado.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Connecticut_Connecticut", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Connecticut_Connecticut", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Connecticut_Connecticut.bngl", + "file": "SI_files_Connecticut_Connecticut.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Delaware_Delaware", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Delaware_Delaware", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Delaware_Delaware.bngl", + "file": "SI_files_Delaware_Delaware.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Florida_Florida", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Florida_Florida", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Florida_Florida.bngl", + "file": "SI_files_Florida_Florida.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Georgia_Georgia", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Georgia_Georgia", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Georgia_Georgia.bngl", + "file": "SI_files_Georgia_Georgia.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Hawaii_Hawaii", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Hawaii_Hawaii", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Hawaii_Hawaii.bngl", + "file": "SI_files_Hawaii_Hawaii.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Idaho_Idaho", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Idaho_Idaho", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Idaho_Idaho.bngl", + "file": "SI_files_Idaho_Idaho.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Illinois_Illinois", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Illinois_Illinois", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Illinois_Illinois.bngl", + "file": "SI_files_Illinois_Illinois.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Indiana_Indiana", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Indiana_Indiana", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Indiana_Indiana.bngl", + "file": "SI_files_Indiana_Indiana.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Iowa_Iowa", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Iowa_Iowa", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Iowa_Iowa.bngl", + "file": "SI_files_Iowa_Iowa.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Kansas_Kansas", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Kansas_Kansas", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Kansas_Kansas.bngl", + "file": "SI_files_Kansas_Kansas.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Kentucky_Kentucky", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Kentucky_Kentucky", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Kentucky_Kentucky.bngl", + "file": "SI_files_Kentucky_Kentucky.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Louisiana_Louisiana", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Louisiana_Louisiana", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Louisiana_Louisiana.bngl", + "file": "SI_files_Louisiana_Louisiana.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Maine_Maine", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Maine_Maine", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Maine_Maine.bngl", + "file": "SI_files_Maine_Maine.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Maryland_Maryland", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Maryland_Maryland", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Maryland_Maryland.bngl", + "file": "SI_files_Maryland_Maryland.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Massachusetts_Massachusetts", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Massachusetts_Massachusetts", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Massachusetts_Massachusetts.bngl", + "file": "SI_files_Massachusetts_Massachusetts.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Michigan_Michigan", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Michigan_Michigan", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Michigan_Michigan.bngl", + "file": "SI_files_Michigan_Michigan.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Minnesota_Minnesota", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Minnesota_Minnesota", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Minnesota_Minnesota.bngl", + "file": "SI_files_Minnesota_Minnesota.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Mississippi_Mississippi", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Mississippi_Mississippi", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Mississippi_Mississippi.bngl", + "file": "SI_files_Mississippi_Mississippi.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Missouri_Missouri", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Missouri_Missouri", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Missouri_Missouri.bngl", + "file": "SI_files_Missouri_Missouri.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Montana_Montana", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Montana_Montana", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Montana_Montana.bngl", + "file": "SI_files_Montana_Montana.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Nebraska_Nebraska", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Nebraska_Nebraska", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Nebraska_Nebraska.bngl", + "file": "SI_files_Nebraska_Nebraska.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Nevada_Nevada", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Nevada_Nevada", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Nevada_Nevada.bngl", + "file": "SI_files_Nevada_Nevada.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_NewHampshire_NewHampshire", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_NewHampshire_NewHampshire", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_NewHampshire_NewHampshire.bngl", + "file": "SI_files_NewHampshire_NewHampshire.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_NewJersey_NewJersey", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_NewJersey_NewJersey", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_NewJersey_NewJersey.bngl", + "file": "SI_files_NewJersey_NewJersey.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_NewMexico_NewMexico", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_NewMexico_NewMexico", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_NewMexico_NewMexico.bngl", + "file": "SI_files_NewMexico_NewMexico.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_NewYork_NewYork", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_NewYork_NewYork", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_NewYork_NewYork.bngl", + "file": "SI_files_NewYork_NewYork.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_NorthCarolina_NorthCarolina", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_NorthCarolina_NorthCarolina", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_NorthCarolina_NorthCarolina.bngl", + "file": "SI_files_NorthCarolina_NorthCarolina.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_NorthDakota_NorthDakota", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_NorthDakota_NorthDakota", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_NorthDakota_NorthDakota.bngl", + "file": "SI_files_NorthDakota_NorthDakota.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Ohio_Ohio", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Ohio_Ohio", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Ohio_Ohio.bngl", + "file": "SI_files_Ohio_Ohio.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Oklahoma_Oklahoma", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Oklahoma_Oklahoma", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Oklahoma_Oklahoma.bngl", + "file": "SI_files_Oklahoma_Oklahoma.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Oregon_Oregon", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Oregon_Oregon", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Oregon_Oregon.bngl", + "file": "SI_files_Oregon_Oregon.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Pennsylvania_Pennsylvania", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Pennsylvania_Pennsylvania", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Pennsylvania_Pennsylvania.bngl", + "file": "SI_files_Pennsylvania_Pennsylvania.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_RhodeIsland_RhodeIsland", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_RhodeIsland_RhodeIsland", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_RhodeIsland_RhodeIsland.bngl", + "file": "SI_files_RhodeIsland_RhodeIsland.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_SouthCarolina_SouthCarolina", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_SouthCarolina_SouthCarolina", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_SouthCarolina_SouthCarolina.bngl", + "file": "SI_files_SouthCarolina_SouthCarolina.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_SouthDakota_SouthDakota", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_SouthDakota_SouthDakota", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_SouthDakota_SouthDakota.bngl", + "file": "SI_files_SouthDakota_SouthDakota.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Tennessee_Tennessee", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Tennessee_Tennessee", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Tennessee_Tennessee.bngl", + "file": "SI_files_Tennessee_Tennessee.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Texas_Texas", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Texas_Texas", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Texas_Texas.bngl", + "file": "SI_files_Texas_Texas.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Utah_Utah", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Utah_Utah", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Utah_Utah.bngl", + "file": "SI_files_Utah_Utah.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Vermont_Vermont", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Vermont_Vermont", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Vermont_Vermont.bngl", + "file": "SI_files_Vermont_Vermont.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Virginia_Virginia", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Virginia_Virginia", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Virginia_Virginia.bngl", + "file": "SI_files_Virginia_Virginia.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Washington_Washington", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Washington_Washington", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Washington_Washington.bngl", + "file": "SI_files_Washington_Washington.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_WestVirginia_WestVirginia", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_WestVirginia_WestVirginia", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_WestVirginia_WestVirginia.bngl", + "file": "SI_files_WestVirginia_WestVirginia.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Wisconsin_Wisconsin", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Wisconsin_Wisconsin", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Wisconsin_Wisconsin.bngl", + "file": "SI_files_Wisconsin_Wisconsin.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SI_files_Wyoming_Wyoming", + "name": "Mallela 2021 - COVID-19 State-Level Models - SI_files_Wyoming_Wyoming", + "description": "Parameter-fit COVID-19 epidemiological models for all 50 US states.", + "path": "Published/Mallela2021/SI_files_Wyoming_Wyoming.bngl", + "file": "SI_files_Wyoming_Wyoming.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "signal-amplification-cascade", + "name": "signal amplification cascade", + "description": "BioNetGen model: signal amplification cascade", + "path": "Contributed/BNGPlayground_Examples/biology/signalamplificationcascade/signal-amplification-cascade.bngl", + "file": "signal-amplification-cascade.bngl", + "tags": [ + "signal", + "amplification", + "cascade", + "ligand", + "receptor", + "effector", + "messenger" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "simple", + "name": "simple", + "description": "Simple binding model", + "path": "Tutorials/General/simple/simple.bngl", + "file": "simple.bngl", + "tags": [ + "published", + "tutorials", + "simple", + "s", + "t", + "dnat", + "trash" + ], + "category": "tutorial", + "bng2_compatible": false, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "Simple", + "name": "Simple", + "description": "An example from a real application", + "path": "PyBioNetGen/tests/Simple/Simple.bngl", + "file": "Simple.bngl", + "tags": [ + "simple", + "setoption", + "ag", + "r", + "h" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "Simple_AddActions", + "name": "Simple AddActions", + "description": "An example from a real application", + "path": "PyBioNetGen/tests/SimpleAddActions/Simple_AddActions.bngl", + "file": "Simple_AddActions.bngl", + "tags": [ + "simple", + "addactions", + "setoption", + "ag", + "r", + "h" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "Simple_Answer", + "name": "Simple Answer", + "description": "An example from a real application", + "path": "PyBioNetGen/tests/SimpleAnswer/Simple_Answer.bngl", + "file": "Simple_Answer.bngl", + "tags": [ + "simple", + "answer", + "setoption", + "ag", + "r", + "h" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "Simple_GenOnly", + "name": "Simple GenOnly", + "description": "An example from a real application", + "path": "PyBioNetGen/tests/SimpleGenOnly/Simple_GenOnly.bngl", + "file": "Simple_GenOnly.bngl", + "tags": [ + "simple", + "genonly", + "setoption", + "ag", + "r", + "h" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "simple_nf_seed", + "name": "simple nf seed", + "description": "BioNetGen model: simple nf seed", + "path": "PyBioNetGen/tests/simplenfseed/simple_nf_seed.bngl", + "file": "simple_nf_seed.bngl", + "tags": [ + "simple", + "nf", + "seed", + "a", + "b", + "function1", + "simulate" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "simple_nfsim_test", + "name": "simple_nfsim_test", + "description": "Runtime-only BNGL model migrated from public/models: simple_nfsim_test", + "path": "Contributed/BNGPlayground_PublicRuntime/simplenfsimtest/simple_nfsim_test.bngl", + "file": "simple_nfsim_test.bngl", + "tags": [ + "simple", + "nfsim", + "test" + ], + "category": "other", + "bng2_compatible": true, + "origin": "contributed", + "visible": false, + "collectionId": null + }, + { + "id": "Simple_nogen", + "name": "Simple nogen", + "description": "An example from a real application", + "path": "PyBioNetGen/tests/Simplenogen/Simple_nogen.bngl", + "file": "Simple_nogen.bngl", + "tags": [ + "simple", + "nogen", + "ag", + "r", + "h" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "simple_sbml_import", + "name": "simple_sbml_import", + "description": "SBML import test", + "path": "Contributed/BNGPlayground_Validation/simplesbmlimport/simple_sbml_import.bngl", + "file": "simple_sbml_import.bngl", + "tags": [ + "validation", + "simple", + "sbml", + "import", + "readfile", + "generate_network", + "simulate" + ], + "category": "validation", + "bng2_compatible": false, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "simple_system", + "name": "simple_system", + "description": "Simple binding system", + "path": "Contributed/BNGPlayground_Validation/simplesystem/simple_system.bngl", + "file": "simple_system.bngl", + "tags": [ + "validation", + "simple", + "system", + "x", + "y" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "simple-dimerization", + "name": "simple dimerization", + "description": "BioNetGen model: simple dimerization", + "path": "Contributed/BNGPlayground_Examples/biology/simpledimerization/simple-dimerization.bngl", + "file": "simple-dimerization.bngl", + "tags": [ + "simple", + "dimerization", + "a", + "b", + "generate_network", + "simulate" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Sioux_City_IA-NE-SD_Sioux_City_IA-NE-SD", + "name": "Mallela 2022 - COVID-19 MSA Models - Sioux_City_IA-NE-SD_Sioux_City_IA-NE-SD", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Sioux_City_IA-NE-SD_Sioux_City_IA-NE-SD.bngl", + "file": "Sioux_City_IA-NE-SD_Sioux_City_IA-NE-SD.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Sioux_Falls_SD_Sioux_Falls_SD", + "name": "Mallela 2022 - COVID-19 MSA Models - Sioux_Falls_SD_Sioux_Falls_SD", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Sioux_Falls_SD_Sioux_Falls_SD.bngl", + "file": "Sioux_Falls_SD_Sioux_Falls_SD.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "SIR", + "name": "SIR", + "description": "BioNetGen model: SIR", + "path": "Tutorials/NativeTutorials/SIR/SIR.bngl", + "file": "SIR.bngl", + "tags": [ + "sir", + "saveconcentrations", + "simulate" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": true, + "collectionId": null + }, + { + "id": "sir-epidemic-model", + "name": "sir epidemic model", + "description": "BioNetGen model: sir epidemic model", + "path": "Contributed/BNGPlayground_Examples/biology/sirepidemicmodel/sir-epidemic-model.bngl", + "file": "sir-epidemic-model.bngl", + "tags": [ + "sir", + "epidemic", + "model", + "human", + "generate_network", + "simulate" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "smad-tgf-beta-signaling", + "name": "smad tgf beta signaling", + "description": "BioNetGen model: smad tgf beta signaling", + "path": "Contributed/BNGPlayground_Examples/biology/smadtgfbetasignaling/smad-tgf-beta-signaling.bngl", + "file": "smad-tgf-beta-signaling.bngl", + "tags": [ + "smad", + "tgf", + "beta", + "signaling", + "tgfb", + "tgfbr", + "smad2", + "smad4" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "sonic-hedgehog-gradient", + "name": "sonic hedgehog gradient", + "description": "Sonic Hedgehog (Shh) morphogen gradient formation.", + "path": "Contributed/BNGPlayground_Examples/biology/sonichedgehoggradient/sonic-hedgehog-gradient.bngl", + "file": "sonic-hedgehog-gradient.bngl", + "tags": [ + "sonic", + "hedgehog", + "gradient", + "shh", + "ptc1", + "v_prod" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "South_Bend-Mishawaka_IN-MI_South_Bend-Mishawaka_IN-MI", + "name": "Mallela 2022 - COVID-19 MSA Models - South_Bend-Mishawaka_IN-MI_South_Bend-Mishawaka_IN-MI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/South_Bend-Mishawaka_IN-MI_South_Bend-Mishawaka_IN-MI.bngl", + "file": "South_Bend-Mishawaka_IN-MI_South_Bend-Mishawaka_IN-MI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "sp_fourier_synthesizer", + "name": "sp fourier synthesizer", + "description": "Fourier Series Synthesizer in BNGL", + "path": "Contributed/BNGPlayground_Examples/signal-processing/spfouriersynthesizer/sp_fourier_synthesizer.bngl", + "file": "sp_fourier_synthesizer.bngl", + "tags": [ + "sp", + "fourier", + "synthesizer", + "s1", + "s3", + "s5", + "s7", + "s9", + "wave", + "c1" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "sp_image_convolution", + "name": "sp image convolution", + "description": "Image Convolution Filter in BNGL", + "path": "Contributed/BNGPlayground_Examples/signal-processing/spimageconvolution/sp_image_convolution.bngl", + "file": "sp_image_convolution.bngl", + "tags": [ + "sp", + "image", + "convolution", + "px", + "ex", + "sink" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "sp_kalman_filter", + "name": "sp kalman filter", + "description": "Kalman Filter in BNGL", + "path": "Contributed/BNGPlayground_Examples/signal-processing/spkalmanfilter/sp_kalman_filter.bngl", + "file": "sp_kalman_filter.bngl", + "tags": [ + "sp", + "kalman", + "filter", + "truex", + "obs", + "estx", + "estv", + "variance", + "innovation" + ], + "category": "computer-science", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Spartanburg_SC_Spartanburg_SC", + "name": "Mallela 2022 - COVID-19 MSA Models - Spartanburg_SC_Spartanburg_SC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Spartanburg_SC_Spartanburg_SC.bngl", + "file": "Spartanburg_SC_Spartanburg_SC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Spokane-Spokane_Valley_WA_Spokane-Spokane_Valley_WA", + "name": "Mallela 2022 - COVID-19 MSA Models - Spokane-Spokane_Valley_WA_Spokane-Spokane_Valley_WA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Spokane-Spokane_Valley_WA_Spokane-Spokane_Valley_WA.bngl", + "file": "Spokane-Spokane_Valley_WA_Spokane-Spokane_Valley_WA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Springfield_IL_Springfield_IL", + "name": "Mallela 2022 - COVID-19 MSA Models - Springfield_IL_Springfield_IL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Springfield_IL_Springfield_IL.bngl", + "file": "Springfield_IL_Springfield_IL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Springfield_MA_Springfield_MA", + "name": "Mallela 2022 - COVID-19 MSA Models - Springfield_MA_Springfield_MA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Springfield_MA_Springfield_MA.bngl", + "file": "Springfield_MA_Springfield_MA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "St._Cloud_MN_St._Cloud_MN", + "name": "Mallela 2022 - COVID-19 MSA Models - St._Cloud_MN_St._Cloud_MN", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/St._Cloud_MN_St._Cloud_MN.bngl", + "file": "St._Cloud_MN_St._Cloud_MN.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "St._George_UT_St._George_UT", + "name": "Mallela 2022 - COVID-19 MSA Models - St._George_UT_St._George_UT", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/St._George_UT_St._George_UT.bngl", + "file": "St._George_UT_St._George_UT.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "St._Joseph_MO-KS_St._Joseph_MO-KS", + "name": "Mallela 2022 - COVID-19 MSA Models - St._Joseph_MO-KS_St._Joseph_MO-KS", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/St._Joseph_MO-KS_St._Joseph_MO-KS.bngl", + "file": "St._Joseph_MO-KS_St._Joseph_MO-KS.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "St._Louis_MO-IL_St._Louis_MO-IL", + "name": "Mallela 2022 - COVID-19 MSA Models - St._Louis_MO-IL_St._Louis_MO-IL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/St._Louis_MO-IL_St._Louis_MO-IL.bngl", + "file": "St._Louis_MO-IL_St._Louis_MO-IL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "stat3-mediated-transcription", + "name": "stat3 mediated transcription", + "description": "STAT3-mediated transcription and feedback.", + "path": "Contributed/BNGPlayground_Examples/biology/stat3mediatedtranscription/stat3-mediated-transcription.bngl", + "file": "stat3-mediated-transcription.bngl", + "tags": [ + "stat3", + "mediated", + "transcription", + "dna", + "pias3", + "mrna" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Stockton_CA_Stockton_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - Stockton_CA_Stockton_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Stockton_CA_Stockton_CA.bngl", + "file": "Stockton_CA_Stockton_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "stress-response-adaptation", + "name": "stress response adaptation", + "description": "BioNetGen model: stress response adaptation", + "path": "Contributed/BNGPlayground_Examples/biology/stressresponseadaptation/stress-response-adaptation.bngl", + "file": "stress-response-adaptation.bngl", + "tags": [ + "stress", + "response", + "adaptation", + "sensor", + "adapter", + "enzyme" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Suderman_2013", + "name": "Suderman 2013", + "description": "Ensemble model translated into BNGL", + "path": "Tutorials/NativeTutorials/Suderman2013/Suderman_2013.bngl", + "file": "Suderman_2013.bngl", + "tags": [ + "suderman", + "2013", + "i", + "trash", + "pheromone", + "ste2", + "gpa1", + "ste4", + "sst2", + "ste20" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "Sumter_SC_Sumter_SC", + "name": "Mallela 2022 - COVID-19 MSA Models - Sumter_SC_Sumter_SC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Sumter_SC_Sumter_SC.bngl", + "file": "Sumter_SC_Sumter_SC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "supplementary_material_Arizona_Arizona", + "name": "Miller 2022 - Navajo Nation Models - supplementary_material_Arizona_Arizona", + "description": "COVID-19 epidemiological models fit to Navajo Nation regional data.", + "path": "Published/Miller2022_NavajoNation/supplementary_material_Arizona_Arizona.bngl", + "file": "supplementary_material_Arizona_Arizona.bngl", + "tags": [ + "covid-19", + "epidemiology", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Miller2022_NavajoNation" + }, + { + "id": "supplementary_material_Colorado_Colorado", + "name": "Miller 2022 - Navajo Nation Models - supplementary_material_Colorado_Colorado", + "description": "COVID-19 epidemiological models fit to Navajo Nation regional data.", + "path": "Published/Miller2022_NavajoNation/supplementary_material_Colorado_Colorado.bngl", + "file": "supplementary_material_Colorado_Colorado.bngl", + "tags": [ + "covid-19", + "epidemiology", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Miller2022_NavajoNation" + }, + { + "id": "supplementary_material_NavajoNation_NavajoNation", + "name": "Miller 2022 - Navajo Nation Models - supplementary_material_NavajoNation_NavajoNation", + "description": "COVID-19 epidemiological models fit to Navajo Nation regional data.", + "path": "Published/Miller2022_NavajoNation/supplementary_material_NavajoNation_NavajoNation.bngl", + "file": "supplementary_material_NavajoNation_NavajoNation.bngl", + "tags": [ + "covid-19", + "epidemiology", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Miller2022_NavajoNation" + }, + { + "id": "supplementary_material_NewMexico_NewMexico", + "name": "Miller 2022 - Navajo Nation Models - supplementary_material_NewMexico_NewMexico", + "description": "COVID-19 epidemiological models fit to Navajo Nation regional data.", + "path": "Published/Miller2022_NavajoNation/supplementary_material_NewMexico_NewMexico.bngl", + "file": "supplementary_material_NewMexico_NewMexico.bngl", + "tags": [ + "covid-19", + "epidemiology", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Miller2022_NavajoNation" + }, + { + "id": "supplementary_material_Utah_Utah", + "name": "Miller 2022 - Navajo Nation Models - supplementary_material_Utah_Utah", + "description": "COVID-19 epidemiological models fit to Navajo Nation regional data.", + "path": "Published/Miller2022_NavajoNation/supplementary_material_Utah_Utah.bngl", + "file": "supplementary_material_Utah_Utah.bngl", + "tags": [ + "covid-19", + "epidemiology", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Miller2022_NavajoNation" + }, + { + "id": "synaptic-plasticity-ltp", + "name": "synaptic plasticity ltp", + "description": "Initial Concentrations", + "path": "Contributed/BNGPlayground_Examples/biology/synapticplasticityltp/synaptic-plasticity-ltp.bngl", + "file": "synaptic-plasticity-ltp.bngl", + "tags": [ + "synaptic", + "plasticity", + "ltp", + "glutamate", + "nmda", + "calcium", + "camkii", + "ampar", + "glusource" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "synbio_band_pass_filter", + "name": "synbio band pass filter", + "description": "Model: synbio_band_pass_filter.bngl", + "path": "Contributed/BNGPlayground_Examples/synbio/synbiobandpassfilter/synbio_band_pass_filter.bngl", + "file": "synbio_band_pass_filter.bngl", + "tags": [ + "synbio", + "band", + "pass", + "filter", + "i", + "a", + "r", + "out" + ], + "category": "synthetic-biology", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "synbio_counter_molecular", + "name": "synbio counter molecular", + "description": "Model: synbio_counter_molecular.bngl", + "path": "Contributed/BNGPlayground_Examples/synbio/synbiocountermolecular/synbio_counter_molecular.bngl", + "file": "synbio_counter_molecular.bngl", + "tags": [ + "synbio", + "counter", + "molecular", + "state", + "input" + ], + "category": "synthetic-biology", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "synbio_edge_detector", + "name": "synbio edge detector", + "description": "Model: synbio_edge_detector.bngl", + "path": "Contributed/BNGPlayground_Examples/synbio/synbioedgedetector/synbio_edge_detector.bngl", + "file": "synbio_edge_detector.bngl", + "tags": [ + "synbio", + "edge", + "detector", + "x", + "y", + "z" + ], + "category": "synthetic-biology", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "synbio_logic_gates_enzymatic", + "name": "synbio logic gates enzymatic", + "description": "Model: synbio_logic_gates_enzymatic.bngl", + "path": "Contributed/BNGPlayground_Examples/synbio/synbiologicgatesenzymatic/synbio_logic_gates_enzymatic.bngl", + "file": "synbio_logic_gates_enzymatic.bngl", + "tags": [ + "synbio", + "logic", + "gates", + "enzymatic", + "i1", + "i2", + "gateand", + "gateor", + "outand", + "outor" + ], + "category": "synthetic-biology", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "synbio_oscillator_synchronization", + "name": "synbio oscillator synchronization", + "description": "Model: synbio_oscillator_synchronization.bngl", + "path": "Contributed/BNGPlayground_Examples/synbio/synbiooscillatorsynchronization/synbio_oscillator_synchronization.bngl", + "file": "synbio_oscillator_synchronization.bngl", + "tags": [ + "synbio", + "oscillator", + "synchronization", + "osc1", + "osc2", + "signal" + ], + "category": "synthetic-biology", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Syracuse_NY_Syracuse_NY", + "name": "Mallela 2022 - COVID-19 MSA Models - Syracuse_NY_Syracuse_NY", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Syracuse_NY_Syracuse_NY.bngl", + "file": "Syracuse_NY_Syracuse_NY.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "t-cell-activation", + "name": "t cell activation", + "description": "BioNetGen model: t cell activation", + "path": "Contributed/BNGPlayground_Examples/biology/tcellactivation/t-cell-activation.bngl", + "file": "t-cell-activation.bngl", + "tags": [ + "t", + "cell", + "activation", + "tcr", + "antigen", + "cytokine" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Tallahassee_FL_Tallahassee_FL", + "name": "Mallela 2022 - COVID-19 MSA Models - Tallahassee_FL_Tallahassee_FL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Tallahassee_FL_Tallahassee_FL.bngl", + "file": "Tallahassee_FL_Tallahassee_FL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Tampa-St._Petersburg-Clearwater_FL_Tampa-St._Petersburg-Clearwater_FL", + "name": "Mallela 2022 - COVID-19 MSA Models - Tampa-St._Petersburg-Clearwater_FL_Tampa-St._Petersburg-Clearwater_FL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Tampa-St._Petersburg-Clearwater_FL_Tampa-St._Petersburg-Clearwater_FL.bngl", + "file": "Tampa-St._Petersburg-Clearwater_FL_Tampa-St._Petersburg-Clearwater_FL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "tcr", + "name": "tcr", + "description": "A model of T cell receptor signaling", + "path": "PyBioNetGen/core/tcr/tcr.bngl", + "file": "tcr.bngl", + "tags": [ + "tcr", + "lig1", + "lig2", + "lig3", + "cd28", + "lck", + "itk", + "zap70" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "test_ANG_synthesis_simple", + "name": "test_ANG_synthesis_simple", + "description": "Synthesis network test", + "path": "Contributed/BNGPlayground_Validation/testANGsynthesissimple/test_ANG_synthesis_simple.bngl", + "file": "test_ANG_synthesis_simple.bngl", + "tags": [ + "validation", + "test", + "ang", + "synthesis", + "simple", + "a", + "b", + "c", + "source", + "source2", + "generate_network" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "test_fixed", + "name": "test_fixed", + "description": "# actions ##", + "path": "Contributed/BNGPlayground_Validation/testfixed/test_fixed.bngl", + "file": "test_fixed.bngl", + "tags": [ + "validation", + "test", + "fixed", + "a", + "b", + "generate_network", + "simulate" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "test_MM", + "name": "test_MM", + "description": "Kinetic constants", + "path": "Contributed/BNGPlayground_Validation/testMM/test_MM.bngl", + "file": "test_MM.bngl", + "tags": [ + "validation", + "test", + "mm", + "e", + "s", + "p", + "generate_network" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "test_mratio", + "name": "test_mratio", + "description": "Reaction ratio test", + "path": "Contributed/BNGPlayground_Validation/testmratio/test_mratio.bngl", + "file": "test_mratio.bngl", + "tags": [ + "validation", + "test", + "mratio", + "a", + "b", + "c_theory", + "c_upper", + "c_lower" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "test_network_gen", + "name": "test_network_gen", + "description": "fceri model with network generation", + "path": "Contributed/BNGPlayground_Validation/testnetworkgen/test_network_gen.bngl", + "file": "test_network_gen.bngl", + "tags": [ + "validation", + "test", + "network", + "gen", + "lig", + "lyn", + "syk", + "rec" + ], + "category": "validation", + "bng2_compatible": false, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "test_sat", + "name": "test_sat", + "description": "Kinetic constants", + "path": "Contributed/BNGPlayground_Validation/testsat/test_sat.bngl", + "file": "test_sat.bngl", + "tags": [ + "validation", + "test", + "sat", + "e", + "s", + "p", + "generate_network" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "test_synthesis_cBNGL_simple", + "name": "test_synthesis_cBNGL_simple", + "description": "Compartmental synthesis", + "path": "Contributed/BNGPlayground_Validation/testsynthesiscBNGLsimple/test_synthesis_cBNGL_simple.bngl", + "file": "test_synthesis_cBNGL_simple.bngl", + "tags": [ + "validation", + "test", + "synthesis", + "cbngl", + "simple", + "a", + "a2", + "b", + "c", + "source", + "source2" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "test_synthesis_complex", + "name": "test_synthesis_complex", + "description": "Complex synthesis test", + "path": "Contributed/BNGPlayground_Validation/testsynthesiscomplex/test_synthesis_complex.bngl", + "file": "test_synthesis_complex.bngl", + "tags": [ + "validation", + "test", + "synthesis", + "complex", + "a", + "b", + "c", + "receptor", + "source", + "source2" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "test_synthesis_complex_0_cBNGL", + "name": "test_synthesis_complex_0_cBNGL", + "description": "volume-surface", + "path": "Contributed/BNGPlayground_Validation/testsynthesiscomplex0cBNGL/test_synthesis_complex_0_cBNGL.bngl", + "file": "test_synthesis_complex_0_cBNGL.bngl", + "tags": [ + "validation", + "test", + "synthesis", + "complex", + "0", + "cbngl", + "volume_molecule1", + "volume_molecule2", + "surface_molecule1", + "surface_molecule2", + "volume_molecule3", + "volume_molecule4", + "volume_receptor", + "surface_receptor" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "test_synthesis_complex_source_cBNGL", + "name": "test_synthesis_complex_source_cBNGL", + "description": "volume-surface", + "path": "Contributed/BNGPlayground_Validation/testsynthesiscomplexsourcecBNGL/test_synthesis_complex_source_cBNGL.bngl", + "file": "test_synthesis_complex_source_cBNGL.bngl", + "tags": [ + "validation", + "test", + "synthesis", + "complex", + "source", + "cbngl", + "volume_molecule1", + "volume_molecule2", + "surface_molecule1", + "surface_molecule2", + "volume_molecule3", + "volume_molecule4", + "volume_receptor", + "surface_receptor" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "test_synthesis_simple", + "name": "test_synthesis_simple", + "description": "Simple synthesis test", + "path": "Contributed/BNGPlayground_Validation/testsynthesissimple/test_synthesis_simple.bngl", + "file": "test_synthesis_simple.bngl", + "tags": [ + "validation", + "test", + "synthesis", + "simple", + "a", + "b", + "c", + "source", + "source2", + "generate_network" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "Texarkana_TX-AR_Texarkana_TX-AR", + "name": "Mallela 2022 - COVID-19 MSA Models - Texarkana_TX-AR_Texarkana_TX-AR", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Texarkana_TX-AR_Texarkana_TX-AR.bngl", + "file": "Texarkana_TX-AR_Texarkana_TX-AR.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "The_Villages_FL_The_Villages_FL", + "name": "Mallela 2022 - COVID-19 MSA Models - The_Villages_FL_The_Villages_FL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/The_Villages_FL_The_Villages_FL.bngl", + "file": "The_Villages_FL_The_Villages_FL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "tlbr", + "name": "TLBR Tutorial", + "description": "Ligand binding", + "path": "Published/tlbr/tlbr.bngl", + "file": "tlbr.bngl", + "tags": [ + "published", + "immunology", + "tlbr", + "l", + "r", + "simulate_rm" + ], + "category": "immunology", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "tlbr", + "name": "tlbr", + "description": "A model of trivalent ligand, bivalent receptor", + "path": "PyBioNetGen/core/tlbr/tlbr.bngl", + "file": "tlbr.bngl", + "tags": [ + "tlbr", + "l", + "r", + "lambda", + "fl" + ], + "category": "other", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "tlmr", + "name": "tlmr", + "description": "Trivalent ligand monovalent receptor", + "path": "Contributed/BNGPlayground_Validation/tlmr/tlmr.bngl", + "file": "tlmr.bngl", + "tags": [ + "validation", + "tlmr", + "l", + "r", + "generate_network", + "simulate_ode" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "tlr3-dsrna-sensing", + "name": "tlr3 dsrna sensing", + "description": "TLR3-mediated dsRNA sensing and TRIF pathway activation.", + "path": "Contributed/BNGPlayground_Examples/biology/tlr3dsrnasensing/tlr3-dsrna-sensing.bngl", + "file": "tlr3-dsrna-sensing.bngl", + "tags": [ + "tlr3", + "dsrna", + "sensing", + "trif", + "irf3", + "sarm" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "tnf-induced-apoptosis", + "name": "tnf induced apoptosis", + "description": "BioNetGen model: tnf induced apoptosis", + "path": "Contributed/BNGPlayground_Examples/biology/tnfinducedapoptosis/tnf-induced-apoptosis.bngl", + "file": "tnf-induced-apoptosis.bngl", + "tags": [ + "tnf", + "induced", + "apoptosis", + "tnfr", + "caspase8", + "bid", + "caspase3" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "toggle", + "name": "Toggle", + "description": "Toggle switch", + "path": "Tutorials/NativeTutorials/toggle/toggle.bngl", + "file": "toggle.bngl", + "tags": [ + "published", + "tutorial", + "native", + "toggle", + "x", + "y", + "generate_network", + "writemfile", + "setconcentration" + ], + "category": "tutorial", + "bng2_compatible": false, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "Toledo_OH_Toledo_OH", + "name": "Mallela 2022 - COVID-19 MSA Models - Toledo_OH_Toledo_OH", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Toledo_OH_Toledo_OH.bngl", + "file": "Toledo_OH_Toledo_OH.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Topeka_KS_Topeka_KS", + "name": "Mallela 2022 - COVID-19 MSA Models - Topeka_KS_Topeka_KS", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Topeka_KS_Topeka_KS.bngl", + "file": "Topeka_KS_Topeka_KS.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "toy-jim", + "name": "toy-jim", + "description": "The model consists of a monovalent extracellular ligand,", + "path": "Contributed/BNGPlayground_Validation/toyjim/toy-jim.bngl", + "file": "toy-jim.bngl", + "tags": [ + "validation", + "toy", + "jim", + "l", + "r", + "a", + "k", + "null" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "toy1", + "name": "toy1", + "description": "Basic signaling toy", + "path": "Tutorials/General/toy1/toy1.bngl", + "file": "toy1.bngl", + "tags": [ + "published", + "tutorials", + "toy1", + "l", + "r", + "a", + "generate_network", + "writesbml", + "simulate_ode" + ], + "category": "tutorial", + "bng2_compatible": false, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "toy2", + "name": "toy2", + "description": "Enzymatic reaction toy", + "path": "Tutorials/General/toy2/toy2.bngl", + "file": "toy2.bngl", + "tags": [ + "published", + "tutorials", + "toy2", + "l", + "r", + "a", + "k" + ], + "category": "tutorial", + "bng2_compatible": false, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "translateSBML", + "name": "translateSBML", + "description": "title: translateSBML.bngl", + "path": "Tutorials/NativeTutorials/translateSBML/translateSBML.bngl", + "file": "translateSBML.bngl", + "tags": [ + "translatesbml", + "generate_network", + "simulate" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "Trenton-Princeton_NJ_Trenton-Princeton_NJ", + "name": "Mallela 2022 - COVID-19 MSA Models - Trenton-Princeton_NJ_Trenton-Princeton_NJ", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Trenton-Princeton_NJ_Trenton-Princeton_NJ.bngl", + "file": "Trenton-Princeton_NJ_Trenton-Princeton_NJ.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Tricky", + "name": "Tricky", + "description": "An example from a real application", + "path": "PyBioNetGen/tests/Tricky/Tricky.bngl", + "file": "Tricky.bngl", + "tags": [ + "tricky", + "ag", + "r", + "h" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "TrickyUS", + "name": "TrickyUS", + "description": "An example from a real application", + "path": "PyBioNetGen/tests/TrickyUS/TrickyUS.bngl", + "file": "TrickyUS.bngl", + "tags": [ + "trickyus", + "ag", + "r", + "h" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "trivial", + "name": "trivial", + "description": "A trivial model file for testing MCMC distributions.", + "path": "PyBioNetGen/tests/trivial/trivial.bngl", + "file": "trivial.bngl", + "tags": [ + "trivial", + "q", + "r", + "output", + "generate_network", + "simulate" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": false, + "collectionId": null + }, + { + "id": "Tucson_AZ_Tucson_AZ", + "name": "Mallela 2022 - COVID-19 MSA Models - Tucson_AZ_Tucson_AZ", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Tucson_AZ_Tucson_AZ.bngl", + "file": "Tucson_AZ_Tucson_AZ.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Tulsa_OK_Tulsa_OK", + "name": "Mallela 2022 - COVID-19 MSA Models - Tulsa_OK_Tulsa_OK", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Tulsa_OK_Tulsa_OK.bngl", + "file": "Tulsa_OK_Tulsa_OK.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Tuscaloosa_AL_Tuscaloosa_AL", + "name": "Mallela 2022 - COVID-19 MSA Models - Tuscaloosa_AL_Tuscaloosa_AL", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Tuscaloosa_AL_Tuscaloosa_AL.bngl", + "file": "Tuscaloosa_AL_Tuscaloosa_AL.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Twin_Falls_ID_Twin_Falls_ID", + "name": "Mallela 2022 - COVID-19 MSA Models - Twin_Falls_ID_Twin_Falls_ID", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Twin_Falls_ID_Twin_Falls_ID.bngl", + "file": "Twin_Falls_ID_Twin_Falls_ID.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "two-component-system", + "name": "two component system", + "description": "BioNetGen model: two component system", + "path": "Contributed/BNGPlayground_Examples/biology/twocomponentsystem/two-component-system.bngl", + "file": "two-component-system.bngl", + "tags": [ + "two", + "component", + "system", + "kinase", + "regulator", + "target" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "univ_synth", + "name": "univ_synth", + "description": "example of universal synthesis", + "path": "Contributed/BNGPlayground_Validation/univsynth/univ_synth.bngl", + "file": "univ_synth.bngl", + "tags": [ + "validation", + "univ", + "synth", + "a", + "b", + "c", + "generate_network", + "simulate_ode" + ], + "category": "validation", + "bng2_compatible": true, + "origin": "test-case", + "visible": true, + "collectionId": null + }, + { + "id": "Urban_Honolulu_HI_Urban_Honolulu_HI", + "name": "Mallela 2022 - COVID-19 MSA Models - Urban_Honolulu_HI_Urban_Honolulu_HI", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Urban_Honolulu_HI_Urban_Honolulu_HI.bngl", + "file": "Urban_Honolulu_HI_Urban_Honolulu_HI.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Utica-Rome_NY_Utica-Rome_NY", + "name": "Mallela 2022 - COVID-19 MSA Models - Utica-Rome_NY_Utica-Rome_NY", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Utica-Rome_NY_Utica-Rome_NY.bngl", + "file": "Utica-Rome_NY_Utica-Rome_NY.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Valdosta_GA_Valdosta_GA", + "name": "Mallela 2022 - COVID-19 MSA Models - Valdosta_GA_Valdosta_GA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Valdosta_GA_Valdosta_GA.bngl", + "file": "Valdosta_GA_Valdosta_GA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Vallejo_CA_Vallejo_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - Vallejo_CA_Vallejo_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Vallejo_CA_Vallejo_CA.bngl", + "file": "Vallejo_CA_Vallejo_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Valley_of_the_Sun_m10", + "name": "Mallela 2021 - COVID-19 City Models - Valley_of_the_Sun_m10", + "description": "Parameter-fit COVID-19 epidemiological models for major US cities.", + "path": "Published/Mallela2021_Cities/Valley_of_the_Sun_m10.bngl", + "file": "Valley_of_the_Sun_m10.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "vegf-angiogenesis", + "name": "vegf angiogenesis", + "description": "VEGF-mediated signaling in angiogenesis.", + "path": "Contributed/BNGPlayground_Examples/biology/vegfangiogenesis/vegf-angiogenesis.bngl", + "file": "vegf-angiogenesis.bngl", + "tags": [ + "vegf", + "angiogenesis", + "vegfr2", + "vegfr1", + "erk", + "endothelial" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Victoria_TX_Victoria_TX", + "name": "Mallela 2022 - COVID-19 MSA Models - Victoria_TX_Victoria_TX", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Victoria_TX_Victoria_TX.bngl", + "file": "Victoria_TX_Victoria_TX.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "vilar_2002", + "name": "Vilar 2002", + "description": "Genetic oscillator", + "path": "Published/vilar2002/vilar_2002.bngl", + "file": "vilar_2002.bngl", + "tags": [ + "published", + "vilar", + "2002", + "dna", + "a", + "r" + ], + "category": "regulation", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "vilar_2002b", + "name": "Vilar 2002b", + "description": "Gene oscillator", + "path": "Published/vilar2002b/vilar_2002b.bngl", + "file": "vilar_2002b.bngl", + "tags": [ + "published", + "vilar", + "2002b", + "dna", + "a", + "r" + ], + "category": "regulation", + "bng2_compatible": false, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "vilar_2002c", + "name": "Vilar 2002c", + "description": "Gene oscillator", + "path": "Published/vilar2002c/vilar_2002c.bngl", + "file": "vilar_2002c.bngl", + "tags": [ + "published", + "vilar", + "2002c", + "dna", + "a", + "r" + ], + "category": "regulation", + "bng2_compatible": false, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "Vineland-Bridgeton_NJ_Vineland-Bridgeton_NJ", + "name": "Mallela 2022 - COVID-19 MSA Models - Vineland-Bridgeton_NJ_Vineland-Bridgeton_NJ", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Vineland-Bridgeton_NJ_Vineland-Bridgeton_NJ.bngl", + "file": "Vineland-Bridgeton_NJ_Vineland-Bridgeton_NJ.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "viral-sensing-innate-immunity", + "name": "viral sensing innate immunity", + "description": "BioNetGen model: viral sensing innate immunity", + "path": "Contributed/BNGPlayground_Examples/biology/viralsensinginnateimmunity/viral-sensing-innate-immunity.bngl", + "file": "viral-sensing-innate-immunity.bngl", + "tags": [ + "viral", + "sensing", + "innate", + "immunity", + "viralrna", + "rigi", + "mavs", + "irf3", + "ifnb" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Virginia_Beach-Norfolk-Newport_News_VA-NC_Virginia_Beach-Norfolk-Newport_News_VA-NC", + "name": "Mallela 2022 - COVID-19 MSA Models - Virginia_Beach-Norfolk-Newport_News_VA-NC_Virginia_Beach-Norfolk-Newport_News_VA-NC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Virginia_Beach-Norfolk-Newport_News_VA-NC_Virginia_Beach-Norfolk-Newport_News_VA-NC.bngl", + "file": "Virginia_Beach-Norfolk-Newport_News_VA-NC_Virginia_Beach-Norfolk-Newport_News_VA-NC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Visalia_CA_Visalia_CA", + "name": "Mallela 2022 - COVID-19 MSA Models - Visalia_CA_Visalia_CA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Visalia_CA_Visalia_CA.bngl", + "file": "Visalia_CA_Visalia_CA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "visualize", + "name": "Visualize", + "description": "Visualization toy", + "path": "Tutorials/NativeTutorials/visualize/visualize.bngl", + "file": "visualize.bngl", + "tags": [ + "published", + "tutorial", + "native", + "visualize", + "x", + "a1", + "a2", + "b" + ], + "category": "tutorial", + "bng2_compatible": true, + "origin": "tutorial", + "visible": false, + "collectionId": null + }, + { + "id": "wacky_alchemy_stone", + "name": "wacky alchemy stone", + "description": "Model: wacky_alchemy_stone.bngl", + "path": "Contributed/BNGPlayground_Examples/wacky/wackyalchemystone/wacky_alchemy_stone.bngl", + "file": "wacky_alchemy_stone.bngl", + "tags": [ + "wacky", + "alchemy", + "stone", + "lead", + "gold" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "wacky_black_hole", + "name": "wacky black hole", + "description": "Model: wacky_black_hole.bngl", + "path": "Contributed/BNGPlayground_Examples/wacky/wackyblackhole/wacky_black_hole.bngl", + "file": "wacky_black_hole.bngl", + "tags": [ + "wacky", + "black", + "hole", + "m", + "bh", + "k_accrete", + "k_evap" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "wacky_bouncing_ball", + "name": "wacky bouncing ball", + "description": "Model: wacky_bouncing_ball.bngl", + "path": "Contributed/BNGPlayground_Examples/wacky/wackybouncingball/wacky_bouncing_ball.bngl", + "file": "wacky_bouncing_ball.bngl", + "tags": [ + "wacky", + "bouncing", + "ball", + "height", + "velocity" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "wacky_traffic_jam_asep", + "name": "wacky traffic jam asep", + "description": "Model: wacky_traffic_jam_asep.bngl", + "path": "Contributed/BNGPlayground_Examples/wacky/wackytrafficjamasep/wacky_traffic_jam_asep.bngl", + "file": "wacky_traffic_jam_asep.bngl", + "tags": [ + "wacky", + "traffic", + "jam", + "asep", + "site", + "car", + "generate_network", + "simulate" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "wacky_zombie_infection", + "name": "wacky zombie infection", + "description": "Model: wacky_zombie_infection.bngl", + "path": "Contributed/BNGPlayground_Examples/wacky/wackyzombieinfection/wacky_zombie_infection.bngl", + "file": "wacky_zombie_infection.bngl", + "tags": [ + "wacky", + "zombie", + "infection", + "human" + ], + "category": "other", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Warner_Robins_GA_Warner_Robins_GA", + "name": "Mallela 2022 - COVID-19 MSA Models - Warner_Robins_GA_Warner_Robins_GA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Warner_Robins_GA_Warner_Robins_GA.bngl", + "file": "Warner_Robins_GA_Warner_Robins_GA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Washington-Arlington-Alexandria_DC-VA-MD-WV_Washington-Arlington-Alexandria_DC-VA-MD-WV", + "name": "Mallela 2022 - COVID-19 MSA Models - Washington-Arlington-Alexandria_DC-VA-MD-WV_Washington-Arlington-Alexandria_DC-VA-MD-WV", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Washington-Arlington-Alexandria_DC-VA-MD-WV_Washington-Arlington-Alexandria_DC-VA-MD-WV.bngl", + "file": "Washington-Arlington-Alexandria_DC-VA-MD-WV_Washington-Arlington-Alexandria_DC-VA-MD-WV.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Waterloo-Cedar_Falls_IA_Waterloo-Cedar_Falls_IA", + "name": "Mallela 2022 - COVID-19 MSA Models - Waterloo-Cedar_Falls_IA_Waterloo-Cedar_Falls_IA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Waterloo-Cedar_Falls_IA_Waterloo-Cedar_Falls_IA.bngl", + "file": "Waterloo-Cedar_Falls_IA_Waterloo-Cedar_Falls_IA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Wenatchee_WA_Wenatchee_WA", + "name": "Mallela 2022 - COVID-19 MSA Models - Wenatchee_WA_Wenatchee_WA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Wenatchee_WA_Wenatchee_WA.bngl", + "file": "Wenatchee_WA_Wenatchee_WA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Wheeling_WV-OH_Wheeling_WV-OH", + "name": "Mallela 2022 - COVID-19 MSA Models - Wheeling_WV-OH_Wheeling_WV-OH", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Wheeling_WV-OH_Wheeling_WV-OH.bngl", + "file": "Wheeling_WV-OH_Wheeling_WV-OH.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Wichita_KS_Wichita_KS", + "name": "Mallela 2022 - COVID-19 MSA Models - Wichita_KS_Wichita_KS", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Wichita_KS_Wichita_KS.bngl", + "file": "Wichita_KS_Wichita_KS.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Winchester_VA-WV_Winchester_VA-WV", + "name": "Mallela 2022 - COVID-19 MSA Models - Winchester_VA-WV_Winchester_VA-WV", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Winchester_VA-WV_Winchester_VA-WV.bngl", + "file": "Winchester_VA-WV_Winchester_VA-WV.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "WindyCity_m3", + "name": "Mallela 2021 - COVID-19 City Models - WindyCity_m3", + "description": "Parameter-fit COVID-19 epidemiological models for major US cities.", + "path": "Published/Mallela2021_Cities/WindyCity_m3.bngl", + "file": "WindyCity_m3.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "Winston-Salem_NC_Winston-Salem_NC", + "name": "Mallela 2022 - COVID-19 MSA Models - Winston-Salem_NC_Winston-Salem_NC", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Winston-Salem_NC_Winston-Salem_NC.bngl", + "file": "Winston-Salem_NC_Winston-Salem_NC.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "wnt", + "name": "Wnt Signaling", + "description": "Wnt signaling", + "path": "Published/wnt/wnt.bngl", + "file": "wnt.bngl", + "tags": [ + "published", + "wnt", + "dsh", + "axc", + "frz", + "lrp5", + "bcat" + ], + "category": "regulation", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "wnt-beta-catenin-signaling", + "name": "wnt beta catenin signaling", + "description": "Wnt/Beta-Catenin signaling (Canonical pathway).", + "path": "Contributed/BNGPlayground_Examples/biology/wntbetacateninsignaling/wnt-beta-catenin-signaling.bngl", + "file": "wnt-beta-catenin-signaling.bngl", + "tags": [ + "wnt", + "beta", + "catenin", + "signaling", + "frizzled", + "dvl", + "dest_complex", + "betacatenin", + "tcf" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Worcester_MA-CT_Worcester_MA-CT", + "name": "Mallela 2022 - COVID-19 MSA Models - Worcester_MA-CT_Worcester_MA-CT", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Worcester_MA-CT_Worcester_MA-CT.bngl", + "file": "Worcester_MA-CT_Worcester_MA-CT.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "wound-healing-pdgf-signaling", + "name": "wound healing pdgf signaling", + "description": "BioNetGen model: wound healing pdgf signaling", + "path": "Contributed/BNGPlayground_Examples/biology/woundhealingpdgfsignaling/wound-healing-pdgf-signaling.bngl", + "file": "wound-healing-pdgf-signaling.bngl", + "tags": [ + "wound", + "healing", + "pdgf", + "signaling", + "pdgfr", + "stat3", + "fibroblast" + ], + "category": "signaling", + "bng2_compatible": true, + "origin": "ai-generated", + "visible": false, + "collectionId": null + }, + { + "id": "Yakima_WA_Yakima_WA", + "name": "Mallela 2022 - COVID-19 MSA Models - Yakima_WA_Yakima_WA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Yakima_WA_Yakima_WA.bngl", + "file": "Yakima_WA_Yakima_WA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "York-Hanover_PA_York-Hanover_PA", + "name": "Mallela 2022 - COVID-19 MSA Models - York-Hanover_PA_York-Hanover_PA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/York-Hanover_PA_York-Hanover_PA.bngl", + "file": "York-Hanover_PA_York-Hanover_PA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Youngstown-Warren-Boardman_OH-PA_Youngstown-Warren-Boardman_OH-PA", + "name": "Mallela 2022 - COVID-19 MSA Models - Youngstown-Warren-Boardman_OH-PA_Youngstown-Warren-Boardman_OH-PA", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Youngstown-Warren-Boardman_OH-PA_Youngstown-Warren-Boardman_OH-PA.bngl", + "file": "Youngstown-Warren-Boardman_OH-PA_Youngstown-Warren-Boardman_OH-PA.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Yuma_AZ_Yuma_AZ", + "name": "Mallela 2022 - COVID-19 MSA Models - Yuma_AZ_Yuma_AZ", + "description": "Parameter-fit COVID-19 epidemiological models for US metropolitan statistical areas.", + "path": "Published/Mallela2022_MSAs/Yuma_AZ_Yuma_AZ.bngl", + "file": "Yuma_AZ_Yuma_AZ.bngl", + "tags": [ + "covid-19", + "epidemiology", + "parameter-estimation", + "pybionetgen" + ], + "category": "epidemiology", + "bng2_compatible": true, + "origin": "published", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Zhang_2021", + "name": "Zhang 2021", + "description": "CAR-T signaling", + "path": "Published/Zhang2021/Zhang_2021.bngl", + "file": "Zhang_2021.bngl", + "tags": [ + "published", + "zhang", + "2021", + "tie2", + "tie1", + "ang1_4", + "ang2_2", + "ang2_3", + "ang2_4", + "veptp", + "pten" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + }, + { + "id": "Zhang_2023", + "name": "Zhang 2023", + "description": "VEGF signaling", + "path": "Published/Zhang2023/Zhang_2023.bngl", + "file": "Zhang_2023.bngl", + "tags": [ + "published", + "zhang", + "2023", + "vegf", + "vegfr2", + "vegfr1", + "nrp1", + "pi", + "plcgamma", + "dag", + "ip3_cyto" + ], + "category": "signaling", + "bng2_compatible": false, + "origin": "published", + "visible": false, + "collectionId": null + } +] \ No newline at end of file diff --git a/metadata-schema.yaml b/metadata-schema.yaml new file mode 100644 index 00000000..1e9d9457 --- /dev/null +++ b/metadata-schema.yaml @@ -0,0 +1,56 @@ +# RuleHub Model Metadata Standard v1.0 + +id: string +name: string +description: string + +authors: + - name: string + orcid: string + +contributors: + - name: string + +citation: + doi: string + pmid: string + reference: string + +date: + created: YYYY-MM-DD + modified: YYYY-MM-DD + published: YYYY-MM-DD + +tags: string[] +category: enum(signaling, regulation, metabolism, gene-expression, epidemiology, immunology, tutorial, validation, showcase, synthetic-biology, ecology, physics, computer-science, other) + +compatibility: + bng2_compatible: boolean + min_bng_version: string + simulation_methods: + - ode + - ssa + - nf + uses_compartments: boolean + uses_energy: boolean + uses_functions: boolean + nfsim_compatible: boolean + +source: + origin: enum(published, contributed, ai-generated, ported-from-sbml, tutorial, test-case) + original_format: string + original_repository: string + biomodels_id: string + source_path: string + +collection: + type: enum(parameter-fit-variants, sensitivity-analysis, geographic-variants, patient-specific) + parent_model: string + variant_key: string + count: integer + +playground: + visible: boolean + gallery_category: string + featured: boolean + difficulty: enum(beginner, intermediate, advanced) \ No newline at end of file diff --git a/migration-summary.json b/migration-summary.json new file mode 100644 index 00000000..e7c27f3e --- /dev/null +++ b/migration-summary.json @@ -0,0 +1,7072 @@ +{ + "generated": "2026-03-12T16:33:18.641Z", + "totalModels": 742, + "collections": [ + { + "id": "Mallela2021_Cities", + "destinationRoot": "Published/Mallela2021_Cities", + "count": 15 + }, + { + "id": "Mallela2021_States", + "destinationRoot": "Published/Mallela2021", + "count": 50 + }, + { + "id": "Mallela2022_MSAs", + "destinationRoot": "Published/Mallela2022_MSAs", + "count": 281 + }, + { + "id": "Miller2022_NavajoNation", + "destinationRoot": "Published/Miller2022_NavajoNation", + "count": 5 + }, + { + "id": "Miller2025_MEK", + "destinationRoot": "Published/Miller2025_MEK", + "count": 10 + } + ], + "models": [ + { + "id": "akt-signaling", + "sourcePath": "example-models/akt-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/aktsignaling", + "destinationFile": "akt-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "allosteric-activation", + "sourcePath": "example-models/allosteric-activation.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/allostericactivation", + "destinationFile": "allosteric-activation.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "ampk-signaling", + "sourcePath": "example-models/ampk-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/ampksignaling", + "destinationFile": "ampk-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "apoptosis-cascade", + "sourcePath": "example-models/apoptosis-cascade.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/apoptosiscascade", + "destinationFile": "apoptosis-cascade.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "auto-activation-loop", + "sourcePath": "example-models/auto-activation-loop.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/autoactivationloop", + "destinationFile": "auto-activation-loop.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "autophagy-regulation", + "sourcePath": "example-models/autophagy-regulation.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/autophagyregulation", + "destinationFile": "autophagy-regulation.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "bcr-signaling", + "sourcePath": "example-models/bcr-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/bcrsignaling", + "destinationFile": "bcr-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "beta-adrenergic-response", + "sourcePath": "example-models/beta-adrenergic-response.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/betaadrenergicresponse", + "destinationFile": "beta-adrenergic-response.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "bistable-toggle-switch", + "sourcePath": "example-models/bistable-toggle-switch.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/bistabletoggleswitch", + "destinationFile": "bistable-toggle-switch.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "blood-coagulation-thrombin", + "sourcePath": "example-models/blood-coagulation-thrombin.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/bloodcoagulationthrombin", + "destinationFile": "blood-coagulation-thrombin.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "bmp-signaling", + "sourcePath": "example-models/bmp-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/bmpsignaling", + "destinationFile": "bmp-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "brusselator-oscillator", + "sourcePath": "example-models/brusselator-oscillator.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/brusselatoroscillator", + "destinationFile": "brusselator-oscillator.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "calcineurin-nfat-pathway", + "sourcePath": "example-models/calcineurin-nfat-pathway.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/calcineurinnfatpathway", + "destinationFile": "calcineurin-nfat-pathway.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "calcium-spike-signaling", + "sourcePath": "example-models/calcium-spike-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/calciumspikesignaling", + "destinationFile": "calcium-spike-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "caspase-activation-loop", + "sourcePath": "example-models/caspase-activation-loop.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/caspaseactivationloop", + "destinationFile": "caspase-activation-loop.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "cd40-signaling", + "sourcePath": "example-models/cd40-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/cd40signaling", + "destinationFile": "cd40-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "cell-cycle-checkpoint", + "sourcePath": "example-models/cell-cycle-checkpoint.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/cellcyclecheckpoint", + "destinationFile": "cell-cycle-checkpoint.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "checkpoint-kinase-signaling", + "sourcePath": "example-models/checkpoint-kinase-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/checkpointkinasesignaling", + "destinationFile": "checkpoint-kinase-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "chemotaxis-signal-transduction", + "sourcePath": "example-models/chemotaxis-signal-transduction.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/chemotaxissignaltransduction", + "destinationFile": "chemotaxis-signal-transduction.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "circadian-oscillator", + "sourcePath": "example-models/circadian-oscillator.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/circadianoscillator", + "destinationFile": "circadian-oscillator.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "clock-bmal1-gene-circuit", + "sourcePath": "example-models/clock-bmal1-gene-circuit.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/clockbmal1genecircuit", + "destinationFile": "clock-bmal1-gene-circuit.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "compartment_endocytosis", + "sourcePath": "example-models/compartment_endocytosis.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/compartments/compartmentendocytosis", + "destinationFile": "compartment_endocytosis.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "compartment_membrane_bound", + "sourcePath": "example-models/compartment_membrane_bound.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/compartments/compartmentmembranebound", + "destinationFile": "compartment_membrane_bound.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "compartment_nested_transport", + "sourcePath": "example-models/compartment_nested_transport.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/compartments/compartmentnestedtransport", + "destinationFile": "compartment_nested_transport.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "compartment_nuclear_transport", + "sourcePath": "example-models/compartment_nuclear_transport.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/compartments/compartmentnucleartransport", + "destinationFile": "compartment_nuclear_transport.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "compartment_organelle_exchange", + "sourcePath": "example-models/compartment_organelle_exchange.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/compartments/compartmentorganelleexchange", + "destinationFile": "compartment_organelle_exchange.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "competitive-enzyme-inhibition", + "sourcePath": "example-models/competitive-enzyme-inhibition.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/competitiveenzymeinhibition", + "destinationFile": "competitive-enzyme-inhibition.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "complement-activation-cascade", + "sourcePath": "example-models/complement-activation-cascade.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/complementactivationcascade", + "destinationFile": "complement-activation-cascade.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "contact-inhibition-hippo-yap", + "sourcePath": "example-models/contact-inhibition-hippo-yap.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/contactinhibitionhippoyap", + "destinationFile": "contact-inhibition-hippo-yap.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "cooperative-binding", + "sourcePath": "example-models/cooperative-binding.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/cooperativebinding", + "destinationFile": "cooperative-binding.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "cs_diffie_hellman", + "sourcePath": "example-models/cs_diffie_hellman.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/cs/csdiffiehellman", + "destinationFile": "cs_diffie_hellman.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "cs_hash_function", + "sourcePath": "example-models/cs_hash_function.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/cs/cshashfunction", + "destinationFile": "cs_hash_function.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "cs_huffman", + "sourcePath": "example-models/cs_huffman.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/cs/cshuffman", + "destinationFile": "cs_huffman.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "cs_monte_carlo_pi", + "sourcePath": "example-models/cs_monte_carlo_pi.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/cs/csmontecarlopi", + "destinationFile": "cs_monte_carlo_pi.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "cs_pagerank", + "sourcePath": "example-models/cs_pagerank.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/cs/cspagerank", + "destinationFile": "cs_pagerank.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "cs_pid_controller", + "sourcePath": "example-models/cs_pid_controller.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/cs/cspidcontroller", + "destinationFile": "cs_pid_controller.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "cs_regex_nfa", + "sourcePath": "example-models/cs_regex_nfa.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/cs/csregexnfa", + "destinationFile": "cs_regex_nfa.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "dna-damage-repair", + "sourcePath": "example-models/dna-damage-repair.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/dnadamagerepair", + "destinationFile": "dna-damage-repair.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "dna-methylation-dynamics", + "sourcePath": "example-models/dna-methylation-dynamics.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/dnamethylationdynamics", + "destinationFile": "dna-methylation-dynamics.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "dr5-apoptosis-signaling", + "sourcePath": "example-models/dr5-apoptosis-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/dr5apoptosissignaling", + "destinationFile": "dr5-apoptosis-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "dual-site-phosphorylation", + "sourcePath": "example-models/dual-site-phosphorylation.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/dualsitephosphorylation", + "destinationFile": "dual-site-phosphorylation.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "e2f-rb-cell-cycle-switch", + "sourcePath": "example-models/e2f-rb-cell-cycle-switch.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/e2frbcellcycleswitch", + "destinationFile": "e2f-rb-cell-cycle-switch.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "eco_coevolution_host_parasite", + "sourcePath": "example-models/eco_coevolution_host_parasite.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/ecology/ecocoevolutionhostparasite", + "destinationFile": "eco_coevolution_host_parasite.bngl", + "origin": "ai-generated", + "category": "ecology", + "visible": false + }, + { + "id": "eco_food_web_chaos_3sp", + "sourcePath": "example-models/eco_food_web_chaos_3sp.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/ecology/ecofoodwebchaos3sp", + "destinationFile": "eco_food_web_chaos_3sp.bngl", + "origin": "ai-generated", + "category": "ecology", + "visible": false + }, + { + "id": "eco_lotka_volterra_grid", + "sourcePath": "example-models/eco_lotka_volterra_grid.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/ecology/ecolotkavolterragrid", + "destinationFile": "eco_lotka_volterra_grid.bngl", + "origin": "ai-generated", + "category": "ecology", + "visible": false + }, + { + "id": "eco_mutualism_obligate", + "sourcePath": "example-models/eco_mutualism_obligate.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/ecology/ecomutualismobligate", + "destinationFile": "eco_mutualism_obligate.bngl", + "origin": "ai-generated", + "category": "ecology", + "visible": false + }, + { + "id": "eco_rock_paper_scissors_spatial", + "sourcePath": "example-models/eco_rock_paper_scissors_spatial.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/ecology/ecorockpaperscissorsspatial", + "destinationFile": "eco_rock_paper_scissors_spatial.bngl", + "origin": "ai-generated", + "category": "ecology", + "visible": false + }, + { + "id": "egfr-signaling-pathway", + "sourcePath": "example-models/egfr-signaling-pathway.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/egfrsignalingpathway", + "destinationFile": "egfr-signaling-pathway.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "eif2a-stress-response", + "sourcePath": "example-models/eif2a-stress-response.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/eif2astressresponse", + "destinationFile": "eif2a-stress-response.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "endosomal-sorting-rab", + "sourcePath": "example-models/endosomal-sorting-rab.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/endosomalsortingrab", + "destinationFile": "endosomal-sorting-rab.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "energy_allostery_mwc", + "sourcePath": "example-models/energy_allostery_mwc.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/energy/energyallosterymwc", + "destinationFile": "energy_allostery_mwc.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "energy_catalysis_mm", + "sourcePath": "example-models/energy_catalysis_mm.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/energy/energycatalysismm", + "destinationFile": "energy_catalysis_mm.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "energy_cooperativity_adh", + "sourcePath": "example-models/energy_cooperativity_adh.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/energy/energycooperativityadh", + "destinationFile": "energy_cooperativity_adh.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "energy_linear_chain", + "sourcePath": "example-models/energy_linear_chain.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/energy/energylinearchain", + "destinationFile": "energy_linear_chain.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "energy_transport_pump", + "sourcePath": "example-models/energy_transport_pump.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/energy/energytransportpump", + "destinationFile": "energy_transport_pump.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "er-stress-response", + "sourcePath": "example-models/er-stress-response.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/erstressresponse", + "destinationFile": "er-stress-response.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "erk-nuclear-translocation", + "sourcePath": "example-models/erk-nuclear-translocation.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/erknucleartranslocation", + "destinationFile": "erk-nuclear-translocation.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "feature_functional_rates_volume", + "sourcePath": "example-models/feature_functional_rates_volume.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/feature-demos/featurefunctionalratesvolume", + "destinationFile": "feature_functional_rates_volume.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "feature_global_functions_scan", + "sourcePath": "example-models/feature_global_functions_scan.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/feature-demos/featureglobalfunctionsscan", + "destinationFile": "feature_global_functions_scan.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "feature_local_functions_explicit", + "sourcePath": "example-models/feature_local_functions_explicit.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/feature-demos/featurelocalfunctionsexplicit", + "destinationFile": "feature_local_functions_explicit.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "feature_symmetry_factors_cyclic", + "sourcePath": "example-models/feature_symmetry_factors_cyclic.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/feature-demos/featuresymmetryfactorscyclic", + "destinationFile": "feature_symmetry_factors_cyclic.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "feature_synthesis_degradation_ss", + "sourcePath": "example-models/feature_synthesis_degradation_ss.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/feature-demos/featuresynthesisdegradationss", + "destinationFile": "feature_synthesis_degradation_ss.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "fgf-signaling-pathway", + "sourcePath": "example-models/fgf-signaling-pathway.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/fgfsignalingpathway", + "destinationFile": "fgf-signaling-pathway.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "gas6-axl-signaling", + "sourcePath": "example-models/gas6-axl-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/gas6axlsignaling", + "destinationFile": "gas6-axl-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "gene-expression-toggle", + "sourcePath": "example-models/gene-expression-toggle.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/geneexpressiontoggle", + "destinationFile": "gene-expression-toggle.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "genetic_bistability_energy", + "sourcePath": "example-models/genetic_bistability_energy.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/genetics/geneticbistabilityenergy", + "destinationFile": "genetic_bistability_energy.bngl", + "origin": "ai-generated", + "category": "gene-expression", + "visible": false + }, + { + "id": "genetic_dna_replication_stochastic", + "sourcePath": "example-models/genetic_dna_replication_stochastic.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/genetics/geneticdnareplicationstochastic", + "destinationFile": "genetic_dna_replication_stochastic.bngl", + "origin": "ai-generated", + "category": "gene-expression", + "visible": false + }, + { + "id": "genetic_goodwin_oscillator", + "sourcePath": "example-models/genetic_goodwin_oscillator.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/genetics/geneticgoodwinoscillator", + "destinationFile": "genetic_goodwin_oscillator.bngl", + "origin": "ai-generated", + "category": "gene-expression", + "visible": false + }, + { + "id": "genetic_translation_kinetics", + "sourcePath": "example-models/genetic_translation_kinetics.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/genetics/genetictranslationkinetics", + "destinationFile": "genetic_translation_kinetics.bngl", + "origin": "ai-generated", + "category": "gene-expression", + "visible": false + }, + { + "id": "genetic_turing_pattern_1d", + "sourcePath": "example-models/genetic_turing_pattern_1d.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/genetics/geneticturingpattern1d", + "destinationFile": "genetic_turing_pattern_1d.bngl", + "origin": "ai-generated", + "category": "gene-expression", + "visible": false + }, + { + "id": "glioblastoma-egfrviii-signaling", + "sourcePath": "example-models/glioblastoma-egfrviii-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/glioblastomaegfrviiisignaling", + "destinationFile": "glioblastoma-egfrviii-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "glycolysis-branch-point", + "sourcePath": "example-models/glycolysis-branch-point.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/glycolysisbranchpoint", + "destinationFile": "glycolysis-branch-point.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "gm_game_of_life", + "sourcePath": "example-models/gm_game_of_life.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/generative/gmgameoflife", + "destinationFile": "gm_game_of_life.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "gm_ray_marcher", + "sourcePath": "example-models/gm_ray_marcher.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/generative/gmraymarcher", + "destinationFile": "gm_ray_marcher.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "gpcr-desensitization-arrestin", + "sourcePath": "example-models/gpcr-desensitization-arrestin.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/gpcrdesensitizationarrestin", + "destinationFile": "gpcr-desensitization-arrestin.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "hedgehog-signaling-pathway", + "sourcePath": "example-models/hedgehog-signaling-pathway.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/hedgehogsignalingpathway", + "destinationFile": "hedgehog-signaling-pathway.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "hematopoietic-growth-factor", + "sourcePath": "example-models/hematopoietic-growth-factor.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/hematopoieticgrowthfactor", + "destinationFile": "hematopoietic-growth-factor.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "hif1a_degradation_loop", + "sourcePath": "example-models/hif1a_degradation_loop.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/hif1adegradationloop", + "destinationFile": "hif1a_degradation_loop.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "hypoxia-response-signaling", + "sourcePath": "example-models/hypoxia-response-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/hypoxiaresponsesignaling", + "destinationFile": "hypoxia-response-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "il1b-signaling", + "sourcePath": "example-models/il1b-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/il1bsignaling", + "destinationFile": "il1b-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "il6-jak-stat-pathway", + "sourcePath": "example-models/il6-jak-stat-pathway.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/il6jakstatpathway", + "destinationFile": "il6-jak-stat-pathway.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "immune-synapse-formation", + "sourcePath": "example-models/immune-synapse-formation.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/immunesynapseformation", + "destinationFile": "immune-synapse-formation.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "inflammasome-activation", + "sourcePath": "example-models/inflammasome-activation.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/inflammasomeactivation", + "destinationFile": "inflammasome-activation.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "inositol-phosphate-metabolism", + "sourcePath": "example-models/inositol-phosphate-metabolism.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/inositolphosphatemetabolism", + "destinationFile": "inositol-phosphate-metabolism.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "insulin-glucose-homeostasis", + "sourcePath": "example-models/insulin-glucose-homeostasis.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/insulinglucosehomeostasis", + "destinationFile": "insulin-glucose-homeostasis.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "interferon-signaling", + "sourcePath": "example-models/interferon-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/interferonsignaling", + "destinationFile": "interferon-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "ire1a-xbp1-er-stress", + "sourcePath": "example-models/ire1a-xbp1-er-stress.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/ire1axbp1erstress", + "destinationFile": "ire1a-xbp1-er-stress.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "jak-stat-cytokine-signaling", + "sourcePath": "example-models/jak-stat-cytokine-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/jakstatcytokinesignaling", + "destinationFile": "jak-stat-cytokine-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "jnk-mapk-signaling", + "sourcePath": "example-models/jnk-mapk-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/jnkmapksignaling", + "destinationFile": "jnk-mapk-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "kir-channel-regulation", + "sourcePath": "example-models/kir-channel-regulation.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/kirchannelregulation", + "destinationFile": "kir-channel-regulation.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "l-type-calcium-channel-dynamics", + "sourcePath": "example-models/l-type-calcium-channel-dynamics.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/ltypecalciumchanneldynamics", + "destinationFile": "l-type-calcium-channel-dynamics.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "lac-operon-regulation", + "sourcePath": "example-models/lac-operon-regulation.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/lacoperonregulation", + "destinationFile": "lac-operon-regulation.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "lipid-mediated-pip3-signaling", + "sourcePath": "example-models/lipid-mediated-pip3-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/lipidmediatedpip3signaling", + "destinationFile": "lipid-mediated-pip3-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "mapk-signaling-cascade", + "sourcePath": "example-models/mapk-signaling-cascade.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/mapksignalingcascade", + "destinationFile": "mapk-signaling-cascade.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "meta_formal_game_theory", + "sourcePath": "example-models/meta_formal_game_theory.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/meta/metaformalgametheory", + "destinationFile": "meta_formal_game_theory.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "meta_formal_molecular_clock", + "sourcePath": "example-models/meta_formal_molecular_clock.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/meta/metaformalmolecularclock", + "destinationFile": "meta_formal_molecular_clock.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "meta_formal_petri_net", + "sourcePath": "example-models/meta_formal_petri_net.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/meta/metaformalpetrinet", + "destinationFile": "meta_formal_petri_net.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "michaelis-menten-kinetics", + "sourcePath": "example-models/michaelis-menten-kinetics.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/michaelismentenkinetics", + "destinationFile": "michaelis-menten-kinetics.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "ml_gradient_descent", + "sourcePath": "example-models/ml_gradient_descent.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/ml/mlgradientdescent", + "destinationFile": "ml_gradient_descent.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "ml_hopfield", + "sourcePath": "example-models/ml_hopfield.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/ml/mlhopfield", + "destinationFile": "ml_hopfield.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "ml_kmeans", + "sourcePath": "example-models/ml_kmeans.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/ml/mlkmeans", + "destinationFile": "ml_kmeans.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "ml_q_learning", + "sourcePath": "example-models/ml_q_learning.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/ml/mlqlearning", + "destinationFile": "ml_q_learning.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "ml_svm", + "sourcePath": "example-models/ml_svm.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/ml/mlsvm", + "destinationFile": "ml_svm.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "mtor-signaling", + "sourcePath": "example-models/mtor-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/mtorsignaling", + "destinationFile": "mtor-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "mtorc2-signaling", + "sourcePath": "example-models/mtorc2-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/mtorc2signaling", + "destinationFile": "mtorc2-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "mt_arithmetic_compiler", + "sourcePath": "example-models/mt_arithmetic_compiler.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/meta/mtarithmeticcompiler", + "destinationFile": "mt_arithmetic_compiler.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "mt_bngl_interpreter", + "sourcePath": "example-models/mt_bngl_interpreter.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/meta/mtbnglinterpreter", + "destinationFile": "mt_bngl_interpreter.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "mt_music_sequencer", + "sourcePath": "example-models/mt_music_sequencer.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/meta/mtmusicsequencer", + "destinationFile": "mt_music_sequencer.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "mt_pascal_triangle", + "sourcePath": "example-models/mt_pascal_triangle.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/meta/mtpascaltriangle", + "destinationFile": "mt_pascal_triangle.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "mt_quine", + "sourcePath": "example-models/mt_quine.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/meta/mtquine", + "destinationFile": "mt_quine.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "myogenic-differentiation", + "sourcePath": "example-models/myogenic-differentiation.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/myogenicdifferentiation", + "destinationFile": "myogenic-differentiation.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "negative-feedback-loop", + "sourcePath": "example-models/negative-feedback-loop.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/negativefeedbackloop", + "destinationFile": "negative-feedback-loop.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "neurotransmitter-release", + "sourcePath": "example-models/neurotransmitter-release.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/neurotransmitterrelease", + "destinationFile": "neurotransmitter-release.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "nfkb-feedback", + "sourcePath": "example-models/nfkb-feedback.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/nfkbfeedback", + "destinationFile": "nfkb-feedback.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "nfsim_aggregation_gelation", + "sourcePath": "example-models/nfsim_aggregation_gelation.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/nfsim/nfsimaggregationgelation", + "destinationFile": "nfsim_aggregation_gelation.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "nfsim_coarse_graining", + "sourcePath": "example-models/nfsim_coarse_graining.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/nfsim/nfsimcoarsegraining", + "destinationFile": "nfsim_coarse_graining.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "nfsim_dynamic_compartments", + "sourcePath": "example-models/nfsim_dynamic_compartments.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/nfsim/nfsimdynamiccompartments", + "destinationFile": "nfsim_dynamic_compartments.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "nfsim_hybrid_particle_field", + "sourcePath": "example-models/nfsim_hybrid_particle_field.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/nfsim/nfsimhybridparticlefield", + "destinationFile": "nfsim_hybrid_particle_field.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "nfsim_ring_closure_polymer", + "sourcePath": "example-models/nfsim_ring_closure_polymer.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/nfsim/nfsimringclosurepolymer", + "destinationFile": "nfsim_ring_closure_polymer.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "nn_xor", + "sourcePath": "example-models/nn_xor.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/ml/nnxor", + "destinationFile": "nn_xor.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "no-cgmp-signaling", + "sourcePath": "example-models/no-cgmp-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/nocgmpsignaling", + "destinationFile": "no-cgmp-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "notch-delta-lateral-inhibition", + "sourcePath": "example-models/notch-delta-lateral-inhibition.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/notchdeltalateralinhibition", + "destinationFile": "notch-delta-lateral-inhibition.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "oxidative-stress-response", + "sourcePath": "example-models/oxidative-stress-response.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/oxidativestressresponse", + "destinationFile": "oxidative-stress-response.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "p38-mapk-signaling", + "sourcePath": "example-models/p38-mapk-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/p38mapksignaling", + "destinationFile": "p38-mapk-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "p53-mdm2-oscillator", + "sourcePath": "example-models/p53-mdm2-oscillator.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/p53mdm2oscillator", + "destinationFile": "p53-mdm2-oscillator.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "parp1-mediated-dna-repair", + "sourcePath": "example-models/parp1-mediated-dna-repair.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/parp1mediateddnarepair", + "destinationFile": "parp1-mediated-dna-repair.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "phosphorelay-chain", + "sourcePath": "example-models/phosphorelay-chain.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/phosphorelaychain", + "destinationFile": "phosphorelay-chain.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "ph_lorenz_attractor", + "sourcePath": "example-models/ph_lorenz_attractor.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/physics/phlorenzattractor", + "destinationFile": "ph_lorenz_attractor.bngl", + "origin": "ai-generated", + "category": "physics", + "visible": false + }, + { + "id": "ph_nbody_gravity", + "sourcePath": "example-models/ph_nbody_gravity.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/physics/phnbodygravity", + "destinationFile": "ph_nbody_gravity.bngl", + "origin": "ai-generated", + "category": "physics", + "visible": false + }, + { + "id": "ph_schrodinger", + "sourcePath": "example-models/ph_schrodinger.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/physics/phschrodinger", + "destinationFile": "ph_schrodinger.bngl", + "origin": "ai-generated", + "category": "physics", + "visible": false + }, + { + "id": "ph_wave_equation", + "sourcePath": "example-models/ph_wave_equation.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/physics/phwaveequation", + "destinationFile": "ph_wave_equation.bngl", + "origin": "ai-generated", + "category": "physics", + "visible": false + }, + { + "id": "platelet-activation", + "sourcePath": "example-models/platelet-activation.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/plateletactivation", + "destinationFile": "platelet-activation.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "predator-prey-dynamics", + "sourcePath": "example-models/predator-prey-dynamics.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/predatorpreydynamics", + "destinationFile": "predator-prey-dynamics.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "process_actin_treadmilling", + "sourcePath": "example-models/process_actin_treadmilling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/processes/processactintreadmilling", + "destinationFile": "process_actin_treadmilling.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "process_autophagy_flux", + "sourcePath": "example-models/process_autophagy_flux.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/processes/processautophagyflux", + "destinationFile": "process_autophagy_flux.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "process_cell_adhesion_strength", + "sourcePath": "example-models/process_cell_adhesion_strength.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/processes/processcelladhesionstrength", + "destinationFile": "process_cell_adhesion_strength.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "process_kinetic_proofreading_tcr", + "sourcePath": "example-models/process_kinetic_proofreading_tcr.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/processes/processkineticproofreadingtcr", + "destinationFile": "process_kinetic_proofreading_tcr.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "process_quorum_sensing_switch", + "sourcePath": "example-models/process_quorum_sensing_switch.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/processes/processquorumsensingswitch", + "destinationFile": "process_quorum_sensing_switch.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "quorum-sensing-circuit", + "sourcePath": "example-models/quorum-sensing-circuit.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/quorumsensingcircuit", + "destinationFile": "quorum-sensing-circuit.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "rab-gtpase-cycle", + "sourcePath": "example-models/rab-gtpase-cycle.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/rabgtpasecycle", + "destinationFile": "rab-gtpase-cycle.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "rankl-rank-signaling", + "sourcePath": "example-models/rankl-rank-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/ranklranksignaling", + "destinationFile": "rankl-rank-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "ras-gef-gap-cycle", + "sourcePath": "example-models/ras-gef-gap-cycle.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/rasgefgapcycle", + "destinationFile": "ras-gef-gap-cycle.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "repressilator-oscillator", + "sourcePath": "example-models/repressilator-oscillator.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/repressilatoroscillator", + "destinationFile": "repressilator-oscillator.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "retinoic-acid-signaling", + "sourcePath": "example-models/retinoic-acid-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/retinoicacidsignaling", + "destinationFile": "retinoic-acid-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "rho-gtpase-actin-cytoskeleton", + "sourcePath": "example-models/rho-gtpase-actin-cytoskeleton.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/rhogtpaseactincytoskeleton", + "destinationFile": "rho-gtpase-actin-cytoskeleton.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "shp2-phosphatase-regulation", + "sourcePath": "example-models/shp2-phosphatase-regulation.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/shp2phosphataseregulation", + "destinationFile": "shp2-phosphatase-regulation.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "signal-amplification-cascade", + "sourcePath": "example-models/signal-amplification-cascade.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/signalamplificationcascade", + "destinationFile": "signal-amplification-cascade.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "simple-dimerization", + "sourcePath": "example-models/simple-dimerization.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/simpledimerization", + "destinationFile": "simple-dimerization.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "sir-epidemic-model", + "sourcePath": "example-models/sir-epidemic-model.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/sirepidemicmodel", + "destinationFile": "sir-epidemic-model.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "smad-tgf-beta-signaling", + "sourcePath": "example-models/smad-tgf-beta-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/smadtgfbetasignaling", + "destinationFile": "smad-tgf-beta-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "sonic-hedgehog-gradient", + "sourcePath": "example-models/sonic-hedgehog-gradient.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/sonichedgehoggradient", + "destinationFile": "sonic-hedgehog-gradient.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "sp_fourier_synthesizer", + "sourcePath": "example-models/sp_fourier_synthesizer.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/signal-processing/spfouriersynthesizer", + "destinationFile": "sp_fourier_synthesizer.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "sp_image_convolution", + "sourcePath": "example-models/sp_image_convolution.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/signal-processing/spimageconvolution", + "destinationFile": "sp_image_convolution.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "sp_kalman_filter", + "sourcePath": "example-models/sp_kalman_filter.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/signal-processing/spkalmanfilter", + "destinationFile": "sp_kalman_filter.bngl", + "origin": "ai-generated", + "category": "computer-science", + "visible": false + }, + { + "id": "stat3-mediated-transcription", + "sourcePath": "example-models/stat3-mediated-transcription.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/stat3mediatedtranscription", + "destinationFile": "stat3-mediated-transcription.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "stress-response-adaptation", + "sourcePath": "example-models/stress-response-adaptation.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/stressresponseadaptation", + "destinationFile": "stress-response-adaptation.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "synaptic-plasticity-ltp", + "sourcePath": "example-models/synaptic-plasticity-ltp.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/synapticplasticityltp", + "destinationFile": "synaptic-plasticity-ltp.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "synbio_band_pass_filter", + "sourcePath": "example-models/synbio_band_pass_filter.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/synbio/synbiobandpassfilter", + "destinationFile": "synbio_band_pass_filter.bngl", + "origin": "ai-generated", + "category": "synthetic-biology", + "visible": false + }, + { + "id": "synbio_counter_molecular", + "sourcePath": "example-models/synbio_counter_molecular.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/synbio/synbiocountermolecular", + "destinationFile": "synbio_counter_molecular.bngl", + "origin": "ai-generated", + "category": "synthetic-biology", + "visible": false + }, + { + "id": "synbio_edge_detector", + "sourcePath": "example-models/synbio_edge_detector.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/synbio/synbioedgedetector", + "destinationFile": "synbio_edge_detector.bngl", + "origin": "ai-generated", + "category": "synthetic-biology", + "visible": false + }, + { + "id": "synbio_logic_gates_enzymatic", + "sourcePath": "example-models/synbio_logic_gates_enzymatic.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/synbio/synbiologicgatesenzymatic", + "destinationFile": "synbio_logic_gates_enzymatic.bngl", + "origin": "ai-generated", + "category": "synthetic-biology", + "visible": false + }, + { + "id": "synbio_oscillator_synchronization", + "sourcePath": "example-models/synbio_oscillator_synchronization.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/synbio/synbiooscillatorsynchronization", + "destinationFile": "synbio_oscillator_synchronization.bngl", + "origin": "ai-generated", + "category": "synthetic-biology", + "visible": false + }, + { + "id": "t-cell-activation", + "sourcePath": "example-models/t-cell-activation.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/tcellactivation", + "destinationFile": "t-cell-activation.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "tlr3-dsrna-sensing", + "sourcePath": "example-models/tlr3-dsrna-sensing.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/tlr3dsrnasensing", + "destinationFile": "tlr3-dsrna-sensing.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "tnf-induced-apoptosis", + "sourcePath": "example-models/tnf-induced-apoptosis.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/tnfinducedapoptosis", + "destinationFile": "tnf-induced-apoptosis.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "two-component-system", + "sourcePath": "example-models/two-component-system.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/twocomponentsystem", + "destinationFile": "two-component-system.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "vegf-angiogenesis", + "sourcePath": "example-models/vegf-angiogenesis.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/vegfangiogenesis", + "destinationFile": "vegf-angiogenesis.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "viral-sensing-innate-immunity", + "sourcePath": "example-models/viral-sensing-innate-immunity.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/viralsensinginnateimmunity", + "destinationFile": "viral-sensing-innate-immunity.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "wacky_alchemy_stone", + "sourcePath": "example-models/wacky_alchemy_stone.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/wacky/wackyalchemystone", + "destinationFile": "wacky_alchemy_stone.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "wacky_black_hole", + "sourcePath": "example-models/wacky_black_hole.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/wacky/wackyblackhole", + "destinationFile": "wacky_black_hole.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "wacky_bouncing_ball", + "sourcePath": "example-models/wacky_bouncing_ball.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/wacky/wackybouncingball", + "destinationFile": "wacky_bouncing_ball.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "wacky_traffic_jam_asep", + "sourcePath": "example-models/wacky_traffic_jam_asep.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/wacky/wackytrafficjamasep", + "destinationFile": "wacky_traffic_jam_asep.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "wacky_zombie_infection", + "sourcePath": "example-models/wacky_zombie_infection.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/wacky/wackyzombieinfection", + "destinationFile": "wacky_zombie_infection.bngl", + "origin": "ai-generated", + "category": "other", + "visible": false + }, + { + "id": "wnt-beta-catenin-signaling", + "sourcePath": "example-models/wnt-beta-catenin-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/wntbetacateninsignaling", + "destinationFile": "wnt-beta-catenin-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "wound-healing-pdgf-signaling", + "sourcePath": "example-models/wound-healing-pdgf-signaling.bngl", + "destinationDir": "Contributed/BNGPlayground_Examples/biology/woundhealingpdgfsignaling", + "destinationFile": "wound-healing-pdgf-signaling.bngl", + "origin": "ai-generated", + "category": "signaling", + "visible": false + }, + { + "id": "Barua_2013", + "sourcePath": "published-models/cell-regulation/Barua_2013.bngl", + "destinationDir": "Published/Barua2013", + "destinationFile": "Barua_2013.bngl", + "origin": "published", + "category": "regulation", + "visible": true + }, + { + "id": "Blinov_ran", + "sourcePath": "published-models/cell-regulation/Blinov_ran.bngl", + "destinationDir": "Published/Blinovran", + "destinationFile": "Blinov_ran.bngl", + "origin": "published", + "category": "regulation", + "visible": false + }, + { + "id": "Hat_2016", + "sourcePath": "published-models/cell-regulation/Hat_2016.bngl", + "destinationDir": "Published/Hat2016", + "destinationFile": "Hat_2016.bngl", + "origin": "published", + "category": "regulation", + "visible": true + }, + { + "id": "Kocieniewski_2012", + "sourcePath": "published-models/cell-regulation/Kocieniewski_2012.bngl", + "destinationDir": "Published/Kocieniewski2012", + "destinationFile": "Kocieniewski_2012.bngl", + "origin": "published", + "category": "regulation", + "visible": false + }, + { + "id": "notch", + "sourcePath": "published-models/cell-regulation/notch.bngl", + "destinationDir": "Published/notch", + "destinationFile": "notch.bngl", + "origin": "published", + "category": "regulation", + "visible": false + }, + { + "id": "Pekalski_2013", + "sourcePath": "published-models/cell-regulation/Pekalski_2013.bngl", + "destinationDir": "Published/Pekalski2013", + "destinationFile": "Pekalski_2013.bngl", + "origin": "published", + "category": "regulation", + "visible": true + }, + { + "id": "Rule_based_Ran_transport", + "sourcePath": "published-models/cell-regulation/Rule_based_Ran_transport.bngl", + "destinationDir": "Published/RulebasedRantransport", + "destinationFile": "Rule_based_Ran_transport.bngl", + "origin": "published", + "category": "regulation", + "visible": false + }, + { + "id": "Rule_based_Ran_transport_draft", + "sourcePath": "published-models/cell-regulation/Rule_based_Ran_transport_draft.bngl", + "destinationDir": "Published/RulebasedRantransportdraft", + "destinationFile": "Rule_based_Ran_transport_draft.bngl", + "origin": "published", + "category": "regulation", + "visible": false + }, + { + "id": "vilar_2002", + "sourcePath": "published-models/cell-regulation/vilar_2002.bngl", + "destinationDir": "Published/vilar2002", + "destinationFile": "vilar_2002.bngl", + "origin": "published", + "category": "regulation", + "visible": false + }, + { + "id": "vilar_2002b", + "sourcePath": "published-models/cell-regulation/vilar_2002b.bngl", + "destinationDir": "Published/vilar2002b", + "destinationFile": "vilar_2002b.bngl", + "origin": "published", + "category": "regulation", + "visible": true + }, + { + "id": "vilar_2002c", + "sourcePath": "published-models/cell-regulation/vilar_2002c.bngl", + "destinationDir": "Published/vilar2002c", + "destinationFile": "vilar_2002c.bngl", + "origin": "published", + "category": "regulation", + "visible": true + }, + { + "id": "wnt", + "sourcePath": "published-models/cell-regulation/wnt.bngl", + "destinationDir": "Published/wnt", + "destinationFile": "wnt.bngl", + "origin": "published", + "category": "regulation", + "visible": false + }, + { + "id": "Barua_2007", + "sourcePath": "published-models/complex-models/Barua_2007.bngl", + "destinationDir": "Published/Barua2007", + "destinationFile": "Barua_2007.bngl", + "origin": "published", + "category": "signaling", + "visible": true + }, + { + "id": "Barua_2009", + "sourcePath": "published-models/complex-models/Barua_2009.bngl", + "destinationDir": "Published/Barua2009", + "destinationFile": "Barua_2009.bngl", + "origin": "published", + "category": "signaling", + "visible": true + }, + { + "id": "Blinov_2006", + "sourcePath": "published-models/complex-models/Blinov_2006.bngl", + "destinationDir": "Published/Blinov2006", + "destinationFile": "Blinov_2006.bngl", + "origin": "published", + "category": "signaling", + "visible": true + }, + { + "id": "Chattaraj_2021", + "sourcePath": "published-models/complex-models/Chattaraj_2021.bngl", + "destinationDir": "Published/Chattaraj2021", + "destinationFile": "Chattaraj_2021.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "Dushek_2011", + "sourcePath": "published-models/complex-models/Dushek_2011.bngl", + "destinationDir": "Published/Dushek2011", + "destinationFile": "Dushek_2011.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "Dushek_2014", + "sourcePath": "published-models/complex-models/Dushek_2014.bngl", + "destinationDir": "Published/Dushek2014", + "destinationFile": "Dushek_2014.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "Erdem_2021", + "sourcePath": "published-models/complex-models/Erdem_2021.bngl", + "destinationDir": "Published/Erdem2021", + "destinationFile": "Erdem_2021.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "Jung_2017", + "sourcePath": "published-models/complex-models/Jung_2017.bngl", + "destinationDir": "Published/Jung2017", + "destinationFile": "Jung_2017.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "Kesseler_2013", + "sourcePath": "published-models/complex-models/Kesseler_2013.bngl", + "destinationDir": "Published/Kesseler2013", + "destinationFile": "Kesseler_2013.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "Kozer_2013", + "sourcePath": "published-models/complex-models/Kozer_2013.bngl", + "destinationDir": "Published/Kozer2013", + "destinationFile": "Kozer_2013.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "Kozer_2014", + "sourcePath": "published-models/complex-models/Kozer_2014.bngl", + "destinationDir": "Published/Kozer2014", + "destinationFile": "Kozer_2014.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "mapk-dimers", + "sourcePath": "published-models/complex-models/mapk-dimers.bngl", + "destinationDir": "Published/mapkdimers", + "destinationFile": "mapk-dimers.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "mapk-monomers", + "sourcePath": "published-models/complex-models/mapk-monomers.bngl", + "destinationDir": "Published/mapkmonomers", + "destinationFile": "mapk-monomers.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "Massole_2023", + "sourcePath": "published-models/complex-models/Massole_2023.bngl", + "destinationDir": "Published/Massole2023", + "destinationFile": "Massole_2023.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "McMillan_2021", + "sourcePath": "published-models/complex-models/McMillan_2021.bngl", + "destinationDir": "Published/McMillan2021", + "destinationFile": "McMillan_2021.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "Nag_2009", + "sourcePath": "published-models/complex-models/Nag_2009.bngl", + "destinationDir": "Published/Nag2009", + "destinationFile": "Nag_2009.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "Nosbisch_2022", + "sourcePath": "published-models/complex-models/Nosbisch_2022.bngl", + "destinationDir": "Published/Nosbisch2022", + "destinationFile": "Nosbisch_2022.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "Zhang_2021", + "sourcePath": "published-models/complex-models/Zhang_2021.bngl", + "destinationDir": "Published/Zhang2021", + "destinationFile": "Zhang_2021.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "Zhang_2023", + "sourcePath": "published-models/complex-models/Zhang_2023.bngl", + "destinationDir": "Published/Zhang2023", + "destinationFile": "Zhang_2023.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "Blinov_egfr", + "sourcePath": "published-models/growth-factor-signaling/Blinov_egfr.bngl", + "destinationDir": "Published/Blinovegfr", + "destinationFile": "Blinov_egfr.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "Lang_2024", + "sourcePath": "published-models/growth-factor-signaling/Lang_2024.bngl", + "destinationDir": "Published/Lang2024", + "destinationFile": "Lang_2024.bngl", + "origin": "published", + "category": "signaling", + "visible": true + }, + { + "id": "Ligon_2014", + "sourcePath": "published-models/growth-factor-signaling/Ligon_2014.bngl", + "destinationDir": "Published/Ligon2014", + "destinationFile": "Ligon_2014.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "Mertins_2023", + "sourcePath": "published-models/growth-factor-signaling/Mertins_2023.bngl", + "destinationDir": "Published/Mertins2023", + "destinationFile": "Mertins_2023.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "Rule_based_egfr_compart", + "sourcePath": "published-models/growth-factor-signaling/Rule_based_egfr_compart.bngl", + "destinationDir": "Published/Rulebasedegfrcompart", + "destinationFile": "Rule_based_egfr_compart.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "Rule_based_egfr_tutorial", + "sourcePath": "published-models/growth-factor-signaling/Rule_based_egfr_tutorial.bngl", + "destinationDir": "Published/Rulebasedegfrtutorial", + "destinationFile": "Rule_based_egfr_tutorial.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "An_2009", + "sourcePath": "published-models/immune-signaling/An_2009.bngl", + "destinationDir": "Published/An2009", + "destinationFile": "An_2009.bngl", + "origin": "published", + "category": "immunology", + "visible": true + }, + { + "id": "BaruaBCR_2012", + "sourcePath": "published-models/immune-signaling/BaruaBCR_2012.bngl", + "destinationDir": "Published/BaruaBCR2012", + "destinationFile": "BaruaBCR_2012.bngl", + "origin": "published", + "category": "immunology", + "visible": false + }, + { + "id": "BaruaFceRI_2012", + "sourcePath": "published-models/immune-signaling/BaruaFceRI_2012.bngl", + "destinationDir": "Published/BaruaFceRI2012", + "destinationFile": "BaruaFceRI_2012.bngl", + "origin": "published", + "category": "immunology", + "visible": false + }, + { + "id": "ChylekFceRI_2014", + "sourcePath": "published-models/immune-signaling/ChylekFceRI_2014.bngl", + "destinationDir": "Published/ChylekFceRI2014", + "destinationFile": "ChylekFceRI_2014.bngl", + "origin": "published", + "category": "immunology", + "visible": false + }, + { + "id": "ChylekTCR_2014", + "sourcePath": "published-models/immune-signaling/ChylekTCR_2014.bngl", + "destinationDir": "Published/ChylekTCR2014", + "destinationFile": "ChylekTCR_2014.bngl", + "origin": "published", + "category": "immunology", + "visible": false + }, + { + "id": "Faeder_2003", + "sourcePath": "published-models/immune-signaling/Faeder_2003.bngl", + "destinationDir": "Published/Faeder2003", + "destinationFile": "Faeder_2003.bngl", + "origin": "published", + "category": "immunology", + "visible": false + }, + { + "id": "innate_immunity", + "sourcePath": "published-models/immune-signaling/innate_immunity.bngl", + "destinationDir": "Published/innateimmunity", + "destinationFile": "innate_immunity.bngl", + "origin": "published", + "category": "immunology", + "visible": true + }, + { + "id": "Jaruszewicz-Blonska_2023", + "sourcePath": "published-models/immune-signaling/Jaruszewicz-Blonska_2023.bngl", + "destinationDir": "Published/JaruszewiczBlonska2023", + "destinationFile": "Jaruszewicz-Blonska_2023.bngl", + "origin": "published", + "category": "immunology", + "visible": true + }, + { + "id": "Model_ZAP", + "sourcePath": "published-models/immune-signaling/Model_ZAP.bngl", + "destinationDir": "Published/ModelZAP", + "destinationFile": "Model_ZAP.bngl", + "origin": "published", + "category": "immunology", + "visible": false + }, + { + "id": "Mukhopadhyay_2013", + "sourcePath": "published-models/immune-signaling/Mukhopadhyay_2013.bngl", + "destinationDir": "Published/Mukhopadhyay2013", + "destinationFile": "Mukhopadhyay_2013.bngl", + "origin": "published", + "category": "immunology", + "visible": false + }, + { + "id": "fceri_fyn", + "sourcePath": "published-models/immune-signaling/fceri_fyn.bngl", + "destinationDir": "Published/fcerifyn", + "destinationFile": "fceri_fyn.bngl", + "origin": "published", + "category": "immunology", + "visible": false + }, + { + "id": "tlbr", + "sourcePath": "published-models/immune-signaling/tlbr.bngl", + "destinationDir": "Published/tlbr", + "destinationFile": "tlbr.bngl", + "origin": "published", + "category": "immunology", + "visible": false + }, + { + "id": "Lin_Prion_2019", + "sourcePath": "published-models/literature/Lin_Prion_2019.bngl", + "destinationDir": "Published/LinPrion2019", + "destinationFile": "Lin_Prion_2019.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "Dolan_2015", + "sourcePath": "published-models/literature/Dolan_2015.bngl", + "destinationDir": "Published/Dolan2015", + "destinationFile": "Dolan_2015.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "Lin_ERK_2019", + "sourcePath": "published-models/literature/Lin_ERK_2019.bngl", + "destinationDir": "Published/LinERK2019", + "destinationFile": "Lin_ERK_2019.bngl", + "origin": "published", + "category": "other", + "visible": true + }, + { + "id": "Lin_TCR_2019", + "sourcePath": "published-models/literature/Lin_TCR_2019.bngl", + "destinationDir": "Published/LinTCR2019", + "destinationFile": "Lin_TCR_2019.bngl", + "origin": "published", + "category": "other", + "visible": true + }, + { + "id": "Cheemalavagu_JAK_STAT", + "sourcePath": "published-models/literature/Cheemalavagu_JAK_STAT.bngl", + "destinationDir": "Published/CheemalavaguJAKSTAT", + "destinationFile": "Cheemalavagu_JAK_STAT.bngl", + "origin": "published", + "category": "other", + "visible": true + }, + { + "id": "Alabama", + "sourcePath": "published-models/Mallela_2022/Alabama.bngl", + "destinationDir": "Published/Mallela2022/Alabama", + "destinationFile": "Alabama.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false + }, + { + "id": "AB", + "sourcePath": "published-models/native-tutorials/AB/AB.bngl", + "destinationDir": "Tutorials/NativeTutorials/AB", + "destinationFile": "AB.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "ABC", + "sourcePath": "published-models/native-tutorials/ABC/ABC.bngl", + "destinationDir": "Tutorials/NativeTutorials/ABC", + "destinationFile": "ABC.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "ABC_scan", + "sourcePath": "published-models/native-tutorials/ABC/ABC_scan.bngl", + "destinationDir": "Tutorials/NativeTutorials/ABCscan", + "destinationFile": "ABC_scan.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "ABC_ssa", + "sourcePath": "published-models/native-tutorials/ABC/ABC_ssa.bngl", + "destinationDir": "Tutorials/NativeTutorials/ABCssa", + "destinationFile": "ABC_ssa.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "LV", + "sourcePath": "published-models/native-tutorials/ABC/LV.bngl", + "destinationDir": "Tutorials/NativeTutorials/LV", + "destinationFile": "LV.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "SIR", + "sourcePath": "published-models/native-tutorials/ABC/SIR.bngl", + "destinationDir": "Tutorials/NativeTutorials/SIR", + "destinationFile": "SIR.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "ABp", + "sourcePath": "published-models/native-tutorials/ABp/ABp.bngl", + "destinationDir": "Tutorials/NativeTutorials/ABp", + "destinationFile": "ABp.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "ABp_approx", + "sourcePath": "published-models/native-tutorials/ABp/ABp_approx.bngl", + "destinationDir": "Tutorials/NativeTutorials/ABpapprox", + "destinationFile": "ABp_approx.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "GK", + "sourcePath": "published-models/native-tutorials/ABp/GK.bngl", + "destinationDir": "Tutorials/NativeTutorials/GK", + "destinationFile": "GK.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "Lisman", + "sourcePath": "published-models/native-tutorials/ABp/Lisman.bngl", + "destinationDir": "Tutorials/NativeTutorials/Lisman", + "destinationFile": "Lisman.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "Lisman_bifurcate", + "sourcePath": "published-models/native-tutorials/ABp/Lisman_bifurcate.bngl", + "destinationDir": "Tutorials/NativeTutorials/Lismanbifurcate", + "destinationFile": "Lisman_bifurcate.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "BAB", + "sourcePath": "published-models/native-tutorials/BAB/BAB.bngl", + "destinationDir": "Tutorials/NativeTutorials/BAB", + "destinationFile": "BAB.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "BAB_coop", + "sourcePath": "published-models/native-tutorials/BAB/BAB_coop.bngl", + "destinationDir": "Tutorials/NativeTutorials/BABcoop", + "destinationFile": "BAB_coop.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "BAB_scan", + "sourcePath": "published-models/native-tutorials/BAB/BAB_scan.bngl", + "destinationDir": "Tutorials/NativeTutorials/BABscan", + "destinationFile": "BAB_scan.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "BLBR", + "sourcePath": "published-models/native-tutorials/CBNGL/BLBR.bngl", + "destinationDir": "Tutorials/NativeTutorials/BLBR", + "destinationFile": "BLBR.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "cBNGL_simple", + "sourcePath": "published-models/native-tutorials/CBNGL/cBNGL_simple.bngl", + "destinationDir": "Tutorials/NativeTutorials/cBNGLsimple", + "destinationFile": "cBNGL_simple.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "LR", + "sourcePath": "published-models/native-tutorials/CBNGL/LR.bngl", + "destinationDir": "Tutorials/NativeTutorials/LR", + "destinationFile": "LR.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "LRR", + "sourcePath": "published-models/native-tutorials/CBNGL/LRR.bngl", + "destinationDir": "Tutorials/NativeTutorials/LRR", + "destinationFile": "LRR.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "LRR_comp", + "sourcePath": "published-models/native-tutorials/CBNGL/LRR_comp.bngl", + "destinationDir": "Tutorials/NativeTutorials/LRRcomp", + "destinationFile": "LRR_comp.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "LR_comp", + "sourcePath": "published-models/native-tutorials/CBNGL/LR_comp.bngl", + "destinationDir": "Tutorials/NativeTutorials/LRcomp", + "destinationFile": "LR_comp.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "LV_comp", + "sourcePath": "published-models/native-tutorials/CBNGL/LV_comp.bngl", + "destinationDir": "Tutorials/NativeTutorials/LVcomp", + "destinationFile": "LV_comp.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "organelle_transport", + "sourcePath": "published-models/native-tutorials/CBNGL/organelle_transport.bngl", + "destinationDir": "Tutorials/NativeTutorials/organelletransport", + "destinationFile": "organelle_transport.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "organelle_transport_struct", + "sourcePath": "published-models/native-tutorials/CBNGL/organelle_transport_struct.bngl", + "destinationDir": "Tutorials/NativeTutorials/organelletransportstruct", + "destinationFile": "organelle_transport_struct.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "Chylek_library", + "sourcePath": "published-models/native-tutorials/LargerModels/Chylek_library.bngl", + "destinationDir": "Tutorials/NativeTutorials/Chyleklibrary", + "destinationFile": "Chylek_library.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "Creamer_2012", + "sourcePath": "published-models/native-tutorials/LargerModels/Creamer_2012.bngl", + "destinationDir": "Tutorials/NativeTutorials/Creamer2012", + "destinationFile": "Creamer_2012.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "egfr_simple", + "sourcePath": "published-models/native-tutorials/LargerModels/egfr_simple.bngl", + "destinationDir": "Tutorials/NativeTutorials/egfrsimple", + "destinationFile": "egfr_simple.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "FceRI_ji", + "sourcePath": "published-models/native-tutorials/LargerModels/FceRI_ji.bngl", + "destinationDir": "Tutorials/NativeTutorials/FceRIji", + "destinationFile": "FceRI_ji.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "Suderman_2013", + "sourcePath": "published-models/native-tutorials/LargerModels/Suderman_2013.bngl", + "destinationDir": "Tutorials/NativeTutorials/Suderman2013", + "destinationFile": "Suderman_2013.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "birth-death", + "sourcePath": "published-models/native-tutorials/SynDeg/birth-death.bngl", + "destinationDir": "Tutorials/NativeTutorials/birthdeath", + "destinationFile": "birth-death.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "CircadianOscillator", + "sourcePath": "published-models/native-tutorials/SynDeg/CircadianOscillator.bngl", + "destinationDir": "Tutorials/NativeTutorials/CircadianOscillator", + "destinationFile": "CircadianOscillator.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "ComplexDegradation", + "sourcePath": "published-models/native-tutorials/SynDeg/ComplexDegradation.bngl", + "destinationDir": "Tutorials/NativeTutorials/ComplexDegradation", + "destinationFile": "ComplexDegradation.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "Repressilator", + "sourcePath": "published-models/native-tutorials/SynDeg/Repressilator.bngl", + "destinationDir": "Tutorials/NativeTutorials/Repressilator", + "destinationFile": "Repressilator.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "toggle", + "sourcePath": "published-models/native-tutorials/SynDeg/toggle.bngl", + "destinationDir": "Tutorials/NativeTutorials/toggle", + "destinationFile": "toggle.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "FceRI_viz", + "sourcePath": "published-models/native-tutorials/Viz/FceRI_viz.bngl", + "destinationDir": "Tutorials/NativeTutorials/FceRIviz", + "destinationFile": "FceRI_viz.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": true + }, + { + "id": "visualize", + "sourcePath": "published-models/native-tutorials/Viz/visualize.bngl", + "destinationDir": "Tutorials/NativeTutorials/visualize", + "destinationFile": "visualize.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "translateSBML", + "sourcePath": "published-models/native-tutorials/SBML/translateSBML.bngl", + "destinationDir": "Tutorials/NativeTutorials/translateSBML", + "destinationFile": "translateSBML.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "CaMKII_holo", + "sourcePath": "published-models/Ordyan_2020/CaMKII_holo.bngl", + "destinationDir": "Published/Ordyan2020/CaMKIIholo", + "destinationFile": "CaMKII_holo.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "extra_CaMKII_Holo", + "sourcePath": "published-models/Ordyan_2020/extra_CaMKII_Holo.bngl", + "destinationDir": "Published/Ordyan2020/extraCaMKIIHolo", + "destinationFile": "extra_CaMKII_Holo.bngl", + "origin": "published", + "category": "signaling", + "visible": false + }, + { + "id": "mCaMKII_Ca_Spike", + "sourcePath": "published-models/Ordyan_2020/mCaMKII_Ca_Spike.bngl", + "destinationDir": "Published/Ordyan2020/mCaMKIICaSpike", + "destinationFile": "mCaMKII_Ca_Spike.bngl", + "origin": "published", + "category": "signaling", + "visible": true + }, + { + "id": "polynomial", + "sourcePath": "published-models/PyBNG/constraint_advanced/polynomial.bngl", + "destinationDir": "PyBioNetGen/core/polynomial", + "destinationFile": "polynomial.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "polynomial_ground", + "sourcePath": "published-models/PyBNG/constraint_advanced/polynomial_ground.bngl", + "destinationDir": "PyBioNetGen/core/polynomialground", + "destinationFile": "polynomial_ground.bngl", + "origin": "published", + "category": "other", + "visible": true + }, + { + "id": "parabola", + "sourcePath": "published-models/PyBNG/constraint_demo/parabola.bngl", + "destinationDir": "PyBioNetGen/core/parabola", + "destinationFile": "parabola.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "parabola_ground", + "sourcePath": "published-models/PyBNG/constraint_demo/parabola_ground.bngl", + "destinationDir": "PyBioNetGen/core/parabolaground", + "destinationFile": "parabola_ground.bngl", + "origin": "published", + "category": "other", + "visible": true + }, + { + "id": "RAFi", + "sourcePath": "published-models/PyBNG/constraint_raf/RAFi.bngl", + "destinationDir": "PyBioNetGen/core/RAFi", + "destinationFile": "RAFi.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "RAFi_ground", + "sourcePath": "published-models/PyBNG/constraint_raf/RAFi_ground.bngl", + "destinationDir": "PyBioNetGen/core/RAFiground", + "destinationFile": "RAFi_ground.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "m11", + "sourcePath": "published-models/PyBNG/COVID19forecasting_aMCMC/Beantown/m11.bngl", + "destinationDir": "Published/Mallela2021_Cities", + "destinationFile": "Beantown_m11.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "m1", + "sourcePath": "published-models/PyBNG/COVID19forecasting_aMCMC/BigApple/m1.bngl", + "destinationDir": "Published/Mallela2021_Cities", + "destinationFile": "BigApple_m1.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "m4", + "sourcePath": "published-models/PyBNG/COVID19forecasting_aMCMC/BigD/m4.bngl", + "destinationDir": "Published/Mallela2021_Cities", + "destinationFile": "BigD_m4.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "m8", + "sourcePath": "published-models/PyBNG/COVID19forecasting_aMCMC/BrotherlyLove/m8.bngl", + "destinationDir": "Published/Mallela2021_Cities", + "destinationFile": "BrotherlyLove_m8.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "m6", + "sourcePath": "published-models/PyBNG/COVID19forecasting_aMCMC/DC/m6.bngl", + "destinationDir": "Published/Mallela2021_Cities", + "destinationFile": "DC_m6.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "m15", + "sourcePath": "published-models/PyBNG/COVID19forecasting_aMCMC/EmeraldCity/m15.bngl", + "destinationDir": "Published/Mallela2021_Cities", + "destinationFile": "EmeraldCity_m15.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "m12", + "sourcePath": "published-models/PyBNG/COVID19forecasting_aMCMC/Frisco/m12.bngl", + "destinationDir": "Published/Mallela2021_Cities", + "destinationFile": "Frisco_m12.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "m9", + "sourcePath": "published-models/PyBNG/COVID19forecasting_aMCMC/Hotlanta/m9.bngl", + "destinationDir": "Published/Mallela2021_Cities", + "destinationFile": "Hotlanta_m9.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "m5", + "sourcePath": "published-models/PyBNG/COVID19forecasting_aMCMC/HTown/m5.bngl", + "destinationDir": "Published/Mallela2021_Cities", + "destinationFile": "HTown_m5.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "m13", + "sourcePath": "published-models/PyBNG/COVID19forecasting_aMCMC/InlandEmpire/m13.bngl", + "destinationDir": "Published/Mallela2021_Cities", + "destinationFile": "InlandEmpire_m13.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "m2", + "sourcePath": "published-models/PyBNG/COVID19forecasting_aMCMC/LaLaLand/m2.bngl", + "destinationDir": "Published/Mallela2021_Cities", + "destinationFile": "LaLaLand_m2.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "m7", + "sourcePath": "published-models/PyBNG/COVID19forecasting_aMCMC/MagicCity/m7.bngl", + "destinationDir": "Published/Mallela2021_Cities", + "destinationFile": "MagicCity_m7.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "m14", + "sourcePath": "published-models/PyBNG/COVID19forecasting_aMCMC/MotorCity/m14.bngl", + "destinationDir": "Published/Mallela2021_Cities", + "destinationFile": "MotorCity_m14.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "m10", + "sourcePath": "published-models/PyBNG/COVID19forecasting_aMCMC/Valley_of_the_Sun/m10.bngl", + "destinationDir": "Published/Mallela2021_Cities", + "destinationFile": "Valley_of_the_Sun_m10.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "m3", + "sourcePath": "published-models/PyBNG/COVID19forecasting_aMCMC/WindyCity/m3.bngl", + "destinationDir": "Published/Mallela2021_Cities", + "destinationFile": "WindyCity_m3.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_Cities" + }, + { + "id": "model", + "sourcePath": "published-models/PyBNG/degranulation/model.bngl", + "destinationDir": "PyBioNetGen/core/model", + "destinationFile": "model.bngl", + "origin": "published", + "category": "other", + "visible": true + }, + { + "id": "model_tofit", + "sourcePath": "published-models/PyBNG/degranulation/model_tofit.bngl", + "destinationDir": "PyBioNetGen/core/modeltofit", + "destinationFile": "model_tofit.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "model", + "sourcePath": "published-models/PyBNG/Degranulation_aMCMC/model.bngl", + "destinationDir": "PyBioNetGen/core/model_Degranulation_aMCMC", + "destinationFile": "model.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "parabola", + "sourcePath": "published-models/PyBNG/demo/parabola.bngl", + "destinationDir": "PyBioNetGen/core/parabola_demo", + "destinationFile": "parabola.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "egfr", + "sourcePath": "published-models/PyBNG/egfr_benchmark/egfr.bngl", + "destinationDir": "PyBioNetGen/core/egfr", + "destinationFile": "egfr.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "egfr_ground", + "sourcePath": "published-models/PyBNG/egfr_benchmark/egfr_ground.bngl", + "destinationDir": "PyBioNetGen/core/egfrground", + "destinationFile": "egfr_ground.bngl", + "origin": "published", + "category": "other", + "visible": true + }, + { + "id": "egfr_nf", + "sourcePath": "published-models/PyBNG/egfr_nf/egfr_nf.bngl", + "destinationDir": "PyBioNetGen/core/egfrnf", + "destinationFile": "egfr_nf.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "example2_starting_point", + "sourcePath": "published-models/PyBNG/egfr_nf/example2_starting_point.bngl", + "destinationDir": "PyBioNetGen/core/example2startingpoint", + "destinationFile": "example2_starting_point.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "egfr_ode", + "sourcePath": "published-models/PyBNG/egfr_ode/egfr_ode.bngl", + "destinationDir": "PyBioNetGen/core/egfrode", + "destinationFile": "egfr_ode.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "example1", + "sourcePath": "published-models/PyBNG/egfr_ode/example1.bngl", + "destinationDir": "PyBioNetGen/core/example1", + "destinationFile": "example1.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "fceri_gamma2", + "sourcePath": "published-models/PyBNG/fceri_gamma/fceri_gamma2.bngl", + "destinationDir": "PyBioNetGen/core/fcerigamma2", + "destinationFile": "fceri_gamma2.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "fceri_gamma2_ground_truth", + "sourcePath": "published-models/PyBNG/fceri_gamma/fceri_gamma2_ground_truth.bngl", + "destinationDir": "PyBioNetGen/core/fcerigamma2groundtruth", + "destinationFile": "fceri_gamma2_ground_truth.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "pt303", + "sourcePath": "published-models/PyBNG/HIVdynamics_aMCMC/pt303/pt303.bngl", + "destinationDir": "PyBioNetGen/HIVdynamics/pt303", + "destinationFile": "pt303.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "pt403", + "sourcePath": "published-models/PyBNG/HIVdynamics_aMCMC/pt403/pt403.bngl", + "destinationDir": "PyBioNetGen/HIVdynamics/pt403", + "destinationFile": "pt403.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "pt409", + "sourcePath": "published-models/PyBNG/HIVdynamics_aMCMC/pt409/pt409.bngl", + "destinationDir": "PyBioNetGen/HIVdynamics/pt409", + "destinationFile": "pt409.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "IGF1R_Model_receptor_activation_bnf", + "sourcePath": "published-models/PyBNG/igf1r/IGF1R_Model_receptor_activation_bnf.bngl", + "destinationDir": "PyBioNetGen/core/IGF1RModelreceptoractivationbnf", + "destinationFile": "IGF1R_Model_receptor_activation_bnf.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "Alabama", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Alabama/Alabama.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Alabama_Alabama.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Alaska", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Alaska/Alaska.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Alaska_Alaska.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Arizona", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Arizona/Arizona.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Arizona_Arizona.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Arkansas", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Arkansas/Arkansas.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Arkansas_Arkansas.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "California", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/California/California.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_California_California.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Colorado", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Colorado/Colorado.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Colorado_Colorado.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Connecticut", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Connecticut/Connecticut.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Connecticut_Connecticut.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Delaware", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Delaware/Delaware.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Delaware_Delaware.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Florida", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Florida/Florida.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Florida_Florida.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Georgia", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Georgia/Georgia.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Georgia_Georgia.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Hawaii", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Hawaii/Hawaii.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Hawaii_Hawaii.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Idaho", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Idaho/Idaho.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Idaho_Idaho.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Illinois", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Illinois/Illinois.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Illinois_Illinois.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Indiana", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Indiana/Indiana.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Indiana_Indiana.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Iowa", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Iowa/Iowa.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Iowa_Iowa.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Kansas", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Kansas/Kansas.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Kansas_Kansas.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Kentucky", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Kentucky/Kentucky.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Kentucky_Kentucky.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Louisiana", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Louisiana/Louisiana.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Louisiana_Louisiana.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Maine", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Maine/Maine.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Maine_Maine.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Maryland", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Maryland/Maryland.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Maryland_Maryland.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Massachusetts", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Massachusetts/Massachusetts.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Massachusetts_Massachusetts.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Michigan", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Michigan/Michigan.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Michigan_Michigan.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Minnesota", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Minnesota/Minnesota.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Minnesota_Minnesota.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Mississippi", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Mississippi/Mississippi.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Mississippi_Mississippi.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Missouri", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Missouri/Missouri.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Missouri_Missouri.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Montana", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Montana/Montana.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Montana_Montana.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Nebraska", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Nebraska/Nebraska.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Nebraska_Nebraska.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Nevada", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Nevada/Nevada.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Nevada_Nevada.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "NewHampshire", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/NewHampshire/NewHampshire.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_NewHampshire_NewHampshire.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "NewJersey", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/NewJersey/NewJersey.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_NewJersey_NewJersey.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "NewMexico", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/NewMexico/NewMexico.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_NewMexico_NewMexico.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "NewYork", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/NewYork/NewYork.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_NewYork_NewYork.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "NorthCarolina", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/NorthCarolina/NorthCarolina.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_NorthCarolina_NorthCarolina.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "NorthDakota", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/NorthDakota/NorthDakota.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_NorthDakota_NorthDakota.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Ohio", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Ohio/Ohio.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Ohio_Ohio.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Oklahoma", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Oklahoma/Oklahoma.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Oklahoma_Oklahoma.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Oregon", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Oregon/Oregon.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Oregon_Oregon.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Pennsylvania", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Pennsylvania/Pennsylvania.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Pennsylvania_Pennsylvania.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "RhodeIsland", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/RhodeIsland/RhodeIsland.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_RhodeIsland_RhodeIsland.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SouthCarolina", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/SouthCarolina/SouthCarolina.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_SouthCarolina_SouthCarolina.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "SouthDakota", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/SouthDakota/SouthDakota.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_SouthDakota_SouthDakota.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Tennessee", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Tennessee/Tennessee.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Tennessee_Tennessee.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Texas", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Texas/Texas.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Texas_Texas.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Utah", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Utah/Utah.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Utah_Utah.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Vermont", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Vermont/Vermont.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Vermont_Vermont.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Virginia", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Virginia/Virginia.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Virginia_Virginia.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Washington", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Washington/Washington.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Washington_Washington.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "WestVirginia", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/WestVirginia/WestVirginia.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_WestVirginia_WestVirginia.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Wisconsin", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Wisconsin/Wisconsin.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Wisconsin_Wisconsin.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Wyoming", + "sourcePath": "published-models/PyBNG/Mallela2021States/SI_files/Wyoming/Wyoming.bngl", + "destinationDir": "Published/Mallela2021", + "destinationFile": "SI_files_Wyoming_Wyoming.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2021_States" + }, + { + "id": "Abilene_TX", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Abilene_TX/Abilene_TX.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Abilene_TX_Abilene_TX.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Akron_OH", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Akron_OH/Akron_OH.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Akron_OH_Akron_OH.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Albany-Schenectady-Troy_NY", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Albany-Schenectady-Troy_NY/Albany-Schenectady-Troy_NY.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Albany-Schenectady-Troy_NY_Albany-Schenectady-Troy_NY.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Albany_GA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Albany_GA/Albany_GA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Albany_GA_Albany_GA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Albuquerque_NM", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Albuquerque_NM/Albuquerque_NM.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Albuquerque_NM_Albuquerque_NM.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Alexandria_LA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Alexandria_LA/Alexandria_LA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Alexandria_LA_Alexandria_LA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Allentown-Bethlehem-Easton_PA-NJ", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Allentown-Bethlehem-Easton_PA-NJ/Allentown-Bethlehem-Easton_PA-NJ.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Allentown-Bethlehem-Easton_PA-NJ_Allentown-Bethlehem-Easton_PA-NJ.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Amarillo_TX", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Amarillo_TX/Amarillo_TX.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Amarillo_TX_Amarillo_TX.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Anchorage_AK", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Anchorage_AK/Anchorage_AK.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Anchorage_AK_Anchorage_AK.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Ann_Arbor_MI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Ann_Arbor_MI/Ann_Arbor_MI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Ann_Arbor_MI_Ann_Arbor_MI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Appleton_WI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Appleton_WI/Appleton_WI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Appleton_WI_Appleton_WI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Asheville_NC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Asheville_NC/Asheville_NC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Asheville_NC_Asheville_NC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Athens-Clarke_County_GA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Athens-Clarke_County_GA/Athens-Clarke_County_GA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Athens-Clarke_County_GA_Athens-Clarke_County_GA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Atlanta-Sandy_Springs-Alpharetta_GA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Atlanta-Sandy_Springs-Alpharetta_GA/Atlanta-Sandy_Springs-Alpharetta_GA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Atlanta-Sandy_Springs-Alpharetta_GA_Atlanta-Sandy_Springs-Alpharetta_GA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Atlantic_City-Hammonton_NJ", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Atlantic_City-Hammonton_NJ/Atlantic_City-Hammonton_NJ.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Atlantic_City-Hammonton_NJ_Atlantic_City-Hammonton_NJ.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Auburn-Opelika_AL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Auburn-Opelika_AL/Auburn-Opelika_AL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Auburn-Opelika_AL_Auburn-Opelika_AL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Augusta-Richmond_County_GA-SC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Augusta-Richmond_County_GA-SC/Augusta-Richmond_County_GA-SC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Augusta-Richmond_County_GA-SC_Augusta-Richmond_County_GA-SC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Austin-Round_Rock_TX", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Austin-Round_Rock_TX/Austin-Round_Rock_TX.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Austin-Round_Rock_TX_Austin-Round_Rock_TX.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Bakersfield_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Bakersfield_CA/Bakersfield_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Bakersfield_CA_Bakersfield_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Baltimore-Columbia-Towson_MD", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Baltimore-Columbia-Towson_MD/Baltimore-Columbia-Towson_MD.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Baltimore-Columbia-Towson_MD_Baltimore-Columbia-Towson_MD.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Barnstable_Town_MA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Barnstable_Town_MA/Barnstable_Town_MA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Barnstable_Town_MA_Barnstable_Town_MA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Baton_Rouge_LA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Baton_Rouge_LA/Baton_Rouge_LA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Baton_Rouge_LA_Baton_Rouge_LA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Battle_Creek_MI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Battle_Creek_MI/Battle_Creek_MI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Battle_Creek_MI_Battle_Creek_MI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Bay_City_MI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Bay_City_MI/Bay_City_MI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Bay_City_MI_Bay_City_MI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Beaumont-Port_Arthur_TX", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Beaumont-Port_Arthur_TX/Beaumont-Port_Arthur_TX.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Beaumont-Port_Arthur_TX_Beaumont-Port_Arthur_TX.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Bellingham_WA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Bellingham_WA/Bellingham_WA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Bellingham_WA_Bellingham_WA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Binghamton_NY", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Binghamton_NY/Binghamton_NY.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Binghamton_NY_Binghamton_NY.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Birmingham-Hoover_AL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Birmingham-Hoover_AL/Birmingham-Hoover_AL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Birmingham-Hoover_AL_Birmingham-Hoover_AL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Bloomington_IN", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Bloomington_IN/Bloomington_IN.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Bloomington_IN_Bloomington_IN.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Bloomsburg-Berwick_PA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Bloomsburg-Berwick_PA/Bloomsburg-Berwick_PA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Bloomsburg-Berwick_PA_Bloomsburg-Berwick_PA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Boise_City_ID", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Boise_City_ID/Boise_City_ID.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Boise_City_ID_Boise_City_ID.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Boston-Cambridge-Newton_MA-NH", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Boston-Cambridge-Newton_MA-NH/Boston-Cambridge-Newton_MA-NH.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Boston-Cambridge-Newton_MA-NH_Boston-Cambridge-Newton_MA-NH.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Boulder_CO", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Boulder_CO/Boulder_CO.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Boulder_CO_Boulder_CO.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Bowling_Green_KY", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Bowling_Green_KY/Bowling_Green_KY.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Bowling_Green_KY_Bowling_Green_KY.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Bridgeport-Stamford-Norwalk_CT", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Bridgeport-Stamford-Norwalk_CT/Bridgeport-Stamford-Norwalk_CT.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Bridgeport-Stamford-Norwalk_CT_Bridgeport-Stamford-Norwalk_CT.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Brownsville-Harlingen_TX", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Brownsville-Harlingen_TX/Brownsville-Harlingen_TX.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Brownsville-Harlingen_TX_Brownsville-Harlingen_TX.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Buffalo-Niagara_Falls_NY", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Buffalo-Niagara_Falls_NY/Buffalo-Niagara_Falls_NY.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Buffalo-Niagara_Falls_NY_Buffalo-Niagara_Falls_NY.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Burlington-South_Burlington_VT", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Burlington-South_Burlington_VT/Burlington-South_Burlington_VT.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Burlington-South_Burlington_VT_Burlington-South_Burlington_VT.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Burlington_NC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Burlington_NC/Burlington_NC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Burlington_NC_Burlington_NC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "California-Lexington_Park_MD", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/California-Lexington_Park_MD/California-Lexington_Park_MD.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "California-Lexington_Park_MD_California-Lexington_Park_MD.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Canton-Massillon_OH", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Canton-Massillon_OH/Canton-Massillon_OH.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Canton-Massillon_OH_Canton-Massillon_OH.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Cape_Coral-Fort_Myers_FL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Cape_Coral-Fort_Myers_FL/Cape_Coral-Fort_Myers_FL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Cape_Coral-Fort_Myers_FL_Cape_Coral-Fort_Myers_FL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Carbondale-Marion_IL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Carbondale-Marion_IL/Carbondale-Marion_IL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Carbondale-Marion_IL_Carbondale-Marion_IL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Cedar_Rapids_IA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Cedar_Rapids_IA/Cedar_Rapids_IA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Cedar_Rapids_IA_Cedar_Rapids_IA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Chambersburg-Waynesboro_PA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Chambersburg-Waynesboro_PA/Chambersburg-Waynesboro_PA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Chambersburg-Waynesboro_PA_Chambersburg-Waynesboro_PA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Champaign-Urbana_IL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Champaign-Urbana_IL/Champaign-Urbana_IL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Champaign-Urbana_IL_Champaign-Urbana_IL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Charleston-North_Charleston_SC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Charleston-North_Charleston_SC/Charleston-North_Charleston_SC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Charleston-North_Charleston_SC_Charleston-North_Charleston_SC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Charleston_WV", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Charleston_WV/Charleston_WV.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Charleston_WV_Charleston_WV.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Charlotte-Concord-Gastonia_NC-SC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Charlotte-Concord-Gastonia_NC-SC/Charlotte-Concord-Gastonia_NC-SC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Charlotte-Concord-Gastonia_NC-SC_Charlotte-Concord-Gastonia_NC-SC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Charlottesville_VA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Charlottesville_VA/Charlottesville_VA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Charlottesville_VA_Charlottesville_VA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Chattanooga_TN-GA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Chattanooga_TN-GA/Chattanooga_TN-GA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Chattanooga_TN-GA_Chattanooga_TN-GA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Chicago-Naperville-Elgin_IL-IN-WI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Chicago-Naperville-Elgin_IL-IN-WI/Chicago-Naperville-Elgin_IL-IN-WI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Chicago-Naperville-Elgin_IL-IN-WI_Chicago-Naperville-Elgin_IL-IN-WI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Cincinnati_OH-KY-IN", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Cincinnati_OH-KY-IN/Cincinnati_OH-KY-IN.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Cincinnati_OH-KY-IN_Cincinnati_OH-KY-IN.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Clarksville_TN-KY", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Clarksville_TN-KY/Clarksville_TN-KY.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Clarksville_TN-KY_Clarksville_TN-KY.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Cleveland-Elyria_OH", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Cleveland-Elyria_OH/Cleveland-Elyria_OH.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Cleveland-Elyria_OH_Cleveland-Elyria_OH.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "College_Station-Bryan_TX", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/College_Station-Bryan_TX/College_Station-Bryan_TX.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "College_Station-Bryan_TX_College_Station-Bryan_TX.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Colorado_Springs_CO", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Colorado_Springs_CO/Colorado_Springs_CO.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Colorado_Springs_CO_Colorado_Springs_CO.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Columbia_SC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Columbia_SC/Columbia_SC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Columbia_SC_Columbia_SC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Columbus_GA-AL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Columbus_GA-AL/Columbus_GA-AL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Columbus_GA-AL_Columbus_GA-AL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Columbus_IN", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Columbus_IN/Columbus_IN.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Columbus_IN_Columbus_IN.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Columbus_OH", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Columbus_OH/Columbus_OH.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Columbus_OH_Columbus_OH.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Corpus_Christi_TX", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Corpus_Christi_TX/Corpus_Christi_TX.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Corpus_Christi_TX_Corpus_Christi_TX.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Crestview-Fort_Walton_Beach-Destin_FL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Crestview-Fort_Walton_Beach-Destin_FL/Crestview-Fort_Walton_Beach-Destin_FL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Crestview-Fort_Walton_Beach-Destin_FL_Crestview-Fort_Walton_Beach-Destin_FL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Cumberland_MD-WV", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Cumberland_MD-WV/Cumberland_MD-WV.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Cumberland_MD-WV_Cumberland_MD-WV.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Dallas-Fort_Worth-Arlington_TX", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Dallas-Fort_Worth-Arlington_TX/Dallas-Fort_Worth-Arlington_TX.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Dallas-Fort_Worth-Arlington_TX_Dallas-Fort_Worth-Arlington_TX.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Dalton_GA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Dalton_GA/Dalton_GA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Dalton_GA_Dalton_GA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Daphne-Fairhope-Foley_AL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Daphne-Fairhope-Foley_AL/Daphne-Fairhope-Foley_AL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Daphne-Fairhope-Foley_AL_Daphne-Fairhope-Foley_AL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Davenport-Moline-Rock_Island_IA-IL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Davenport-Moline-Rock_Island_IA-IL/Davenport-Moline-Rock_Island_IA-IL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Davenport-Moline-Rock_Island_IA-IL_Davenport-Moline-Rock_Island_IA-IL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Dayton_OH", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Dayton_OH/Dayton_OH.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Dayton_OH_Dayton_OH.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Deltona-Daytona_Beach-Ormond_Beach_FL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Deltona-Daytona_Beach-Ormond_Beach_FL/Deltona-Daytona_Beach-Ormond_Beach_FL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Deltona-Daytona_Beach-Ormond_Beach_FL_Deltona-Daytona_Beach-Ormond_Beach_FL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Denver-Aurora-Lakewood_CO", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Denver-Aurora-Lakewood_CO/Denver-Aurora-Lakewood_CO.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Denver-Aurora-Lakewood_CO_Denver-Aurora-Lakewood_CO.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Des_Moines-West_Des_Moines_IA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Des_Moines-West_Des_Moines_IA/Des_Moines-West_Des_Moines_IA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Des_Moines-West_Des_Moines_IA_Des_Moines-West_Des_Moines_IA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Detroit-Warren-Dearborn_MI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Detroit-Warren-Dearborn_MI/Detroit-Warren-Dearborn_MI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Detroit-Warren-Dearborn_MI_Detroit-Warren-Dearborn_MI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Detroit–Warren–Dearborn, MI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Detroit–Warren–Dearborn, MI/Detroit–Warren–Dearborn, MI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Detroit_Warren_Dearborn_MI_Detroit_Warren_Dearborn_MI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Dothan_AL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Dothan_AL/Dothan_AL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Dothan_AL_Dothan_AL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Dover_DE", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Dover_DE/Dover_DE.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Dover_DE_Dover_DE.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Dubuque_IA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Dubuque_IA/Dubuque_IA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Dubuque_IA_Dubuque_IA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Durham-Chapel_Hill_NC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Durham-Chapel_Hill_NC/Durham-Chapel_Hill_NC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Durham-Chapel_Hill_NC_Durham-Chapel_Hill_NC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "East_Stroudsburg_PA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/East_Stroudsburg_PA/East_Stroudsburg_PA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "East_Stroudsburg_PA_East_Stroudsburg_PA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Elkhart-Goshen_IN", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Elkhart-Goshen_IN/Elkhart-Goshen_IN.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Elkhart-Goshen_IN_Elkhart-Goshen_IN.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "El_Centro_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/El_Centro_CA/El_Centro_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "El_Centro_CA_El_Centro_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "El_Paso_TX", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/El_Paso_TX/El_Paso_TX.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "El_Paso_TX_El_Paso_TX.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Evansville_IN-KY", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Evansville_IN-KY/Evansville_IN-KY.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Evansville_IN-KY_Evansville_IN-KY.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Fargo_ND-MN", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Fargo_ND-MN/Fargo_ND-MN.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Fargo_ND-MN_Fargo_ND-MN.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Farmington_NM", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Farmington_NM/Farmington_NM.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Farmington_NM_Farmington_NM.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Fayetteville-Springdale-Rogers_AR", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Fayetteville-Springdale-Rogers_AR/Fayetteville-Springdale-Rogers_AR.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Fayetteville-Springdale-Rogers_AR_Fayetteville-Springdale-Rogers_AR.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Fayetteville_NC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Fayetteville_NC/Fayetteville_NC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Fayetteville_NC_Fayetteville_NC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Flagstaff_AZ", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Flagstaff_AZ/Flagstaff_AZ.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Flagstaff_AZ_Flagstaff_AZ.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Flint_MI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Flint_MI/Flint_MI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Flint_MI_Flint_MI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Florence-Muscle_Shoals_AL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Florence-Muscle_Shoals_AL/Florence-Muscle_Shoals_AL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Florence-Muscle_Shoals_AL_Florence-Muscle_Shoals_AL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Florence_SC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Florence_SC/Florence_SC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Florence_SC_Florence_SC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Fort_Collins_CO", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Fort_Collins_CO/Fort_Collins_CO.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Fort_Collins_CO_Fort_Collins_CO.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Fort_Wayne_IN", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Fort_Wayne_IN/Fort_Wayne_IN.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Fort_Wayne_IN_Fort_Wayne_IN.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Fresno_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Fresno_CA/Fresno_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Fresno_CA_Fresno_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Gadsden_AL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Gadsden_AL/Gadsden_AL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Gadsden_AL_Gadsden_AL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Gainesville_FL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Gainesville_FL/Gainesville_FL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Gainesville_FL_Gainesville_FL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Gainesville_GA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Gainesville_GA/Gainesville_GA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Gainesville_GA_Gainesville_GA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Glens_Falls_NY", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Glens_Falls_NY/Glens_Falls_NY.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Glens_Falls_NY_Glens_Falls_NY.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Goldsboro_NC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Goldsboro_NC/Goldsboro_NC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Goldsboro_NC_Goldsboro_NC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Grand_Forks_ND-MN", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Grand_Forks_ND-MN/Grand_Forks_ND-MN.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Grand_Forks_ND-MN_Grand_Forks_ND-MN.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Grand_Island_NE", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Grand_Island_NE/Grand_Island_NE.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Grand_Island_NE_Grand_Island_NE.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Grand_Rapids-Kentwood_MI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Grand_Rapids-Kentwood_MI/Grand_Rapids-Kentwood_MI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Grand_Rapids-Kentwood_MI_Grand_Rapids-Kentwood_MI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Greeley_CO", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Greeley_CO/Greeley_CO.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Greeley_CO_Greeley_CO.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Greensboro-High_Point_NC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Greensboro-High_Point_NC/Greensboro-High_Point_NC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Greensboro-High_Point_NC_Greensboro-High_Point_NC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Greenville-Anderson_SC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Greenville-Anderson_SC/Greenville-Anderson_SC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Greenville-Anderson_SC_Greenville-Anderson_SC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Greenville_NC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Greenville_NC/Greenville_NC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Greenville_NC_Greenville_NC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Green_Bay_WI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Green_Bay_WI/Green_Bay_WI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Green_Bay_WI_Green_Bay_WI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Gulfport-Biloxi_MS", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Gulfport-Biloxi_MS/Gulfport-Biloxi_MS.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Gulfport-Biloxi_MS_Gulfport-Biloxi_MS.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Hagerstown-Martinsburg_MD-WV", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Hagerstown-Martinsburg_MD-WV/Hagerstown-Martinsburg_MD-WV.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Hagerstown-Martinsburg_MD-WV_Hagerstown-Martinsburg_MD-WV.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Hammond_LA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Hammond_LA/Hammond_LA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Hammond_LA_Hammond_LA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Hanford-Corcoran_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Hanford-Corcoran_CA/Hanford-Corcoran_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Hanford-Corcoran_CA_Hanford-Corcoran_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Harrisburg-Carlisle_PA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Harrisburg-Carlisle_PA/Harrisburg-Carlisle_PA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Harrisburg-Carlisle_PA_Harrisburg-Carlisle_PA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Harrisonburg_VA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Harrisonburg_VA/Harrisonburg_VA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Harrisonburg_VA_Harrisonburg_VA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Hartford-East_Hartford-Middletown_CT", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Hartford-East_Hartford-Middletown_CT/Hartford-East_Hartford-Middletown_CT.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Hartford-East_Hartford-Middletown_CT_Hartford-East_Hartford-Middletown_CT.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Hattiesburg_MS", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Hattiesburg_MS/Hattiesburg_MS.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Hattiesburg_MS_Hattiesburg_MS.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Hickory-Lenoir-Morganton_NC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Hickory-Lenoir-Morganton_NC/Hickory-Lenoir-Morganton_NC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Hickory-Lenoir-Morganton_NC_Hickory-Lenoir-Morganton_NC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Hilton_Head_Island-Bluffton-Beaufort_SC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Hilton_Head_Island-Bluffton-Beaufort_SC/Hilton_Head_Island-Bluffton-Beaufort_SC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Hilton_Head_Island-Bluffton-Beaufort_SC_Hilton_Head_Island-Bluffton-Beaufort_SC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Houma-Thibodaux_LA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Houma-Thibodaux_LA/Houma-Thibodaux_LA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Houma-Thibodaux_LA_Houma-Thibodaux_LA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Houston-The_Woodlands-Sugar_Land_TX", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Houston-The_Woodlands-Sugar_Land_TX/Houston-The_Woodlands-Sugar_Land_TX.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Houston-The_Woodlands-Sugar_Land_TX_Houston-The_Woodlands-Sugar_Land_TX.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Huntington-Ashland_WV-KY-OH", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Huntington-Ashland_WV-KY-OH/Huntington-Ashland_WV-KY-OH.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Huntington-Ashland_WV-KY-OH_Huntington-Ashland_WV-KY-OH.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Huntsville_AL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Huntsville_AL/Huntsville_AL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Huntsville_AL_Huntsville_AL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Indianapolis-Carmel-Anderson_IN", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Indianapolis-Carmel-Anderson_IN/Indianapolis-Carmel-Anderson_IN.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Indianapolis-Carmel-Anderson_IN_Indianapolis-Carmel-Anderson_IN.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Iowa_City_IA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Iowa_City_IA/Iowa_City_IA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Iowa_City_IA_Iowa_City_IA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Jacksonville_FL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Jacksonville_FL/Jacksonville_FL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Jacksonville_FL_Jacksonville_FL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Jackson_MI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Jackson_MI/Jackson_MI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Jackson_MI_Jackson_MI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Jackson_MS", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Jackson_MS/Jackson_MS.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Jackson_MS_Jackson_MS.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Janesville-Beloit_WI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Janesville-Beloit_WI/Janesville-Beloit_WI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Janesville-Beloit_WI_Janesville-Beloit_WI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Kalamazoo-Portage_MI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Kalamazoo-Portage_MI/Kalamazoo-Portage_MI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Kalamazoo-Portage_MI_Kalamazoo-Portage_MI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Kankakee_IL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Kankakee_IL/Kankakee_IL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Kankakee_IL_Kankakee_IL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Kansas_City_MO-KS", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Kansas_City_MO-KS/Kansas_City_MO-KS.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Kansas_City_MO-KS_Kansas_City_MO-KS.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Kennewick-Richland_WA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Kennewick-Richland_WA/Kennewick-Richland_WA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Kennewick-Richland_WA_Kennewick-Richland_WA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Killeen-Temple_TX", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Killeen-Temple_TX/Killeen-Temple_TX.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Killeen-Temple_TX_Killeen-Temple_TX.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Kingston_NY", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Kingston_NY/Kingston_NY.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Kingston_NY_Kingston_NY.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Knoxville_TN", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Knoxville_TN/Knoxville_TN.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Knoxville_TN_Knoxville_TN.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Kokomo_IN", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Kokomo_IN/Kokomo_IN.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Kokomo_IN_Kokomo_IN.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lafayette-West_Lafayette_IN", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Lafayette-West_Lafayette_IN/Lafayette-West_Lafayette_IN.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Lafayette-West_Lafayette_IN_Lafayette-West_Lafayette_IN.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lafayette_LA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Lafayette_LA/Lafayette_LA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Lafayette_LA_Lafayette_LA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lakeland-Winter_Haven_FL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Lakeland-Winter_Haven_FL/Lakeland-Winter_Haven_FL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Lakeland-Winter_Haven_FL_Lakeland-Winter_Haven_FL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lake_Charles_LA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Lake_Charles_LA/Lake_Charles_LA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Lake_Charles_LA_Lake_Charles_LA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lake_Havasu_City-Kingman_AZ", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Lake_Havasu_City-Kingman_AZ/Lake_Havasu_City-Kingman_AZ.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Lake_Havasu_City-Kingman_AZ_Lake_Havasu_City-Kingman_AZ.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lancaster_PA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Lancaster_PA/Lancaster_PA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Lancaster_PA_Lancaster_PA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lansing-East_Lansing_MI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Lansing-East_Lansing_MI/Lansing-East_Lansing_MI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Lansing-East_Lansing_MI_Lansing-East_Lansing_MI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Laredo_TX", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Laredo_TX/Laredo_TX.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Laredo_TX_Laredo_TX.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Las_Cruces_NM", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Las_Cruces_NM/Las_Cruces_NM.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Las_Cruces_NM_Las_Cruces_NM.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Las_Vegas-Henderson-Paradise_NV", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Las_Vegas-Henderson-Paradise_NV/Las_Vegas-Henderson-Paradise_NV.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Las_Vegas-Henderson-Paradise_NV_Las_Vegas-Henderson-Paradise_NV.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lawton_OK", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Lawton_OK/Lawton_OK.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Lawton_OK_Lawton_OK.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lebanon_PA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Lebanon_PA/Lebanon_PA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Lebanon_PA_Lebanon_PA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lexington-Fayette_KY", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Lexington-Fayette_KY/Lexington-Fayette_KY.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Lexington-Fayette_KY_Lexington-Fayette_KY.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lincoln_NE", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Lincoln_NE/Lincoln_NE.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Lincoln_NE_Lincoln_NE.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Little_Rock-North_Little_Rock-Conway_AR", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Little_Rock-North_Little_Rock-Conway_AR/Little_Rock-North_Little_Rock-Conway_AR.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Little_Rock-North_Little_Rock-Conway_AR_Little_Rock-North_Little_Rock-Conway_AR.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Longview_TX", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Longview_TX/Longview_TX.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Longview_TX_Longview_TX.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Los_Angeles-Long_Beach-Anaheim_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Los_Angeles-Long_Beach-Anaheim_CA/Los_Angeles-Long_Beach-Anaheim_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Los_Angeles-Long_Beach-Anaheim_CA_Los_Angeles-Long_Beach-Anaheim_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Jefferson_County_KY-IN", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Louisville/Jefferson_County_KY-IN/Louisville/Jefferson_County_KY-IN.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Louisville_Jefferson_County_KY-IN_Louisville_Jefferson_County_KY-IN.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Lubbock_TX", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Lubbock_TX/Lubbock_TX.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Lubbock_TX_Lubbock_TX.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Macon-Bibb_County_GA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Macon-Bibb_County_GA/Macon-Bibb_County_GA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Macon-Bibb_County_GA_Macon-Bibb_County_GA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Madison_WI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Madison_WI/Madison_WI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Madison_WI_Madison_WI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Manchester-Nashua_NH", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Manchester-Nashua_NH/Manchester-Nashua_NH.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Manchester-Nashua_NH_Manchester-Nashua_NH.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "McAllen-Edinburg-Mission_TX", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/McAllen-Edinburg-Mission_TX/McAllen-Edinburg-Mission_TX.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "McAllen-Edinburg-Mission_TX_McAllen-Edinburg-Mission_TX.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Memphis_TN-MS-AR", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Memphis_TN-MS-AR/Memphis_TN-MS-AR.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Memphis_TN-MS-AR_Memphis_TN-MS-AR.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Merced_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Merced_CA/Merced_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Merced_CA_Merced_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Miami-Fort_Lauderdale-West_Palm_Beach_FL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Miami-Fort_Lauderdale-West_Palm_Beach_FL/Miami-Fort_Lauderdale-West_Palm_Beach_FL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Miami-Fort_Lauderdale-West_Palm_Beach_FL_Miami-Fort_Lauderdale-West_Palm_Beach_FL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Michigan_City-La_Porte_IN", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Michigan_City-La_Porte_IN/Michigan_City-La_Porte_IN.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Michigan_City-La_Porte_IN_Michigan_City-La_Porte_IN.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Milwaukee-Waukesha_WI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Milwaukee-Waukesha_WI/Milwaukee-Waukesha_WI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Milwaukee-Waukesha_WI_Milwaukee-Waukesha_WI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Minneapolis-St._Paul-Bloomington_MN-WI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Minneapolis-St._Paul-Bloomington_MN-WI/Minneapolis-St._Paul-Bloomington_MN-WI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Minneapolis-St._Paul-Bloomington_MN-WI_Minneapolis-St._Paul-Bloomington_MN-WI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Mobile_AL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Mobile_AL/Mobile_AL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Mobile_AL_Mobile_AL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Modesto_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Modesto_CA/Modesto_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Modesto_CA_Modesto_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Monroe_LA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Monroe_LA/Monroe_LA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Monroe_LA_Monroe_LA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Monroe_MI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Monroe_MI/Monroe_MI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Monroe_MI_Monroe_MI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Montgomery_AL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Montgomery_AL/Montgomery_AL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Montgomery_AL_Montgomery_AL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Mount_Vernon-Anacortes_WA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Mount_Vernon-Anacortes_WA/Mount_Vernon-Anacortes_WA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Mount_Vernon-Anacortes_WA_Mount_Vernon-Anacortes_WA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Muncie_IN", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Muncie_IN/Muncie_IN.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Muncie_IN_Muncie_IN.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Muskegon_MI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Muskegon_MI/Muskegon_MI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Muskegon_MI_Muskegon_MI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Naples-Marco_Island_FL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Naples-Marco_Island_FL/Naples-Marco_Island_FL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Naples-Marco_Island_FL_Naples-Marco_Island_FL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Nashville-Davidson-Murfreesboro-Franklin_TN", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Nashville-Davidson-Murfreesboro-Franklin_TN/Nashville-Davidson-Murfreesboro-Franklin_TN.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Nashville-Davidson-Murfreesboro-Franklin_TN_Nashville-Davidson-Murfreesboro-Franklin_TN.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "New_Haven-Milford_CT", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/New_Haven-Milford_CT/New_Haven-Milford_CT.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "New_Haven-Milford_CT_New_Haven-Milford_CT.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "New_Orleans-Metairie_LA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/New_Orleans-Metairie_LA/New_Orleans-Metairie_LA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "New_Orleans-Metairie_LA_New_Orleans-Metairie_LA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "New_York-Newark-Jersey_City_NY-NJ-PA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/New_York-Newark-Jersey_City_NY-NJ-PA/New_York-Newark-Jersey_City_NY-NJ-PA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "New_York-Newark-Jersey_City_NY-NJ-PA_New_York-Newark-Jersey_City_NY-NJ-PA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Niles_MI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Niles_MI/Niles_MI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Niles_MI_Niles_MI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "North_Port-Sarasota-Bradenton_FL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/North_Port-Sarasota-Bradenton_FL/North_Port-Sarasota-Bradenton_FL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "North_Port-Sarasota-Bradenton_FL_North_Port-Sarasota-Bradenton_FL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Norwich-New_London_CT", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Norwich-New_London_CT/Norwich-New_London_CT.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Norwich-New_London_CT_Norwich-New_London_CT.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Ocala_FL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Ocala_FL/Ocala_FL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Ocala_FL_Ocala_FL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Ocean_City_NJ", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Ocean_City_NJ/Ocean_City_NJ.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Ocean_City_NJ_Ocean_City_NJ.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Ogden-Clearfield_UT", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Ogden-Clearfield_UT/Ogden-Clearfield_UT.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Ogden-Clearfield_UT_Ogden-Clearfield_UT.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Oklahoma_City_OK", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Oklahoma_City_OK/Oklahoma_City_OK.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Oklahoma_City_OK_Oklahoma_City_OK.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Omaha-Council_Bluffs_NE-IA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Omaha-Council_Bluffs_NE-IA/Omaha-Council_Bluffs_NE-IA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Omaha-Council_Bluffs_NE-IA_Omaha-Council_Bluffs_NE-IA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Orlando-Kissimmee-Sanford_FL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Orlando-Kissimmee-Sanford_FL/Orlando-Kissimmee-Sanford_FL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Orlando-Kissimmee-Sanford_FL_Orlando-Kissimmee-Sanford_FL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Owensboro_KY", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Owensboro_KY/Owensboro_KY.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Owensboro_KY_Owensboro_KY.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Oxnard-Thousand_Oaks-Ventura_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Oxnard-Thousand_Oaks-Ventura_CA/Oxnard-Thousand_Oaks-Ventura_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Oxnard-Thousand_Oaks-Ventura_CA_Oxnard-Thousand_Oaks-Ventura_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Palm_Bay-Melbourne-Titusville_FL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Palm_Bay-Melbourne-Titusville_FL/Palm_Bay-Melbourne-Titusville_FL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Palm_Bay-Melbourne-Titusville_FL_Palm_Bay-Melbourne-Titusville_FL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Pensacola-Ferry_Pass-Brent_FL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Pensacola-Ferry_Pass-Brent_FL/Pensacola-Ferry_Pass-Brent_FL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Pensacola-Ferry_Pass-Brent_FL_Pensacola-Ferry_Pass-Brent_FL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Peoria_IL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Peoria_IL/Peoria_IL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Peoria_IL_Peoria_IL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Philadelphia-Camden-Wilmington_PA-NJ-DE-MD", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Philadelphia-Camden-Wilmington_PA-NJ-DE-MD/Philadelphia-Camden-Wilmington_PA-NJ-DE-MD.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Philadelphia-Camden-Wilmington_PA-NJ-DE-MD_Philadelphia-Camden-Wilmington_PA-NJ-DE-MD.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Phoenix-Mesa-Chandler_AZ", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Phoenix-Mesa-Chandler_AZ/Phoenix-Mesa-Chandler_AZ.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Phoenix-Mesa-Chandler_AZ_Phoenix-Mesa-Chandler_AZ.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Pine_Bluff_AR", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Pine_Bluff_AR/Pine_Bluff_AR.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Pine_Bluff_AR_Pine_Bluff_AR.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Pittsburgh_PA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Pittsburgh_PA/Pittsburgh_PA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Pittsburgh_PA_Pittsburgh_PA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Pittsfield_MA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Pittsfield_MA/Pittsfield_MA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Pittsfield_MA_Pittsfield_MA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Portland-South_Portland_ME", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Portland-South_Portland_ME/Portland-South_Portland_ME.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Portland-South_Portland_ME_Portland-South_Portland_ME.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Portland-Vancouver-Hillsboro_OR-WA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Portland-Vancouver-Hillsboro_OR-WA/Portland-Vancouver-Hillsboro_OR-WA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Portland-Vancouver-Hillsboro_OR-WA_Portland-Vancouver-Hillsboro_OR-WA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Port_St._Lucie_FL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Port_St._Lucie_FL/Port_St._Lucie_FL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Port_St._Lucie_FL_Port_St._Lucie_FL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Poughkeepsie-Newburgh-Middletown_NY", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Poughkeepsie-Newburgh-Middletown_NY/Poughkeepsie-Newburgh-Middletown_NY.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Poughkeepsie-Newburgh-Middletown_NY_Poughkeepsie-Newburgh-Middletown_NY.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Prescott_Valley-Prescott_AZ", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Prescott_Valley-Prescott_AZ/Prescott_Valley-Prescott_AZ.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Prescott_Valley-Prescott_AZ_Prescott_Valley-Prescott_AZ.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Providence-Warwick_RI-MA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Providence-Warwick_RI-MA/Providence-Warwick_RI-MA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Providence-Warwick_RI-MA_Providence-Warwick_RI-MA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Provo-Orem_UT", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Provo-Orem_UT/Provo-Orem_UT.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Provo-Orem_UT_Provo-Orem_UT.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Pueblo_CO", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Pueblo_CO/Pueblo_CO.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Pueblo_CO_Pueblo_CO.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Punta_Gorda_FL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Punta_Gorda_FL/Punta_Gorda_FL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Punta_Gorda_FL_Punta_Gorda_FL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Racine_WI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Racine_WI/Racine_WI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Racine_WI_Racine_WI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Raleigh-Cary_NC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Raleigh-Cary_NC/Raleigh-Cary_NC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Raleigh-Cary_NC_Raleigh-Cary_NC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Reading_PA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Reading_PA/Reading_PA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Reading_PA_Reading_PA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Reno_NV", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Reno_NV/Reno_NV.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Reno_NV_Reno_NV.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Richmond_VA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Richmond_VA/Richmond_VA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Richmond_VA_Richmond_VA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Riverside-San_Bernardino-Ontario_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Riverside-San_Bernardino-Ontario_CA/Riverside-San_Bernardino-Ontario_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Riverside-San_Bernardino-Ontario_CA_Riverside-San_Bernardino-Ontario_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Roanoke_VA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Roanoke_VA/Roanoke_VA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Roanoke_VA_Roanoke_VA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Rochester_MN", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Rochester_MN/Rochester_MN.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Rochester_MN_Rochester_MN.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Rochester_NY", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Rochester_NY/Rochester_NY.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Rochester_NY_Rochester_NY.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Rockford_IL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Rockford_IL/Rockford_IL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Rockford_IL_Rockford_IL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Rocky_Mount_NC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Rocky_Mount_NC/Rocky_Mount_NC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Rocky_Mount_NC_Rocky_Mount_NC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Rome_GA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Rome_GA/Rome_GA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Rome_GA_Rome_GA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Sacramento-Roseville-Folsom_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Sacramento-Roseville-Folsom_CA/Sacramento-Roseville-Folsom_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Sacramento-Roseville-Folsom_CA_Sacramento-Roseville-Folsom_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Saginaw_MI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Saginaw_MI/Saginaw_MI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Saginaw_MI_Saginaw_MI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Salem_OR", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Salem_OR/Salem_OR.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Salem_OR_Salem_OR.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Salinas_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Salinas_CA/Salinas_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Salinas_CA_Salinas_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Salisbury_MD-DE", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Salisbury_MD-DE/Salisbury_MD-DE.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Salisbury_MD-DE_Salisbury_MD-DE.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Salt_Lake_City_UT", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Salt_Lake_City_UT/Salt_Lake_City_UT.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Salt_Lake_City_UT_Salt_Lake_City_UT.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Santa_Maria-Santa_Barbara_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Santa_Maria-Santa_Barbara_CA/Santa_Maria-Santa_Barbara_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Santa_Maria-Santa_Barbara_CA_Santa_Maria-Santa_Barbara_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Santa_Rosa-Petaluma_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Santa_Rosa-Petaluma_CA/Santa_Rosa-Petaluma_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Santa_Rosa-Petaluma_CA_Santa_Rosa-Petaluma_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "San_Antonio-New_Braunfels_TX", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/San_Antonio-New_Braunfels_TX/San_Antonio-New_Braunfels_TX.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "San_Antonio-New_Braunfels_TX_San_Antonio-New_Braunfels_TX.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "San_Diego-Chula_Vista-Carlsbad_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/San_Diego-Chula_Vista-Carlsbad_CA/San_Diego-Chula_Vista-Carlsbad_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "San_Diego-Chula_Vista-Carlsbad_CA_San_Diego-Chula_Vista-Carlsbad_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "San_Francisco-Oakland-Berkeley_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/San_Francisco-Oakland-Berkeley_CA/San_Francisco-Oakland-Berkeley_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "San_Francisco-Oakland-Berkeley_CA_San_Francisco-Oakland-Berkeley_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "San_Jose-Sunnyvale-Santa_Clara_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/San_Jose-Sunnyvale-Santa_Clara_CA/San_Jose-Sunnyvale-Santa_Clara_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "San_Jose-Sunnyvale-Santa_Clara_CA_San_Jose-Sunnyvale-Santa_Clara_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "San_Luis_Obispo-Paso_Robles_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/San_Luis_Obispo-Paso_Robles_CA/San_Luis_Obispo-Paso_Robles_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "San_Luis_Obispo-Paso_Robles_CA_San_Luis_Obispo-Paso_Robles_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Savannah_GA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Savannah_GA/Savannah_GA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Savannah_GA_Savannah_GA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Scranton-Wilkes-Barre_PA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Scranton-Wilkes-Barre_PA/Scranton-Wilkes-Barre_PA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Scranton-Wilkes-Barre_PA_Scranton-Wilkes-Barre_PA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Scranton–Wilkes-Barre, PA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Scranton–Wilkes-Barre, PA/Scranton–Wilkes-Barre, PA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Scranton_Wilkes-Barre_PA_Scranton_Wilkes-Barre_PA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Seattle-Tacoma-Bellevue_WA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Seattle-Tacoma-Bellevue_WA/Seattle-Tacoma-Bellevue_WA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Seattle-Tacoma-Bellevue_WA_Seattle-Tacoma-Bellevue_WA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Shreveport-Bossier_City_LA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Shreveport-Bossier_City_LA/Shreveport-Bossier_City_LA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Shreveport-Bossier_City_LA_Shreveport-Bossier_City_LA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Sioux_City_IA-NE-SD", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Sioux_City_IA-NE-SD/Sioux_City_IA-NE-SD.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Sioux_City_IA-NE-SD_Sioux_City_IA-NE-SD.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Sioux_Falls_SD", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Sioux_Falls_SD/Sioux_Falls_SD.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Sioux_Falls_SD_Sioux_Falls_SD.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "South_Bend-Mishawaka_IN-MI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/South_Bend-Mishawaka_IN-MI/South_Bend-Mishawaka_IN-MI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "South_Bend-Mishawaka_IN-MI_South_Bend-Mishawaka_IN-MI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Spartanburg_SC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Spartanburg_SC/Spartanburg_SC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Spartanburg_SC_Spartanburg_SC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Spokane-Spokane_Valley_WA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Spokane-Spokane_Valley_WA/Spokane-Spokane_Valley_WA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Spokane-Spokane_Valley_WA_Spokane-Spokane_Valley_WA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Springfield_IL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Springfield_IL/Springfield_IL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Springfield_IL_Springfield_IL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Springfield_MA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Springfield_MA/Springfield_MA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Springfield_MA_Springfield_MA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "St._Cloud_MN", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/St._Cloud_MN/St._Cloud_MN.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "St._Cloud_MN_St._Cloud_MN.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "St._George_UT", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/St._George_UT/St._George_UT.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "St._George_UT_St._George_UT.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "St._Joseph_MO-KS", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/St._Joseph_MO-KS/St._Joseph_MO-KS.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "St._Joseph_MO-KS_St._Joseph_MO-KS.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "St._Louis_MO-IL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/St._Louis_MO-IL/St._Louis_MO-IL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "St._Louis_MO-IL_St._Louis_MO-IL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Stockton_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Stockton_CA/Stockton_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Stockton_CA_Stockton_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Sumter_SC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Sumter_SC/Sumter_SC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Sumter_SC_Sumter_SC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Syracuse_NY", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Syracuse_NY/Syracuse_NY.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Syracuse_NY_Syracuse_NY.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Tallahassee_FL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Tallahassee_FL/Tallahassee_FL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Tallahassee_FL_Tallahassee_FL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Tampa-St._Petersburg-Clearwater_FL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Tampa-St._Petersburg-Clearwater_FL/Tampa-St._Petersburg-Clearwater_FL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Tampa-St._Petersburg-Clearwater_FL_Tampa-St._Petersburg-Clearwater_FL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Texarkana_TX-AR", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Texarkana_TX-AR/Texarkana_TX-AR.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Texarkana_TX-AR_Texarkana_TX-AR.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "The_Villages_FL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/The_Villages_FL/The_Villages_FL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "The_Villages_FL_The_Villages_FL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Toledo_OH", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Toledo_OH/Toledo_OH.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Toledo_OH_Toledo_OH.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Topeka_KS", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Topeka_KS/Topeka_KS.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Topeka_KS_Topeka_KS.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Trenton-Princeton_NJ", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Trenton-Princeton_NJ/Trenton-Princeton_NJ.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Trenton-Princeton_NJ_Trenton-Princeton_NJ.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Tucson_AZ", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Tucson_AZ/Tucson_AZ.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Tucson_AZ_Tucson_AZ.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Tulsa_OK", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Tulsa_OK/Tulsa_OK.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Tulsa_OK_Tulsa_OK.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Tuscaloosa_AL", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Tuscaloosa_AL/Tuscaloosa_AL.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Tuscaloosa_AL_Tuscaloosa_AL.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Twin_Falls_ID", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Twin_Falls_ID/Twin_Falls_ID.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Twin_Falls_ID_Twin_Falls_ID.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Urban_Honolulu_HI", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Urban_Honolulu_HI/Urban_Honolulu_HI.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Urban_Honolulu_HI_Urban_Honolulu_HI.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Utica-Rome_NY", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Utica-Rome_NY/Utica-Rome_NY.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Utica-Rome_NY_Utica-Rome_NY.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Valdosta_GA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Valdosta_GA/Valdosta_GA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Valdosta_GA_Valdosta_GA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Vallejo_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Vallejo_CA/Vallejo_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Vallejo_CA_Vallejo_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Victoria_TX", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Victoria_TX/Victoria_TX.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Victoria_TX_Victoria_TX.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Vineland-Bridgeton_NJ", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Vineland-Bridgeton_NJ/Vineland-Bridgeton_NJ.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Vineland-Bridgeton_NJ_Vineland-Bridgeton_NJ.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Virginia_Beach-Norfolk-Newport_News_VA-NC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Virginia_Beach-Norfolk-Newport_News_VA-NC/Virginia_Beach-Norfolk-Newport_News_VA-NC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Virginia_Beach-Norfolk-Newport_News_VA-NC_Virginia_Beach-Norfolk-Newport_News_VA-NC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Visalia_CA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Visalia_CA/Visalia_CA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Visalia_CA_Visalia_CA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Warner_Robins_GA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Warner_Robins_GA/Warner_Robins_GA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Warner_Robins_GA_Warner_Robins_GA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Washington-Arlington-Alexandria_DC-VA-MD-WV", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Washington-Arlington-Alexandria_DC-VA-MD-WV/Washington-Arlington-Alexandria_DC-VA-MD-WV.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Washington-Arlington-Alexandria_DC-VA-MD-WV_Washington-Arlington-Alexandria_DC-VA-MD-WV.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Waterloo-Cedar_Falls_IA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Waterloo-Cedar_Falls_IA/Waterloo-Cedar_Falls_IA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Waterloo-Cedar_Falls_IA_Waterloo-Cedar_Falls_IA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Wenatchee_WA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Wenatchee_WA/Wenatchee_WA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Wenatchee_WA_Wenatchee_WA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Wheeling_WV-OH", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Wheeling_WV-OH/Wheeling_WV-OH.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Wheeling_WV-OH_Wheeling_WV-OH.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Wichita_KS", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Wichita_KS/Wichita_KS.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Wichita_KS_Wichita_KS.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Winchester_VA-WV", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Winchester_VA-WV/Winchester_VA-WV.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Winchester_VA-WV_Winchester_VA-WV.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Winston-Salem_NC", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Winston-Salem_NC/Winston-Salem_NC.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Winston-Salem_NC_Winston-Salem_NC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Worcester_MA-CT", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Worcester_MA-CT/Worcester_MA-CT.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Worcester_MA-CT_Worcester_MA-CT.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Yakima_WA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Yakima_WA/Yakima_WA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Yakima_WA_Yakima_WA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "York-Hanover_PA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/York-Hanover_PA/York-Hanover_PA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "York-Hanover_PA_York-Hanover_PA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Youngstown-Warren-Boardman_OH-PA", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Youngstown-Warren-Boardman_OH-PA/Youngstown-Warren-Boardman_OH-PA.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Youngstown-Warren-Boardman_OH-PA_Youngstown-Warren-Boardman_OH-PA.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Yuma_AZ", + "sourcePath": "published-models/PyBNG/Mallela2022MSAs/Yuma_AZ/Yuma_AZ.bngl", + "destinationDir": "Published/Mallela2022_MSAs", + "destinationFile": "Yuma_AZ_Yuma_AZ.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Mallela2022_MSAs" + }, + { + "id": "Arizona", + "sourcePath": "published-models/PyBNG/Miller2022NavajoNation/supplementary_material/Arizona/Arizona.bngl", + "destinationDir": "Published/Miller2022_NavajoNation", + "destinationFile": "supplementary_material_Arizona_Arizona.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Miller2022_NavajoNation" + }, + { + "id": "Colorado", + "sourcePath": "published-models/PyBNG/Miller2022NavajoNation/supplementary_material/Colorado/Colorado.bngl", + "destinationDir": "Published/Miller2022_NavajoNation", + "destinationFile": "supplementary_material_Colorado_Colorado.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Miller2022_NavajoNation" + }, + { + "id": "NavajoNation", + "sourcePath": "published-models/PyBNG/Miller2022NavajoNation/supplementary_material/NavajoNation/NavajoNation.bngl", + "destinationDir": "Published/Miller2022_NavajoNation", + "destinationFile": "supplementary_material_NavajoNation_NavajoNation.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Miller2022_NavajoNation" + }, + { + "id": "NewMexico", + "sourcePath": "published-models/PyBNG/Miller2022NavajoNation/supplementary_material/NewMexico/NewMexico.bngl", + "destinationDir": "Published/Miller2022_NavajoNation", + "destinationFile": "supplementary_material_NewMexico_NewMexico.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Miller2022_NavajoNation" + }, + { + "id": "Utah", + "sourcePath": "published-models/PyBNG/Miller2022NavajoNation/supplementary_material/Utah/Utah.bngl", + "destinationDir": "Published/Miller2022_NavajoNation", + "destinationFile": "supplementary_material_Utah_Utah.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false, + "collectionId": "Miller2022_NavajoNation" + }, + { + "id": "MEK1_KO", + "sourcePath": "published-models/PyBNG/Miller2025_MEK_Isoforms/MEK_isoform_aMCMC/MEK1_KO.bngl", + "destinationDir": "Published/Miller2025_MEK", + "destinationFile": "MEK_isoform_aMCMC_MEK1_KO.bngl", + "origin": "published", + "category": "signaling", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "MEK1_N78G", + "sourcePath": "published-models/PyBNG/Miller2025_MEK_Isoforms/MEK_isoform_aMCMC/MEK1_N78G.bngl", + "destinationDir": "Published/Miller2025_MEK", + "destinationFile": "MEK_isoform_aMCMC_MEK1_N78G.bngl", + "origin": "published", + "category": "signaling", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "MEK1_T292A", + "sourcePath": "published-models/PyBNG/Miller2025_MEK_Isoforms/MEK_isoform_aMCMC/MEK1_T292A.bngl", + "destinationDir": "Published/Miller2025_MEK", + "destinationFile": "MEK_isoform_aMCMC_MEK1_T292A.bngl", + "origin": "published", + "category": "signaling", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "MEK1_T292D", + "sourcePath": "published-models/PyBNG/Miller2025_MEK_Isoforms/MEK_isoform_aMCMC/MEK1_T292D.bngl", + "destinationDir": "Published/Miller2025_MEK", + "destinationFile": "MEK_isoform_aMCMC_MEK1_T292D.bngl", + "origin": "published", + "category": "signaling", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "MEK1_WT", + "sourcePath": "published-models/PyBNG/Miller2025_MEK_Isoforms/MEK_isoform_aMCMC/MEK1_WT.bngl", + "destinationDir": "Published/Miller2025_MEK", + "destinationFile": "MEK_isoform_aMCMC_MEK1_WT.bngl", + "origin": "published", + "category": "signaling", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "MEK1_KO", + "sourcePath": "published-models/PyBNG/Miller2025_MEK_Isoforms/MEK_isoform_optimization_DE/MEK1_KO.bngl", + "destinationDir": "Published/Miller2025_MEK", + "destinationFile": "MEK_isoform_optimization_DE_MEK1_KO.bngl", + "origin": "published", + "category": "signaling", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "MEK1_N78G", + "sourcePath": "published-models/PyBNG/Miller2025_MEK_Isoforms/MEK_isoform_optimization_DE/MEK1_N78G.bngl", + "destinationDir": "Published/Miller2025_MEK", + "destinationFile": "MEK_isoform_optimization_DE_MEK1_N78G.bngl", + "origin": "published", + "category": "signaling", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "MEK1_T292A", + "sourcePath": "published-models/PyBNG/Miller2025_MEK_Isoforms/MEK_isoform_optimization_DE/MEK1_T292A.bngl", + "destinationDir": "Published/Miller2025_MEK", + "destinationFile": "MEK_isoform_optimization_DE_MEK1_T292A.bngl", + "origin": "published", + "category": "signaling", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "MEK1_T292D", + "sourcePath": "published-models/PyBNG/Miller2025_MEK_Isoforms/MEK_isoform_optimization_DE/MEK1_T292D.bngl", + "destinationDir": "Published/Miller2025_MEK", + "destinationFile": "MEK_isoform_optimization_DE_MEK1_T292D.bngl", + "origin": "published", + "category": "signaling", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "MEK1_WT", + "sourcePath": "published-models/PyBNG/Miller2025_MEK_Isoforms/MEK_isoform_optimization_DE/MEK1_WT.bngl", + "destinationDir": "Published/Miller2025_MEK", + "destinationFile": "MEK_isoform_optimization_DE_MEK1_WT.bngl", + "origin": "published", + "category": "signaling", + "visible": false, + "collectionId": "Miller2025_MEK" + }, + { + "id": "egfr_ode", + "sourcePath": "published-models/PyBNG/egfr_ode.bngl", + "destinationDir": "PyBioNetGen/core/egfrode_published-models_PyBNG", + "destinationFile": "egfr_ode.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "degranulation_model", + "sourcePath": "published-models/PyBNG/degranulation_model.bngl", + "destinationDir": "PyBioNetGen/core/degranulationmodel", + "destinationFile": "degranulation_model.bngl", + "origin": "published", + "category": "other", + "visible": true + }, + { + "id": "receptor", + "sourcePath": "published-models/PyBNG/receptor/receptor.bngl", + "destinationDir": "PyBioNetGen/core/receptor", + "destinationFile": "receptor.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "receptor_nf", + "sourcePath": "published-models/PyBNG/receptor_nf/receptor_nf.bngl", + "destinationDir": "PyBioNetGen/core/receptornf", + "destinationFile": "receptor_nf.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "tcr", + "sourcePath": "published-models/PyBNG/tcr/tcr.bngl", + "destinationDir": "PyBioNetGen/core/tcr", + "destinationFile": "tcr.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "parabola", + "sourcePath": "published-models/PyBNG/tests/bngl_files/errors/constraint_domain/parabola.bngl", + "destinationDir": "PyBioNetGen/tests/parabola", + "destinationFile": "parabola.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "actions_syntax", + "sourcePath": "published-models/PyBNG/tests/bngl_files/errors/actions_syntax.bngl", + "destinationDir": "PyBioNetGen/tests/actionssyntax", + "destinationFile": "actions_syntax.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "bng_error", + "sourcePath": "published-models/PyBNG/tests/bngl_files/errors/bng_error.bngl", + "destinationDir": "PyBioNetGen/tests/bngerror", + "destinationFile": "bng_error.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "free_missing", + "sourcePath": "published-models/PyBNG/tests/bngl_files/errors/free_missing.bngl", + "destinationDir": "PyBioNetGen/tests/freemissing", + "destinationFile": "free_missing.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "no_frees", + "sourcePath": "published-models/PyBNG/tests/bngl_files/errors/no_frees.bngl", + "destinationDir": "PyBioNetGen/tests/nofrees", + "destinationFile": "no_frees.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "no_generate_network", + "sourcePath": "published-models/PyBNG/tests/bngl_files/errors/no_generate_network.bngl", + "destinationDir": "PyBioNetGen/tests/nogeneratenetwork", + "destinationFile": "no_generate_network.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "no_suffix", + "sourcePath": "published-models/PyBNG/tests/bngl_files/errors/no_suffix.bngl", + "destinationDir": "PyBioNetGen/tests/nosuffix", + "destinationFile": "no_suffix.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "simple_nf_seed", + "sourcePath": "published-models/PyBNG/tests/bngl_files/errors/simple_nf_seed.bngl", + "destinationDir": "PyBioNetGen/tests/simplenfseed", + "destinationFile": "simple_nf_seed.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "ErrNoFrees", + "sourcePath": "published-models/PyBNG/tests/bngl_files/ErrNoFrees.bngl", + "destinationDir": "PyBioNetGen/tests/ErrNoFrees", + "destinationFile": "ErrNoFrees.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "LilyIgE", + "sourcePath": "published-models/PyBNG/tests/bngl_files/LilyIgE.bngl", + "destinationDir": "PyBioNetGen/tests/LilyIgE", + "destinationFile": "LilyIgE.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "NFmodel", + "sourcePath": "published-models/PyBNG/tests/bngl_files/NFmodel.bngl", + "destinationDir": "PyBioNetGen/tests/NFmodel", + "destinationFile": "NFmodel.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "parabola", + "sourcePath": "published-models/PyBNG/tests/bngl_files/parabola.bngl", + "destinationDir": "PyBioNetGen/tests/parabola_bngl_files", + "destinationFile": "parabola.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "ParamsEverywhere", + "sourcePath": "published-models/PyBNG/tests/bngl_files/ParamsEverywhere.bngl", + "destinationDir": "PyBioNetGen/tests/ParamsEverywhere", + "destinationFile": "ParamsEverywhere.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "Simple", + "sourcePath": "published-models/PyBNG/tests/bngl_files/Simple.bngl", + "destinationDir": "PyBioNetGen/tests/Simple", + "destinationFile": "Simple.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "Simple_AddActions", + "sourcePath": "published-models/PyBNG/tests/bngl_files/Simple_AddActions.bngl", + "destinationDir": "PyBioNetGen/tests/SimpleAddActions", + "destinationFile": "Simple_AddActions.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "Simple_Answer", + "sourcePath": "published-models/PyBNG/tests/bngl_files/Simple_Answer.bngl", + "destinationDir": "PyBioNetGen/tests/SimpleAnswer", + "destinationFile": "Simple_Answer.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "Simple_GenOnly", + "sourcePath": "published-models/PyBNG/tests/bngl_files/Simple_GenOnly.bngl", + "destinationDir": "PyBioNetGen/tests/SimpleGenOnly", + "destinationFile": "Simple_GenOnly.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "Simple_nogen", + "sourcePath": "published-models/PyBNG/tests/bngl_files/Simple_nogen.bngl", + "destinationDir": "PyBioNetGen/tests/Simplenogen", + "destinationFile": "Simple_nogen.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "Tricky", + "sourcePath": "published-models/PyBNG/tests/bngl_files/Tricky.bngl", + "destinationDir": "PyBioNetGen/tests/Tricky", + "destinationFile": "Tricky.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "TrickyUS", + "sourcePath": "published-models/PyBNG/tests/bngl_files/TrickyUS.bngl", + "destinationDir": "PyBioNetGen/tests/TrickyUS", + "destinationFile": "TrickyUS.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "parabola2", + "sourcePath": "published-models/PyBNG/tests/bngl_files/special_cases/duplicate_names/parabola2.bngl", + "destinationDir": "PyBioNetGen/tests/parabola2", + "destinationFile": "parabola2.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "parabola", + "sourcePath": "published-models/PyBNG/tests/bngl_files/special_cases/model_check/parabola.bngl", + "destinationDir": "PyBioNetGen/tests/parabola_bngl_files_special_cases_model_check", + "destinationFile": "parabola.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "polynomial", + "sourcePath": "published-models/PyBNG/tests/full_tests/T1-ssprop/polynomial.bngl", + "destinationDir": "PyBioNetGen/tests/polynomial", + "destinationFile": "polynomial.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "egg", + "sourcePath": "published-models/PyBNG/tests/full_tests/T3-de-egg/egg.bngl", + "destinationDir": "PyBioNetGen/tests/egg", + "destinationFile": "egg.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "receptor_nf", + "sourcePath": "published-models/PyBNG/tests/full_tests/T4-pso-nf/receptor_nf.bngl", + "destinationDir": "PyBioNetGen/tests/receptornf", + "destinationFile": "receptor_nf.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "trivial", + "sourcePath": "published-models/PyBNG/tests/full_tests/T5-pt-trivial/trivial.bngl", + "destinationDir": "PyBioNetGen/tests/trivial", + "destinationFile": "trivial.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "polynomial", + "sourcePath": "published-models/PyBNG/tests/full_tests/T6-check/polynomial.bngl", + "destinationDir": "PyBioNetGen/tests/polynomial_full_tests_T6-check", + "destinationFile": "polynomial.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "tlbr", + "sourcePath": "published-models/PyBNG/tlbr/tlbr.bngl", + "destinationDir": "PyBioNetGen/core/tlbr", + "destinationFile": "tlbr.bngl", + "origin": "published", + "category": "other", + "visible": false + }, + { + "id": "Dallas", + "sourcePath": "published-models/PyBNG/Vax_and_Variants/Dallas/Dallas.bngl", + "destinationDir": "Published/VaxAndVariants/Dallas", + "destinationFile": "Dallas.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false + }, + { + "id": "Houston", + "sourcePath": "published-models/PyBNG/Vax_and_Variants/Houston/Houston.bngl", + "destinationDir": "Published/VaxAndVariants/Houston", + "destinationFile": "Houston.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false + }, + { + "id": "NYC", + "sourcePath": "published-models/PyBNG/Vax_and_Variants/NYC/NYC.bngl", + "destinationDir": "Published/VaxAndVariants/NYC", + "destinationFile": "NYC.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false + }, + { + "id": "Phoenix", + "sourcePath": "published-models/PyBNG/Vax_and_Variants/Phoenix/Phoenix.bngl", + "destinationDir": "Published/VaxAndVariants/Phoenix", + "destinationFile": "Phoenix.bngl", + "origin": "published", + "category": "epidemiology", + "visible": false + }, + { + "id": "quasi_equilibrium", + "sourcePath": "published-models/toy-models/quasi_equilibrium.bngl", + "destinationDir": "Tutorials/General/quasiequilibrium", + "destinationFile": "quasi_equilibrium.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "chemistry", + "sourcePath": "published-models/tutorials/chemistry.bngl", + "destinationDir": "Tutorials/General/chemistry", + "destinationFile": "chemistry.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "polymer", + "sourcePath": "published-models/tutorials/polymer.bngl", + "destinationDir": "Tutorials/General/polymer", + "destinationFile": "polymer.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "polymer_draft", + "sourcePath": "published-models/tutorials/polymer_draft.bngl", + "destinationDir": "Tutorials/General/polymerdraft", + "destinationFile": "polymer_draft.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "simple", + "sourcePath": "published-models/tutorials/simple.bngl", + "destinationDir": "Tutorials/General/simple", + "destinationFile": "simple.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "toy1", + "sourcePath": "published-models/tutorials/toy1.bngl", + "destinationDir": "Tutorials/General/toy1", + "destinationFile": "toy1.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "toy2", + "sourcePath": "published-models/tutorials/toy2.bngl", + "destinationDir": "Tutorials/General/toy2", + "destinationFile": "toy2.bngl", + "origin": "tutorial", + "category": "tutorial", + "visible": false + }, + { + "id": "CaOscillate_Func", + "sourcePath": "published-models/validation/CaOscillate_Func.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/CaOscillateFunc", + "destinationFile": "CaOscillate_Func.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "CaOscillate_Sat", + "sourcePath": "published-models/validation/CaOscillate_Sat.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/CaOscillateSat", + "destinationFile": "CaOscillate_Sat.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "catalysis", + "sourcePath": "published-models/validation/catalysis.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/catalysis", + "destinationFile": "catalysis.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "continue", + "sourcePath": "published-models/validation/continue.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/continue", + "destinationFile": "continue.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "egfr_net", + "sourcePath": "published-models/validation/egfr_net.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/egfrnet", + "destinationFile": "egfr_net.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "egfr_net_red", + "sourcePath": "published-models/validation/egfr_net_red.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/egfrnetred", + "destinationFile": "egfr_net_red.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "egfr_path", + "sourcePath": "published-models/validation/egfr_path.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/egfrpath", + "destinationFile": "egfr_path.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "energy_example1", + "sourcePath": "published-models/validation/energy_example1.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/energyexample1", + "destinationFile": "energy_example1.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "example1", + "sourcePath": "published-models/validation/example1.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/example1", + "destinationFile": "example1.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "fceri_ji_comp", + "sourcePath": "published-models/validation/fceri_ji_comp.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/fcerijicomp", + "destinationFile": "fceri_ji_comp.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "Haugh2b", + "sourcePath": "published-models/validation/Haugh2b.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/Haugh2b", + "destinationFile": "Haugh2b.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "heise", + "sourcePath": "published-models/validation/heise.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/heise", + "destinationFile": "heise.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "issue_198_short", + "sourcePath": "published-models/validation/issue_198_short.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/issue198short", + "destinationFile": "issue_198_short.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "Kiefhaber_emodel", + "sourcePath": "published-models/validation/Kiefhaber_emodel.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/Kiefhaberemodel", + "destinationFile": "Kiefhaber_emodel.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "Korwek_2023", + "sourcePath": "published-models/validation/Korwek_2023.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/Korwek2023", + "destinationFile": "Korwek_2023.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "localfunc", + "sourcePath": "published-models/validation/localfunc.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/localfunc", + "destinationFile": "localfunc.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "michment", + "sourcePath": "published-models/validation/michment.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/michment", + "destinationFile": "michment.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "michment_cont", + "sourcePath": "published-models/validation/michment_cont.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/michmentcont", + "destinationFile": "michment_cont.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "Motivating_example", + "sourcePath": "published-models/validation/Motivating_example.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/Motivatingexample", + "destinationFile": "Motivating_example.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "Motivating_example_cBNGL", + "sourcePath": "published-models/validation/Motivating_example_cBNGL.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/MotivatingexamplecBNGL", + "destinationFile": "Motivating_example_cBNGL.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "motor", + "sourcePath": "published-models/validation/motor.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/motor", + "destinationFile": "motor.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "mwc", + "sourcePath": "published-models/validation/mwc.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/mwc", + "destinationFile": "mwc.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "nfkb", + "sourcePath": "published-models/validation/nfkb.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/nfkb", + "destinationFile": "nfkb.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "nfkb_illustrating_protocols", + "sourcePath": "published-models/validation/nfkb_illustrating_protocols.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/nfkbillustratingprotocols", + "destinationFile": "nfkb_illustrating_protocols.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "rec_dim", + "sourcePath": "published-models/validation/rec_dim.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/recdim", + "destinationFile": "rec_dim.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "rec_dim_comp", + "sourcePath": "published-models/validation/rec_dim_comp.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/recdimcomp", + "destinationFile": "rec_dim_comp.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "SHP2_base_model", + "sourcePath": "published-models/validation/SHP2_base_model.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/SHP2basemodel", + "destinationFile": "SHP2_base_model.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "simple_sbml_import", + "sourcePath": "published-models/validation/simple_sbml_import.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/simplesbmlimport", + "destinationFile": "simple_sbml_import.bngl", + "origin": "test-case", + "category": "validation", + "visible": false + }, + { + "id": "simple_system", + "sourcePath": "published-models/validation/simple_system.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/simplesystem", + "destinationFile": "simple_system.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "test_ANG_synthesis_simple", + "sourcePath": "published-models/validation/test_ANG_synthesis_simple.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/testANGsynthesissimple", + "destinationFile": "test_ANG_synthesis_simple.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "test_fixed", + "sourcePath": "published-models/validation/test_fixed.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/testfixed", + "destinationFile": "test_fixed.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "test_MM", + "sourcePath": "published-models/validation/test_MM.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/testMM", + "destinationFile": "test_MM.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "test_mratio", + "sourcePath": "published-models/validation/test_mratio.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/testmratio", + "destinationFile": "test_mratio.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "test_network_gen", + "sourcePath": "published-models/validation/test_network_gen.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/testnetworkgen", + "destinationFile": "test_network_gen.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "test_sat", + "sourcePath": "published-models/validation/test_sat.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/testsat", + "destinationFile": "test_sat.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "test_synthesis_cBNGL_simple", + "sourcePath": "published-models/validation/test_synthesis_cBNGL_simple.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/testsynthesiscBNGLsimple", + "destinationFile": "test_synthesis_cBNGL_simple.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "test_synthesis_complex", + "sourcePath": "published-models/validation/test_synthesis_complex.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/testsynthesiscomplex", + "destinationFile": "test_synthesis_complex.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "test_synthesis_complex_0_cBNGL", + "sourcePath": "published-models/validation/test_synthesis_complex_0_cBNGL.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/testsynthesiscomplex0cBNGL", + "destinationFile": "test_synthesis_complex_0_cBNGL.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "test_synthesis_complex_source_cBNGL", + "sourcePath": "published-models/validation/test_synthesis_complex_source_cBNGL.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/testsynthesiscomplexsourcecBNGL", + "destinationFile": "test_synthesis_complex_source_cBNGL.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "test_synthesis_simple", + "sourcePath": "published-models/validation/test_synthesis_simple.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/testsynthesissimple", + "destinationFile": "test_synthesis_simple.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "tlmr", + "sourcePath": "published-models/validation/tlmr.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/tlmr", + "destinationFile": "tlmr.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "toy-jim", + "sourcePath": "published-models/validation/toy-jim.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/toyjim", + "destinationFile": "toy-jim.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "univ_synth", + "sourcePath": "published-models/validation/univ_synth.bngl", + "destinationDir": "Contributed/BNGPlayground_Validation/univsynth", + "destinationFile": "univ_synth.bngl", + "origin": "test-case", + "category": "validation", + "visible": true + }, + { + "id": "Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC", + "sourcePath": "public/models/Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC.bngl", + "destinationDir": "Contributed/BNGPlayground_PublicRuntime/MyrtleBeachConwayNorthMyrtleBeachSCNC", + "destinationFile": "Myrtle_Beach-Conway-North_Myrtle_Beach_SC-NC.bngl", + "origin": "contributed", + "category": "other", + "visible": false + }, + { + "id": "polymer_fixed", + "sourcePath": "public/models/polymer_fixed.bngl", + "destinationDir": "Contributed/BNGPlayground_PublicRuntime/polymerfixed", + "destinationFile": "polymer_fixed.bngl", + "origin": "contributed", + "category": "other", + "visible": false + }, + { + "id": "simple_nfsim_test", + "sourcePath": "public/models/simple_nfsim_test.bngl", + "destinationDir": "Contributed/BNGPlayground_PublicRuntime/simplenfsimtest", + "destinationFile": "simple_nfsim_test.bngl", + "origin": "contributed", + "category": "other", + "visible": false + } + ] +} \ No newline at end of file diff --git a/scripts/generate-manifest.js b/scripts/generate-manifest.js new file mode 100644 index 00000000..bce3f824 --- /dev/null +++ b/scripts/generate-manifest.js @@ -0,0 +1,171 @@ +const fs = require('fs'); +const path = require('path'); + +const SEARCH_ROOTS = ['Published', 'Contributed', 'Tutorials', 'PyBioNetGen']; + +function parseArgs(argv) { + let root = path.resolve(__dirname, '..'); + let output = ''; + + for (let index = 0; index < argv.length; index += 1) { + const arg = argv[index]; + if (arg === '--root' && argv[index + 1]) { + root = path.resolve(argv[index + 1]); + index += 1; + continue; + } + if (arg === '--output' && argv[index + 1]) { + output = path.resolve(argv[index + 1]); + index += 1; + } + } + + return { + root, + output: output || path.join(root, 'manifest.json'), + }; +} + +function parseScalar(rawValue) { + const value = rawValue.trim(); + if (value === 'true') return true; + if (value === 'false') return false; + if (value === 'null') return null; + if (/^-?\d+$/.test(value)) return Number(value); + if (value.startsWith('[') && value.endsWith(']')) { + const inner = value.slice(1, -1).trim(); + if (!inner) return []; + return inner.split(',').map(entry => entry.trim().replace(/^"|"$/g, '')); + } + if (value.startsWith('"') && value.endsWith('"')) { + return value.slice(1, -1); + } + return value; +} + +function setNested(target, dottedPath, value) { + const parts = dottedPath.split('.'); + let cursor = target; + for (let index = 0; index < parts.length - 1; index += 1) { + const part = parts[index]; + if (!cursor[part] || typeof cursor[part] !== 'object' || Array.isArray(cursor[part])) { + cursor[part] = {}; + } + cursor = cursor[part]; + } + cursor[parts[parts.length - 1]] = value; +} + +function parseMetadataYaml(content) { + const result = {}; + const stack = []; + + for (const rawLine of content.split(/\r?\n/)) { + if (!rawLine.trim() || rawLine.trim().startsWith('#')) continue; + + const indent = rawLine.match(/^\s*/)[0].length; + const trimmed = rawLine.trim(); + + if (trimmed.startsWith('- ')) { + const currentPath = stack.map(entry => entry.key).join('.'); + const listValue = parseScalar(trimmed.slice(2)); + + if (currentPath === 'tags') { + result.tags = Array.isArray(result.tags) ? result.tags : []; + result.tags.push(String(listValue)); + } + continue; + } + + while (stack.length > 0 && indent <= stack[stack.length - 1].indent) { + stack.pop(); + } + + const separator = trimmed.indexOf(':'); + if (separator < 0) continue; + + const key = trimmed.slice(0, separator).trim(); + const rawValue = trimmed.slice(separator + 1); + const pathParts = [...stack.map(entry => entry.key), key]; + const dottedPath = pathParts.join('.'); + + if (!rawValue.trim()) { + stack.push({ key, indent }); + if (dottedPath === 'tags') { + result.tags = Array.isArray(result.tags) ? result.tags : []; + } + continue; + } + + setNested(result, dottedPath, parseScalar(rawValue)); + } + + return result; +} + +function listMetadataFiles(dir, results = []) { + if (!fs.existsSync(dir)) return results; + + for (const entry of fs.readdirSync(dir, { withFileTypes: true })) { + const fullPath = path.join(dir, entry.name); + if (entry.isDirectory()) { + listMetadataFiles(fullPath, results); + continue; + } + if (entry.isFile() && entry.name === 'metadata.yaml') { + results.push(fullPath); + } + } + + return results; +} + +function listModelFiles(dir) { + return fs.readdirSync(dir, { withFileTypes: true }) + .filter(entry => entry.isFile() && entry.name.endsWith('.bngl')) + .map(entry => entry.name) + .sort(); +} + +function buildEntry(root, metadata, metadataFile, modelFile, isCollection) { + const modelDir = path.dirname(metadataFile); + const relativeModelPath = path.relative(root, path.join(modelDir, modelFile)).replace(/\\/g, '/'); + const id = isCollection ? path.basename(modelFile, '.bngl') : metadata.id || path.basename(modelFile, '.bngl'); + + return { + id, + name: isCollection ? `${metadata.name} - ${path.basename(modelFile, '.bngl')}` : metadata.name || id, + description: metadata.description || '', + path: relativeModelPath, + file: modelFile, + tags: Array.isArray(metadata.tags) ? metadata.tags : [], + category: metadata.category || 'other', + bng2_compatible: metadata.compatibility?.bng2_compatible ?? false, + origin: metadata.source?.origin || 'other', + visible: metadata.playground?.visible ?? false, + collectionId: isCollection ? metadata.id || null : null, + }; +} + +function main() { + const { root, output } = parseArgs(process.argv.slice(2)); + const metadataFiles = SEARCH_ROOTS.flatMap(searchRoot => listMetadataFiles(path.join(root, searchRoot))); + const manifestEntries = []; + + for (const metadataFile of metadataFiles) { + const metadata = parseMetadataYaml(fs.readFileSync(metadataFile, 'utf8')); + const modelFiles = listModelFiles(path.dirname(metadataFile)); + if (modelFiles.length === 0) continue; + + const isCollection = modelFiles.length > 1 || Boolean(metadata.collection); + for (const modelFile of modelFiles) { + manifestEntries.push(buildEntry(root, metadata, metadataFile, modelFile, isCollection)); + } + } + + manifestEntries.sort((left, right) => left.id.localeCompare(right.id)); + fs.writeFileSync(output, JSON.stringify(manifestEntries, null, 2)); + console.log(`Generated ${manifestEntries.length} manifest entries at ${output}`); +} + +main(); \ No newline at end of file diff --git a/scripts/validate-metadata.js b/scripts/validate-metadata.js new file mode 100644 index 00000000..834f1ab6 --- /dev/null +++ b/scripts/validate-metadata.js @@ -0,0 +1,260 @@ +const fs = require('fs'); +const path = require('path'); + +const SEARCH_ROOTS = ['Published', 'Contributed', 'Tutorials', 'PyBioNetGen']; +const CATEGORY_VALUES = new Set([ + 'signaling', + 'regulation', + 'metabolism', + 'gene-expression', + 'epidemiology', + 'immunology', + 'tutorial', + 'validation', + 'showcase', + 'synthetic-biology', + 'ecology', + 'physics', + 'computer-science', + 'other', +]); +const ORIGIN_VALUES = new Set([ + 'published', + 'contributed', + 'ai-generated', + 'ported-from-sbml', + 'tutorial', + 'test-case', +]); +const DIFFICULTY_VALUES = new Set(['beginner', 'intermediate', 'advanced']); +const COLLECTION_TYPE_VALUES = new Set([ + 'parameter-fit-variants', + 'sensitivity-analysis', + 'geographic-variants', + 'patient-specific', +]); +const SIMULATION_METHOD_VALUES = new Set(['ode', 'ssa', 'nf']); + +function parseScalar(rawValue) { + const value = rawValue.trim(); + if (value === 'true') return true; + if (value === 'false') return false; + if (value === 'null') return null; + if (/^-?\d+$/.test(value)) return Number(value); + if (value.startsWith('[') && value.endsWith(']')) { + const inner = value.slice(1, -1).trim(); + if (!inner) return []; + return inner.split(',').map((entry) => entry.trim().replace(/^"|"$/g, '')); + } + if (value.startsWith('"') && value.endsWith('"')) { + return value.slice(1, -1); + } + return value; +} + +function setNested(target, dottedPath, value) { + const parts = dottedPath.split('.'); + let cursor = target; + for (let index = 0; index < parts.length - 1; index += 1) { + const part = parts[index]; + if (!cursor[part] || typeof cursor[part] !== 'object' || Array.isArray(cursor[part])) { + cursor[part] = {}; + } + cursor = cursor[part]; + } + cursor[parts[parts.length - 1]] = value; +} + +function parseMetadataYaml(content) { + const result = {}; + const stack = []; + + for (const rawLine of content.split(/\r?\n/)) { + if (!rawLine.trim() || rawLine.trim().startsWith('#')) continue; + + const indent = rawLine.match(/^\s*/)[0].length; + const trimmed = rawLine.trim(); + + if (trimmed.startsWith('- ')) { + const currentPath = stack.map((entry) => entry.key).join('.'); + const listValue = parseScalar(trimmed.slice(2)); + if (currentPath === 'tags') { + result.tags = Array.isArray(result.tags) ? result.tags : []; + result.tags.push(String(listValue)); + } + continue; + } + + while (stack.length > 0 && indent <= stack[stack.length - 1].indent) { + stack.pop(); + } + + const separator = trimmed.indexOf(':'); + if (separator < 0) continue; + + const key = trimmed.slice(0, separator).trim(); + const rawValue = trimmed.slice(separator + 1); + const dottedPath = [...stack.map((entry) => entry.key), key].join('.'); + + if (!rawValue.trim()) { + stack.push({ key, indent }); + if (dottedPath === 'tags') { + result.tags = Array.isArray(result.tags) ? result.tags : []; + } + continue; + } + + setNested(result, dottedPath, parseScalar(rawValue)); + } + + return result; +} + +function listMetadataFiles(dir, results = []) { + if (!fs.existsSync(dir)) return results; + for (const entry of fs.readdirSync(dir, { withFileTypes: true })) { + const fullPath = path.join(dir, entry.name); + if (entry.isDirectory()) { + listMetadataFiles(fullPath, results); + } else if (entry.isFile() && entry.name === 'metadata.yaml') { + results.push(fullPath); + } + } + return results; +} + +function listModelFiles(dir) { + return fs.readdirSync(dir, { withFileTypes: true }) + .filter((entry) => entry.isFile() && entry.name.endsWith('.bngl')) + .map((entry) => entry.name) + .sort(); +} + +function normalizeModelKey(value) { + return String(value || '') + .replace(/\.bngl$/i, '') + .replace(/[^a-z0-9]+/gi, '') + .toLowerCase(); +} + +function expectString(errors, value, label, filePath) { + if (typeof value !== 'string' || !value.trim()) { + errors.push(`${filePath}: missing or invalid ${label}`); + } +} + +function expectBoolean(errors, value, label, filePath) { + if (typeof value !== 'boolean') { + errors.push(`${filePath}: missing or invalid ${label}`); + } +} + +function expectEnum(errors, value, allowed, label, filePath) { + if (typeof value !== 'string' || !allowed.has(value)) { + errors.push(`${filePath}: invalid ${label} (${JSON.stringify(value)})`); + } +} + +function expectArray(errors, value, label, filePath) { + if (!Array.isArray(value)) { + errors.push(`${filePath}: missing or invalid ${label}`); + } +} + +function validateMetadataFile(metadataFile, errors) { + const metadata = parseMetadataYaml(fs.readFileSync(metadataFile, 'utf8')); + const modelDir = path.dirname(metadataFile); + const modelFiles = listModelFiles(modelDir); + const readmePath = path.join(modelDir, 'README.md'); + + if (!fs.existsSync(readmePath)) { + errors.push(`${metadataFile}: missing README.md`); + } + if (modelFiles.length === 0) { + errors.push(`${metadataFile}: no .bngl files found alongside metadata.yaml`); + } + + expectString(errors, metadata.id, 'id', metadataFile); + expectString(errors, metadata.name, 'name', metadataFile); + expectString(errors, metadata.description, 'description', metadataFile); + expectArray(errors, metadata.tags, 'tags', metadataFile); + expectEnum(errors, metadata.category, CATEGORY_VALUES, 'category', metadataFile); + + if (!metadata.compatibility || typeof metadata.compatibility !== 'object') { + errors.push(`${metadataFile}: missing compatibility section`); + } else { + expectBoolean(errors, metadata.compatibility.bng2_compatible, 'compatibility.bng2_compatible', metadataFile); + expectBoolean(errors, metadata.compatibility.uses_compartments, 'compatibility.uses_compartments', metadataFile); + expectBoolean(errors, metadata.compatibility.uses_energy, 'compatibility.uses_energy', metadataFile); + expectBoolean(errors, metadata.compatibility.uses_functions, 'compatibility.uses_functions', metadataFile); + expectBoolean(errors, metadata.compatibility.nfsim_compatible, 'compatibility.nfsim_compatible', metadataFile); + expectArray(errors, metadata.compatibility.simulation_methods, 'compatibility.simulation_methods', metadataFile); + if (Array.isArray(metadata.compatibility.simulation_methods)) { + for (const method of metadata.compatibility.simulation_methods) { + if (!SIMULATION_METHOD_VALUES.has(method)) { + errors.push(`${metadataFile}: invalid simulation method ${JSON.stringify(method)}`); + } + } + } + } + + if (!metadata.source || typeof metadata.source !== 'object') { + errors.push(`${metadataFile}: missing source section`); + } else { + expectEnum(errors, metadata.source.origin, ORIGIN_VALUES, 'source.origin', metadataFile); + expectString(errors, metadata.source.original_repository, 'source.original_repository', metadataFile); + } + + if (!metadata.playground || typeof metadata.playground !== 'object') { + errors.push(`${metadataFile}: missing playground section`); + } else { + expectBoolean(errors, metadata.playground.visible, 'playground.visible', metadataFile); + expectString(errors, metadata.playground.gallery_category, 'playground.gallery_category', metadataFile); + expectBoolean(errors, metadata.playground.featured, 'playground.featured', metadataFile); + expectEnum(errors, metadata.playground.difficulty, DIFFICULTY_VALUES, 'playground.difficulty', metadataFile); + } + + if (metadata.collection) { + expectEnum(errors, metadata.collection.type, COLLECTION_TYPE_VALUES, 'collection.type', metadataFile); + expectString(errors, metadata.collection.parent_model, 'collection.parent_model', metadataFile); + expectString(errors, metadata.collection.variant_key, 'collection.variant_key', metadataFile); + if (!Number.isInteger(metadata.collection.count) || metadata.collection.count < 1) { + errors.push(`${metadataFile}: invalid collection.count (${JSON.stringify(metadata.collection.count)})`); + } + if (Number.isInteger(metadata.collection.count) && metadata.collection.count !== modelFiles.length) { + errors.push(`${metadataFile}: collection.count=${metadata.collection.count} but found ${modelFiles.length} model files`); + } + } else if (modelFiles.length > 1) { + const primaryKeys = [ + metadata.id, + metadata.source && metadata.source.source_path ? path.basename(metadata.source.source_path) : '', + path.basename(modelDir), + ].map(normalizeModelKey).filter(Boolean); + const hasPrimaryModel = modelFiles.some((fileName) => primaryKeys.includes(normalizeModelKey(fileName))); + if (!hasPrimaryModel) { + errors.push(`${metadataFile}: multiple .bngl files require either a collection section or a primary model file matching the metadata id`); + } + } +} + +function main() { + const root = path.resolve(__dirname, '..'); + const metadataFiles = SEARCH_ROOTS.flatMap((searchRoot) => listMetadataFiles(path.join(root, searchRoot))); + const errors = []; + + for (const metadataFile of metadataFiles) { + validateMetadataFile(metadataFile, errors); + } + + if (errors.length > 0) { + console.error(`Metadata validation failed with ${errors.length} issue(s):`); + for (const error of errors) { + console.error(`- ${error}`); + } + process.exit(1); + } + + console.log(`Validated ${metadataFiles.length} metadata files.`); +} + +main(); \ No newline at end of file From f21bdcbd928cd3a8b241e0d12ac1746255afee7d Mon Sep 17 00:00:00 2001 From: akutuva21 Date: Thu, 12 Mar 2026 14:23:54 -0400 Subject: [PATCH 2/2] Updates to readme --- README.md | 121 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 103 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index a797a716..9c42dcb2 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,103 @@ -## Published models -Model name| Description ---------- | --------- -[Dolan2015](Published/Dolan2015) | Stochastic model of DNA damage repair by non-homologous end joining and of gamma irradiation-induced cellular senescence. -[Faeder2003](Published/Faeder2003) | Model of early events in FcεRI signaling, including Lyn recruitment and Syk activation. -[Mitra2019](Published/Mitra2019) | Suite of benchmark parameter fitting problems for PyBioNetFit -[Thomas2016](Published/Thomas2016) | Parameter fitting problems published with BioNetFit v1.0 -[Salazar-Cavazos2019](Published/Salazar-Cavazos2019) | Model of EGFR signaling fit to Single Molecule Pull-down (SiMPull) data - -## Contributed models -Model name| Description ---------- | --------- -[Hlavacek2018Egg](Contributed/Hlavacek2018Egg) | Benchmark parameter fitting problem consisting of a simple egg-shaped curve. -[Hlavacek2018Elephant](Contributed/Hlavacek2018Elephant) | Benchmark parameter fitting problem consisting of an elephant-shaped curve. -[Mitra2019Likelihood](Contributed/Mitra2019Likelihood) | Model of IgE-mediated degranulation configured to demonstrate performing Bayesian uncertainty quantification with qualitative data in PyBioNetFit. -[Mitra2019Rab](Contributed/Mitra2019Rab) | Model of Rab5 and Rab7 activation - -For instructions on adding new models to the repo, see [AddingModels.md](AddingModels.md). +# RuleHub + +RuleHub is the canonical repository for curated BioNetGen and BNGL model content used across the RuleWorld ecosystem. + +It now serves two roles: + +- a human-browsable archive of published, contributed, tutorial, and validation models +- the machine-readable source of truth for metadata consumed by tools such as BNG Playground + +## Repository layout + +The repository is organized into a few top-level collections: + +- `Published/`: literature-backed and curated research models +- `Contributed/`: contributed model sets, including BNG Playground examples and validation fixtures +- `Tutorials/`: tutorial and teaching-oriented BNGL models +- `PyBioNetGen/`: PyBioNetGen reference, benchmark, and support model collections + +Most model directories contain: + +- one or more `.bngl` files +- `metadata.yaml` +- `README.md` + +Examples: + +- `Published/Faeder2003/` +- `Contributed/BNGPlayground_Examples/...` +- `Contributed/BNGPlayground_Validation/...` +- `Tutorials/General/polymer/` +- `Tutorials/NativeTutorials/...` + +## Metadata and manifest + +RuleHub now includes a repository-wide metadata and discovery layer: + +- `metadata-schema.yaml`: schema for per-directory metadata +- `manifest.json`: generated manifest describing discoverable model entries +- `scripts/validate-metadata.js`: local metadata validator +- `scripts/generate-manifest.js`: manifest generator + +This metadata is used for: + +- model discovery and indexing +- gallery visibility and categorization +- compatibility flags such as `bng2_compatible` +- provenance for published, tutorial, test-case, and AI-generated contributed models + +## BNG Playground integration + +BNG Playground no longer keeps its own bundled BNGL corpus as the runtime source of truth. + +Instead: + +- RuleHub hosts the model content and metadata +- BNG Playground resolves models from RuleHub metadata and manifest outputs +- local playground analysis and migration scripts may use a local RuleHub checkout via `RULEHUB_ROOT` + +That means updates to model metadata, visibility, provenance, and organization should now happen here in RuleHub. + +## Validation workflow + +Before opening a pull request that adds or changes model content, run: + +```bash +node scripts/validate-metadata.js +node scripts/generate-manifest.js --root . --output manifest.json +``` + +The repository also includes CI validation in `.github/workflows/validate.yml`. + +## Adding models + +For model submission and curation rules, see [AddingModels.md](AddingModels.md). + +In general, contributors should: + +1. place models in the appropriate top-level collection +2. add or update `metadata.yaml` +3. add or update `README.md` +4. describe multi-file collections with a `collection` section when applicable +5. validate metadata and regenerate `manifest.json` + +## Notes on migrated content + +RuleHub now contains migrated content that previously lived only inside BNG Playground, including: + +- BNG Playground example models +- validation fixtures +- tutorial collections +- runtime-only BNGL models that required explicit preservation + +Those migrated entries keep provenance in `metadata.yaml`, including source-path history where relevant. + +## Quick links + +- [AddingModels.md](AddingModels.md) +- [metadata-schema.yaml](metadata-schema.yaml) +- [manifest.json](manifest.json) +- [Published](Published) +- [Contributed](Contributed) +- [Tutorials](Tutorials) +- [PyBioNetGen](PyBioNetGen)